mirror of
https://github.com/CoderSherlock/CoderSherlock.github.io.git
synced 2026-06-12 23:58:11 -07:00
Refurnish
This commit is contained in:
+5
-8
@@ -13,6 +13,7 @@
|
||||
<link rel="stylesheet" href="/css/main.css">
|
||||
<link rel="stylesheet" href="/css/timeline.css">
|
||||
<link rel="canonical" href="https://codersherlock.github.com//404.html">
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Tangerine">
|
||||
<link rel="alternate" type="application/rss+xml" title="Stop Talking, Start Doing - 停止空想,开始行动" href="https://codersherlock.github.com//feed.xml" />
|
||||
<script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
@@ -44,9 +45,7 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a class="page-link" href="/about/">About</a>
|
||||
<a class="page-link" href="/about/">About Me</a>
|
||||
|
||||
|
||||
|
||||
@@ -87,16 +86,14 @@
|
||||
</div>
|
||||
<div class="col-second">
|
||||
<div class="col-box col-box-author">
|
||||
<img class="avatar" src="/static/avatar.jpg" alt="Pengzhan Hao - 碾子">
|
||||
<div class="col-box-title name">Pengzhan Hao - 碾子</div>
|
||||
<img class="avatar" src="/static/avatar.jpg" alt="Pengzhan Hao">
|
||||
<div class="col-box-title name">Pengzhan Hao</div>
|
||||
<p></p>
|
||||
<p class="contact">
|
||||
|
||||
<a href="https://github.com/codersherlock">GitHub</a>
|
||||
|
||||
|
||||
<a href="https://twitter.com/haopengzhan">Twitter</a>
|
||||
|
||||
|
||||
<a href="mailto:haopengzhan@gmail.com">Email</a>
|
||||
|
||||
@@ -127,7 +124,7 @@
|
||||
|
||||
<footer class="footer">
|
||||
<div class="wrapper">
|
||||
© 2016 Pengzhan Hao - 碾子
|
||||
© 2016 Pengzhan Hao
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
Binary file not shown.
+14
-17
@@ -6,13 +6,14 @@
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<title>About « Stop Talking, Start Doing - 停止空想,开始行动</title>
|
||||
<title>About Me « Stop Talking, Start Doing - 停止空想,开始行动</title>
|
||||
<meta name="description" content="My personal blog, with some boring research staff and some tricks I was fancy to. I'll try my best to make this blog fun and useful. Not just a place I complain about all happens in my Lab.
|
||||
">
|
||||
|
||||
<link rel="stylesheet" href="/css/main.css">
|
||||
<link rel="stylesheet" href="/css/timeline.css">
|
||||
<link rel="canonical" href="https://codersherlock.github.com//about/">
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Tangerine">
|
||||
<link rel="alternate" type="application/rss+xml" title="Stop Talking, Start Doing - 停止空想,开始行动" href="https://codersherlock.github.com//feed.xml" />
|
||||
<script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
@@ -44,9 +45,7 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a class="page-link" href="/about/">About</a>
|
||||
<a class="page-link" href="/about/">About Me</a>
|
||||
|
||||
|
||||
|
||||
@@ -71,20 +70,20 @@
|
||||
<div class="post">
|
||||
|
||||
<header class="post-header">
|
||||
<h1 class="post-title">About</h1>
|
||||
<h1 class="post-title">About Me</h1>
|
||||
</header>
|
||||
|
||||
<article class="post-content">
|
||||
<h1 id="pengzhan-hao">Pengzhan Hao</h1>
|
||||
|
||||
<p><strong>Position:</strong> Research Assistant in MOSLab<br />
|
||||
<strong>Education:</strong> Doctoral Student of SUNY at Binghamton<br />
|
||||
<strong>Email:</strong> phao3 at binghamton dot edu<br />
|
||||
<p><strong>Position:</strong> Research Assistant in MOSLab<br />
|
||||
<strong>Education:</strong> Doctoral Student of SUNY at Binghamton<br />
|
||||
<strong>Email:</strong> phao3 at binghamton dot edu<br />
|
||||
<strong>Address:</strong><br />
|
||||
MOSLab, H-6 Engineering Building<br />
|
||||
Binghamton University<br />
|
||||
4400 Vestal Parkway East<br />
|
||||
Binghamton, NY 13902</p>
|
||||
MOSLab, H-6 Engineering Building<br />
|
||||
Binghamton University<br />
|
||||
4400 Vestal Parkway East<br />
|
||||
Binghamton, NY 13902</p>
|
||||
|
||||
<h2 id="education">Education</h2>
|
||||
<ul>
|
||||
@@ -185,16 +184,14 @@ Niagara Falls, NY, USA, 2017.</p>
|
||||
</div>
|
||||
<div class="col-second">
|
||||
<div class="col-box col-box-author">
|
||||
<img class="avatar" src="/static/avatar.jpg" alt="Pengzhan Hao - 碾子">
|
||||
<div class="col-box-title name">Pengzhan Hao - 碾子</div>
|
||||
<img class="avatar" src="/static/avatar.jpg" alt="Pengzhan Hao">
|
||||
<div class="col-box-title name">Pengzhan Hao</div>
|
||||
<p></p>
|
||||
<p class="contact">
|
||||
|
||||
<a href="https://github.com/codersherlock">GitHub</a>
|
||||
|
||||
|
||||
<a href="https://twitter.com/haopengzhan">Twitter</a>
|
||||
|
||||
|
||||
<a href="mailto:haopengzhan@gmail.com">Email</a>
|
||||
|
||||
@@ -225,7 +222,7 @@ Niagara Falls, NY, USA, 2017.</p>
|
||||
|
||||
<footer class="footer">
|
||||
<div class="wrapper">
|
||||
© 2016 Pengzhan Hao - 碾子
|
||||
© 2016 Pengzhan Hao
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
<link rel="stylesheet" href="/css/main.css">
|
||||
<link rel="stylesheet" href="/css/timeline.css">
|
||||
<link rel="canonical" href="https://codersherlock.github.com//archivers/charles-is-not-a-good-tool">
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Tangerine">
|
||||
<link rel="alternate" type="application/rss+xml" title="Stop Talking, Start Doing - 停止空想,开始行动" href="https://codersherlock.github.com//feed.xml" />
|
||||
<script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
@@ -43,9 +44,7 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a class="page-link" href="/about/">About</a>
|
||||
<a class="page-link" href="/about/">About Me</a>
|
||||
|
||||
|
||||
|
||||
@@ -129,16 +128,14 @@ You also need to save charles Root Certificate, it also contains in the same men
|
||||
</div>
|
||||
<div class="col-second">
|
||||
<div class="col-box col-box-author">
|
||||
<img class="avatar" src="/static/avatar.jpg" alt="Pengzhan Hao - 碾子">
|
||||
<div class="col-box-title name">Pengzhan Hao - 碾子</div>
|
||||
<img class="avatar" src="/static/avatar.jpg" alt="Pengzhan Hao">
|
||||
<div class="col-box-title name">Pengzhan Hao</div>
|
||||
<p></p>
|
||||
<p class="contact">
|
||||
|
||||
<a href="https://github.com/codersherlock">GitHub</a>
|
||||
|
||||
|
||||
<a href="https://twitter.com/haopengzhan">Twitter</a>
|
||||
|
||||
|
||||
<a href="mailto:haopengzhan@gmail.com">Email</a>
|
||||
|
||||
@@ -169,7 +166,7 @@ You also need to save charles Root Certificate, it also contains in the same men
|
||||
|
||||
<footer class="footer">
|
||||
<div class="wrapper">
|
||||
© 2016 Pengzhan Hao - 碾子
|
||||
© 2016 Pengzhan Hao
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
<link rel="stylesheet" href="/css/main.css">
|
||||
<link rel="stylesheet" href="/css/timeline.css">
|
||||
<link rel="canonical" href="https://codersherlock.github.com//archivers/hello">
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Tangerine">
|
||||
<link rel="alternate" type="application/rss+xml" title="Stop Talking, Start Doing - 停止空想,开始行动" href="https://codersherlock.github.com//feed.xml" />
|
||||
<script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
@@ -43,9 +44,7 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a class="page-link" href="/about/">About</a>
|
||||
<a class="page-link" href="/about/">About Me</a>
|
||||
|
||||
|
||||
|
||||
@@ -101,16 +100,14 @@
|
||||
</div>
|
||||
<div class="col-second">
|
||||
<div class="col-box col-box-author">
|
||||
<img class="avatar" src="/static/avatar.jpg" alt="Pengzhan Hao - 碾子">
|
||||
<div class="col-box-title name">Pengzhan Hao - 碾子</div>
|
||||
<img class="avatar" src="/static/avatar.jpg" alt="Pengzhan Hao">
|
||||
<div class="col-box-title name">Pengzhan Hao</div>
|
||||
<p></p>
|
||||
<p class="contact">
|
||||
|
||||
<a href="https://github.com/codersherlock">GitHub</a>
|
||||
|
||||
|
||||
<a href="https://twitter.com/haopengzhan">Twitter</a>
|
||||
|
||||
|
||||
<a href="mailto:haopengzhan@gmail.com">Email</a>
|
||||
|
||||
@@ -141,7 +138,7 @@
|
||||
|
||||
<footer class="footer">
|
||||
<div class="wrapper">
|
||||
© 2016 Pengzhan Hao - 碾子
|
||||
© 2016 Pengzhan Hao
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
<link rel="stylesheet" href="/css/main.css">
|
||||
<link rel="stylesheet" href="/css/timeline.css">
|
||||
<link rel="canonical" href="https://codersherlock.github.com//archivers/intro-xv6">
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Tangerine">
|
||||
<link rel="alternate" type="application/rss+xml" title="Stop Talking, Start Doing - 停止空想,开始行动" href="https://codersherlock.github.com//feed.xml" />
|
||||
<script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
@@ -43,9 +44,7 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a class="page-link" href="/about/">About</a>
|
||||
<a class="page-link" href="/about/">About Me</a>
|
||||
|
||||
|
||||
|
||||
@@ -77,19 +76,17 @@
|
||||
<article class="post-content">
|
||||
<p>I hate xv6, a stupid, useless education-oriented system. In this article, I will generally talk about how to implement system call to this operating system.</p>
|
||||
|
||||
<hr />
|
||||
|
||||
<h2 id="xv6-systemcall">Xv6 Systemcall</h2>
|
||||
<p>To invoke a system call, we have to first define a user mode function to be the interface of the kernel instruction in file <em>user.h</em>.</p>
|
||||
|
||||
<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="n">function</span> <span class="p">(</span><span class="kt">void</span><span class="p">);</span>
|
||||
<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">function</span> <span class="p">(</span><span class="kt">void</span><span class="p">);</span>
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>This interface-like function will then pass the function name, in this case function, to <em>usys.S</em>. When using user mode function in programs, <em>usys.S</em> will generate a reference to SYS_function and push system call number of this function into %eax. After that, system can know from <em>syscall.c</em> and determining whether this system call is available. We must define same name system function and add it into <em>syscall.h</em> and <em>syscall.c</em>.</p>
|
||||
|
||||
<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">#define SYS_function ## // ## is the system call number
|
||||
</span><span class="p">[</span><span class="n">SYS_function</span><span class="p">]</span> <span class="n">sys_function</span> <span class="c1">// real system function name</span>
|
||||
<span class="k">extern</span> <span class="kt">int</span> <span class="n">sys_function</span><span class="p">(</span><span class="kt">void</span><span class="p">);</span> <span class="c1">// real system function declaration</span>
|
||||
<span class="k">extern</span> <span class="kt">int</span> <span class="nf">sys_function</span><span class="p">(</span><span class="kt">void</span><span class="p">);</span> <span class="c1">// real system function declaration</span>
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>After adding these sentences to syscall files, we can implement real function in specific place where you want to make the function works well.</p>
|
||||
@@ -120,16 +117,14 @@
|
||||
</div>
|
||||
<div class="col-second">
|
||||
<div class="col-box col-box-author">
|
||||
<img class="avatar" src="/static/avatar.jpg" alt="Pengzhan Hao - 碾子">
|
||||
<div class="col-box-title name">Pengzhan Hao - 碾子</div>
|
||||
<img class="avatar" src="/static/avatar.jpg" alt="Pengzhan Hao">
|
||||
<div class="col-box-title name">Pengzhan Hao</div>
|
||||
<p></p>
|
||||
<p class="contact">
|
||||
|
||||
<a href="https://github.com/codersherlock">GitHub</a>
|
||||
|
||||
|
||||
<a href="https://twitter.com/haopengzhan">Twitter</a>
|
||||
|
||||
|
||||
<a href="mailto:haopengzhan@gmail.com">Email</a>
|
||||
|
||||
@@ -160,7 +155,7 @@
|
||||
|
||||
<footer class="footer">
|
||||
<div class="wrapper">
|
||||
© 2016 Pengzhan Hao - 碾子
|
||||
© 2016 Pengzhan Hao
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
<link rel="stylesheet" href="/css/main.css">
|
||||
<link rel="stylesheet" href="/css/timeline.css">
|
||||
<link rel="canonical" href="https://codersherlock.github.com//archivers/some-of-my-previews-exper-work">
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Tangerine">
|
||||
<link rel="alternate" type="application/rss+xml" title="Stop Talking, Start Doing - 停止空想,开始行动" href="https://codersherlock.github.com//feed.xml" />
|
||||
<script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
@@ -43,9 +44,7 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a class="page-link" href="/about/">About</a>
|
||||
<a class="page-link" href="/about/">About Me</a>
|
||||
|
||||
|
||||
|
||||
@@ -210,16 +209,14 @@ su
|
||||
</div>
|
||||
<div class="col-second">
|
||||
<div class="col-box col-box-author">
|
||||
<img class="avatar" src="/static/avatar.jpg" alt="Pengzhan Hao - 碾子">
|
||||
<div class="col-box-title name">Pengzhan Hao - 碾子</div>
|
||||
<img class="avatar" src="/static/avatar.jpg" alt="Pengzhan Hao">
|
||||
<div class="col-box-title name">Pengzhan Hao</div>
|
||||
<p></p>
|
||||
<p class="contact">
|
||||
|
||||
<a href="https://github.com/codersherlock">GitHub</a>
|
||||
|
||||
|
||||
<a href="https://twitter.com/haopengzhan">Twitter</a>
|
||||
|
||||
|
||||
<a href="mailto:haopengzhan@gmail.com">Email</a>
|
||||
|
||||
@@ -250,7 +247,7 @@ su
|
||||
|
||||
<footer class="footer">
|
||||
<div class="wrapper">
|
||||
© 2016 Pengzhan Hao - 碾子
|
||||
© 2016 Pengzhan Hao
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
<link rel="stylesheet" href="/css/main.css">
|
||||
<link rel="stylesheet" href="/css/timeline.css">
|
||||
<link rel="canonical" href="https://codersherlock.github.com//category/">
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Tangerine">
|
||||
<link rel="alternate" type="application/rss+xml" title="Stop Talking, Start Doing - 停止空想,开始行动" href="https://codersherlock.github.com//feed.xml" />
|
||||
<script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
@@ -44,9 +45,7 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a class="page-link" href="/about/">About</a>
|
||||
<a class="page-link" href="/about/">About Me</a>
|
||||
|
||||
|
||||
|
||||
@@ -116,16 +115,14 @@
|
||||
</div>
|
||||
<div class="col-second">
|
||||
<div class="col-box col-box-author">
|
||||
<img class="avatar" src="/static/avatar.jpg" alt="Pengzhan Hao - 碾子">
|
||||
<div class="col-box-title name">Pengzhan Hao - 碾子</div>
|
||||
<img class="avatar" src="/static/avatar.jpg" alt="Pengzhan Hao">
|
||||
<div class="col-box-title name">Pengzhan Hao</div>
|
||||
<p></p>
|
||||
<p class="contact">
|
||||
|
||||
<a href="https://github.com/codersherlock">GitHub</a>
|
||||
|
||||
|
||||
<a href="https://twitter.com/haopengzhan">Twitter</a>
|
||||
|
||||
|
||||
<a href="mailto:haopengzhan@gmail.com">Email</a>
|
||||
|
||||
@@ -156,7 +153,7 @@
|
||||
|
||||
<footer class="footer">
|
||||
<div class="wrapper">
|
||||
© 2016 Pengzhan Hao - 碾子
|
||||
© 2016 Pengzhan Hao
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
+262
-525
@@ -1,559 +1,296 @@
|
||||
@charset "UTF-8";
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: "Open Sans", "Helvetica Neue", "DejaVu Sans", Arial, "PingFang SC", "Noto Sans CJK SC", "Hiragino Sans GB", "微软雅黑", Helvetica, sans-serif;
|
||||
font-size: 15px;
|
||||
line-height: 1.5; }
|
||||
body { margin: 0; font-family: "Times New Roman"; font-size: 15px; line-height: 1.35; }
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #036; }
|
||||
a { text-decoration: none; color: #036; }
|
||||
|
||||
a:hover, a:focus {
|
||||
text-decoration: underline;
|
||||
color: #069; }
|
||||
a:hover, a:focus { text-decoration: underline; color: #069; }
|
||||
|
||||
blockquote {
|
||||
background: #FFF;
|
||||
margin: 0;
|
||||
padding: 5px 20px;
|
||||
border-left: 10px solid #CCC; }
|
||||
blockquote { background: #FFF; margin: 0; padding: 5px 20px; border-left: 10px solid #CCC; }
|
||||
|
||||
code, pre {
|
||||
font-family: Menlo, Monaco, Consolas, "DejaVu Sans Mono", "Liberation Mono", "文泉驿等宽微米黑", "Courier New", Courier, SimSun, monospace;
|
||||
font-size: 12px; }
|
||||
code, pre { font-family: "Courier New"; font-size: 12px; }
|
||||
|
||||
code {
|
||||
color: #900;
|
||||
background-color: #fff;
|
||||
padding: 2px 5px;
|
||||
border-radius: 5px; }
|
||||
code { color: #900; background-color: #fff; padding: 2px 5px; border-radius: 5px; }
|
||||
|
||||
pre {
|
||||
overflow-x: auto;
|
||||
padding: 20px 50px; }
|
||||
pre { overflow-x: auto; padding: 20px 50px; }
|
||||
|
||||
pre, pre code {
|
||||
color: #fafafa;
|
||||
background-color: #223; }
|
||||
pre, pre code { color: #fafafa; background-color: #223; }
|
||||
|
||||
pre code {
|
||||
padding: 0; }
|
||||
pre code { padding: 0; }
|
||||
|
||||
.hide {
|
||||
display: none; }
|
||||
.hide { display: none; }
|
||||
|
||||
.center {
|
||||
text-align: center; }
|
||||
.center { text-align: center; }
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
margin: 10pt auto;
|
||||
background: #FFF; }
|
||||
table td, table th {
|
||||
border: 1px solid #CCC;
|
||||
padding: 5px 15px;
|
||||
margin: 0; }
|
||||
table th {
|
||||
border-color: #555;
|
||||
background: #555;
|
||||
color: #eee;
|
||||
font-weight: normal; }
|
||||
table tr:hover {
|
||||
background: rgba(255, 255, 0, 0.2); }
|
||||
table { border-collapse: collapse; border-spacing: 0; margin: 10pt auto; background: #FFF; }
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-weight: normal; }
|
||||
table td, table th { border: 1px solid #CCC; padding: 5px 15px; margin: 0; }
|
||||
|
||||
.wrapper {
|
||||
margin: 0 auto;
|
||||
max-width: 1100px; }
|
||||
table th { border-color: #555; background: #555; color: #eee; font-weight: normal; }
|
||||
|
||||
@media (max-width: 1120px) {
|
||||
.wrapper {
|
||||
max-width: 800px; } }
|
||||
.header {
|
||||
line-height: 30px;
|
||||
background-color: rgba(53, 0, 138, 0.89);
|
||||
padding: 10px;
|
||||
margin: 0; }
|
||||
.header:after {
|
||||
clear: both;
|
||||
content: ' ';
|
||||
display: block; }
|
||||
.header .site-title {
|
||||
float: left;
|
||||
color: #FFF;
|
||||
text-decoration: none;
|
||||
font-size: 15px;
|
||||
line-height: 30px; }
|
||||
.header .site-nav {
|
||||
text-align: right; }
|
||||
.header .site-nav a {
|
||||
text-decoration: none;
|
||||
color: white;
|
||||
padding: 10px 20px;
|
||||
white-space: nowrap; }
|
||||
.header .site-nav a:hover, .header .site-nav a:focus {
|
||||
background: #2b0070; }
|
||||
table tr:hover { background: rgba(255, 255, 0, 0.2); }
|
||||
|
||||
.page-content {
|
||||
background: #e0e0e3;
|
||||
padding: 30px 0; }
|
||||
.page-content .wrapper {
|
||||
position: relative;
|
||||
background: #FAFAFA;
|
||||
box-shadow: 0 1px 4px #999;
|
||||
outline: 1px solid #CCC; }
|
||||
.page-content .wrapper:after {
|
||||
clear: both;
|
||||
content: '';
|
||||
display: block; }
|
||||
.page-content .wrapper:before {
|
||||
content: '';
|
||||
display: block;
|
||||
position: absolute;
|
||||
width: 300px;
|
||||
height: 100%;
|
||||
left: 800px;
|
||||
top: 0;
|
||||
background: #EEE; }
|
||||
.page-content img {
|
||||
max-width: 100%; }
|
||||
h1, h2, h3, h4, h5, h6 { font-weight: normal; }
|
||||
|
||||
.col-main {
|
||||
position: relative;
|
||||
box-sizing: border-box;
|
||||
padding: 30px;
|
||||
width: 800px;
|
||||
float: left; }
|
||||
.wrapper { margin: 0 auto; max-width: 1100px; }
|
||||
|
||||
.col-second {
|
||||
position: relative;
|
||||
box-sizing: border-box;
|
||||
float: left;
|
||||
width: 300px;
|
||||
padding: 20px;
|
||||
background: #EEE;
|
||||
z-index: 10; }
|
||||
@media (max-width: 1120px) { .wrapper { max-width: 800px; } }
|
||||
|
||||
.col-box {
|
||||
color: #666;
|
||||
font-size: 13.125px;
|
||||
padding-bottom: 20px; }
|
||||
.col-box p {
|
||||
margin: 0; }
|
||||
.col-box ul {
|
||||
padding-left: 20px;
|
||||
margin: 0; }
|
||||
.col-box:not(:first-child) {
|
||||
border-top: 1px solid #ccc;
|
||||
padding-top: 20px; }
|
||||
.col-box .col-box-title {
|
||||
color: #333;
|
||||
margin-bottom: 10px;
|
||||
font-size: 14.4375px; }
|
||||
.header { line-height: 30px; background-color: black; padding: 10px; margin: 0; }
|
||||
|
||||
@media (max-width: 1120px) {
|
||||
.page-content .wrapper:before {
|
||||
display: none; }
|
||||
.header:after { clear: both; content: ' '; display: block; }
|
||||
|
||||
.col-main,
|
||||
.col-second {
|
||||
width: auto;
|
||||
float: none; }
|
||||
.header .site-title { float: left; color: white; text-decoration: none; font-size: 15px; line-height: 30px; }
|
||||
|
||||
.col-box {
|
||||
width: 50%;
|
||||
float: left;
|
||||
margin-bottom: 10px; }
|
||||
.header .site-nav { text-align: right; }
|
||||
|
||||
.col-box:not(:first-child) {
|
||||
border-top: none;
|
||||
padding-top: 0; }
|
||||
.header .site-nav a { text-decoration: none; color: white; padding: 10px 20px; white-space: nowrap; }
|
||||
|
||||
.col-second:after {
|
||||
clear: both;
|
||||
display: block;
|
||||
content: ' '; } }
|
||||
.col-box-author {
|
||||
text-align: center; }
|
||||
.col-box-author .avatar {
|
||||
width: 135px;
|
||||
height: 135px;
|
||||
border-radius: 100%;
|
||||
margin: 20px auto;
|
||||
display: block; }
|
||||
.col-box-author .name {
|
||||
font-size: 15px; }
|
||||
.col-box-author .contact {
|
||||
margin-top: 10px; }
|
||||
.col-box-author .contact a {
|
||||
background: #999;
|
||||
color: #eee;
|
||||
padding: 5px 10px;
|
||||
text-decoration: none;
|
||||
border-radius: 5px;
|
||||
white-space: nowrap; }
|
||||
.col-box-author .contact a:hover {
|
||||
transition: background 0.3s ease;
|
||||
background: #666; }
|
||||
.header .site-nav a:hover, .header .site-nav a:focus { background: black; }
|
||||
|
||||
.footer {
|
||||
padding: 60px 0;
|
||||
background-color: #e0e0e3;
|
||||
text-align: center;
|
||||
color: #666;
|
||||
font-size: 13.125px; }
|
||||
.page-content { background: #e0e0e3; padding: 30px 0; }
|
||||
|
||||
.post .post-header {
|
||||
margin: 0 100px;
|
||||
margin-bottom: 40px;
|
||||
padding: 20px; }
|
||||
.post .post-header .post-title {
|
||||
font-size: 40px;
|
||||
font-weight: normal;
|
||||
margin: 0 -100px; }
|
||||
@media screen and (max-width: 600px) {
|
||||
.post .post-header .post-title {
|
||||
font-size: 34px; } }
|
||||
.post .post-header .post-meta {
|
||||
color: #999;
|
||||
font-size: 13.125px;
|
||||
margin: 0 -100px; }
|
||||
@media screen and (max-width: 600px) {
|
||||
.post .post-header {
|
||||
text-align: center;
|
||||
margin-bottom: 10px;
|
||||
padding: 10px; } }
|
||||
.post .post-content {
|
||||
color: #333; }
|
||||
.post .post-content h1, .post .post-content h2, .post .post-content h3, .post .post-content h4, .post .post-content h5, .post .post-content h6 {
|
||||
color: #000; }
|
||||
.post .post-content h1, .post .post-content h2 {
|
||||
margin-bottom: 10px;
|
||||
margin-top: 30px; }
|
||||
.post .post-content h1, .post .post-content h2, .post .post-content h3 {
|
||||
border-bottom: 1px solid #CCC; }
|
||||
.post .post-content pre {
|
||||
margin: 0 -30px; }
|
||||
@media screen and (max-width: 600px) {
|
||||
.post .post-content pre {
|
||||
margin: 0 -10px; } }
|
||||
.post .post-content .middle-image {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto; }
|
||||
.post .post-comments {
|
||||
padding-top: 30px; }
|
||||
.page-content .wrapper { position: relative; background: #FAFAFA; box-shadow: 0 1px 4px #999; outline: 1px solid #CCC; }
|
||||
|
||||
.home .page-heading {
|
||||
font-size: 40px;
|
||||
font-weight: normal;
|
||||
margin: 20px; }
|
||||
@media screen and (max-width: 600px) {
|
||||
.home .page-heading {
|
||||
margin: 10px;
|
||||
font-size: 34px; } }
|
||||
.home .rss-link {
|
||||
float: right;
|
||||
text-decoration: none;
|
||||
border: 1px solid;
|
||||
color: #999;
|
||||
background: #fff;
|
||||
font-size: 10.5px;
|
||||
padding: 1px 8px; }
|
||||
.home .rss-link:hover, .home .rss-link:focus {
|
||||
color: #666; }
|
||||
.home .post-list {
|
||||
margin: 0;
|
||||
padding: 20px 40px;
|
||||
list-style: none; }
|
||||
.home .post-list > li {
|
||||
padding-bottom: 15px;
|
||||
border-bottom: 1px solid #CCC;
|
||||
margin-bottom: 15px; }
|
||||
.home .post-list .post-title {
|
||||
font-size: 28px;
|
||||
font-weight: bold;
|
||||
margin: 0; }
|
||||
.home .post-list .post-meta {
|
||||
font-size: 13.125px;
|
||||
color: #666;
|
||||
margin: 0 20px;
|
||||
margin-bottom: .5em; }
|
||||
.home .post-list .post-excerpt {
|
||||
margin: 0 20px; }
|
||||
.home .post-list .post-excerpt, .home .post-list .post-excerpt * {
|
||||
font-size: 13.125px;
|
||||
line-height: 13.125px;
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
color: #333; }
|
||||
.home .post-list .post-excerpt code, .home .post-list .post-excerpt pre, .home .post-list .post-excerpt pre * {
|
||||
color: #666;
|
||||
background-color: #eee; }
|
||||
.home .post-list .post-excerpt th {
|
||||
border-color: #ccc;
|
||||
background-color: #ccc; }
|
||||
.home .post-list .post-excerpt a {
|
||||
color: #069; }
|
||||
.home .post-list .post-excerpt img {
|
||||
display: block;
|
||||
margin: 1em auto;
|
||||
max-height: 16em;
|
||||
opacity: .7;
|
||||
transition: opacity .3s; }
|
||||
.home .post-list .post-excerpt img:hover {
|
||||
opacity: 1; }
|
||||
@media screen and (max-width: 600px) {
|
||||
.home .post-list {
|
||||
padding: 10px; } }
|
||||
.home .pagination {
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
color: #666;
|
||||
margin: 30px 0; }
|
||||
.home .pagination .page_number {
|
||||
margin: 0 30px; }
|
||||
.home .pagination .previous, .home .pagination .next {
|
||||
padding: 10px 20px;
|
||||
white-space: nowrap; }
|
||||
.home .pagination a.previous, .home .pagination a.next {
|
||||
color: #333;
|
||||
border-radius: 20px;
|
||||
border: 1px solid #CCC; }
|
||||
.home .pagination a.previous:hover, .home .pagination a.next:hover {
|
||||
background: #fefefe;
|
||||
color: #000;
|
||||
text-decoration: none; }
|
||||
.page-content .wrapper:after { clear: both; content: ''; display: block; }
|
||||
|
||||
@media screen and (max-width: 800px) {
|
||||
.page-content {
|
||||
padding: 0; }
|
||||
.page-content .wrapper:before { content: ''; display: block; position: absolute; width: 300px; height: 100%; left: 800px; top: 0; background: #EEE; }
|
||||
|
||||
.footer {
|
||||
padding: 15px 0; } }
|
||||
@media screen and (max-width: 600px) {
|
||||
.header, .header .site-nav {
|
||||
text-align: center; }
|
||||
.header .site-title {
|
||||
float: none; }
|
||||
.page-content img { max-width: 100%; }
|
||||
|
||||
.col-main {
|
||||
padding: 10px; }
|
||||
.col-main { position: relative; box-sizing: border-box; padding: 30px; width: 800px; float: left; }
|
||||
|
||||
.col-box {
|
||||
width: 100%;
|
||||
float: none;
|
||||
margin-bottom: 20px; }
|
||||
.col-second { position: relative; box-sizing: border-box; float: left; width: 300px; padding: 20px; background: #EEE; z-index: 10; }
|
||||
|
||||
.col-box { color: #666; font-size: 15px; padding-bottom: 20px; }
|
||||
|
||||
.col-box p { margin: 0; }
|
||||
|
||||
.col-box ul { padding-left: 20px; margin: 0; }
|
||||
|
||||
.col-box:not(:first-child) { border-top: 1px solid #ccc; padding-top: 20px; }
|
||||
|
||||
.col-box .col-box-title { color: #333; margin-bottom: 10px; font-size: 16.5px; }
|
||||
|
||||
@media (max-width: 1120px) { .page-content .wrapper:before { display: none; } .col-main, .col-second { width: auto; float: none; } .col-box { width: 50%; float: left; margin-bottom: 10px; } .col-box:not(:first-child) { border-top: none; padding-top: 0; } .col-second:after { clear: both; display: block; content: ' '; } }
|
||||
|
||||
.col-box-author { text-align: center; }
|
||||
|
||||
.col-box-author .avatar { width: 135px; height: 135px; border-radius: 100%; margin: 20px auto; display: block; }
|
||||
|
||||
.col-box-author .name { font-size: 15px; }
|
||||
|
||||
.col-box-author .contact { margin-top: 10px; }
|
||||
|
||||
.col-box-author .contact a { background: #999; color: #eee; padding: 5px 10px; text-decoration: none; border-radius: 5px; white-space: nowrap; }
|
||||
|
||||
.col-box-author .contact a:hover { transition: background 0.3s ease; background: #666; }
|
||||
|
||||
.footer { padding: 60px 0; background-color: #e0e0e3; text-align: center; color: #666; font-size: 15px; }
|
||||
|
||||
.post .post-header { margin: 0 100px; margin-bottom: 40px; padding: 0px; }
|
||||
|
||||
.post .post-header .post-title { font-size: 40px; font-weight: normal; margin: 0 -100px; }
|
||||
|
||||
@media screen and (max-width: 600px) { .post .post-header .post-title { font-size: 34px; } }
|
||||
|
||||
.post .post-header .post-meta { color: #999; font-size: 15px; margin: 0 -100px; }
|
||||
|
||||
@media screen and (max-width: 600px) { .post .post-header { text-align: center; margin-bottom: 10px; padding: 10px; } }
|
||||
|
||||
.post .post-content { color: #333; }
|
||||
|
||||
.post .post-content h1, .post .post-content h2, .post .post-content h3, .post .post-content h4, .post .post-content h5, .post .post-content h6 { color: #000; }
|
||||
|
||||
.post .post-content h1 { font-size: xx-large; }
|
||||
|
||||
.post .post-content h1, .post .post-content h2 { margin-bottom: 10px; margin-top: 30px; }
|
||||
|
||||
.post .post-content h1, .post .post-content h2, .post .post-content h3 { border-bottom: 1px dotted #3f3f3f; }
|
||||
|
||||
.post .post-content pre { margin: 0 -30px; }
|
||||
|
||||
@media screen and (max-width: 600px) { .post .post-content pre { margin: 0 -10px; } }
|
||||
|
||||
.post .post-content .middle-image { display: block; margin-left: auto; margin-right: auto; }
|
||||
|
||||
.post .post-comments { padding-top: 30px; }
|
||||
|
||||
.home .page-heading { font-size: 40px; font-weight: normal; margin: 0px; }
|
||||
|
||||
@media screen and (max-width: 600px) { .home .page-heading { margin: 10px; font-size: 34px; } }
|
||||
|
||||
.home .rss-link { float: right; text-decoration: none; border: 1px solid; color: #999; background: #fff; font-size: 10.5px; padding: 1px 8px; }
|
||||
|
||||
.home .rss-link:hover, .home .rss-link:focus { color: #666; }
|
||||
|
||||
.home .post-list { margin: 0; padding: 10px 0px; list-style: none; }
|
||||
|
||||
.home .post-list > li { padding-bottom: 5px; border-bottom: 2px dotted #3f3f3f; margin-bottom: 5px; }
|
||||
|
||||
.home .post-list .post-title { font-size: 28px; font-weight: bold; margin: 0; }
|
||||
|
||||
.home .post-list .post-meta { font-size: 15px; color: #aaaaaa; margin: 0 0px; margin-bottom: .5em; }
|
||||
|
||||
.home .post-list .post-excerpt { margin: 0 0px; }
|
||||
|
||||
.home .post-list .post-excerpt, .home .post-list .post-excerpt * { font-size: 15px; line-height: 16.5px; padding-top: 0; padding-bottom: 0; color: #333; }
|
||||
|
||||
.home .post-list .post-excerpt code, .home .post-list .post-excerpt pre, .home .post-list .post-excerpt pre * { color: #666; background-color: #eee; }
|
||||
|
||||
.home .post-list .post-excerpt th { border-color: #ccc; background-color: #ccc; }
|
||||
|
||||
.home .post-list .post-excerpt a { color: #002335; }
|
||||
|
||||
.home .post-list .post-excerpt img { display: block; margin: 1em auto; max-height: 16em; opacity: .7; transition: opacity .3s; }
|
||||
|
||||
.home .post-list .post-excerpt img:hover { opacity: 1; }
|
||||
|
||||
@media screen and (max-width: 600px) { .home .post-list { padding: 10px; } }
|
||||
|
||||
.home .pagination { text-align: center; text-decoration: none; color: #666; margin: 30px 0; }
|
||||
|
||||
.home .pagination .page_number { margin: 0 30px; }
|
||||
|
||||
.home .pagination .previous, .home .pagination .next { padding: 10px 20px; white-space: nowrap; }
|
||||
|
||||
.home .pagination a.previous, .home .pagination a.next { color: #333; border-radius: 20px; border: 1px solid #CCC; }
|
||||
|
||||
.home .pagination a.previous:hover, .home .pagination a.next:hover { background: #fefefe; color: #000; text-decoration: none; }
|
||||
|
||||
@media screen and (max-width: 800px) { .page-content { padding: 0; } .footer { padding: 15px 0; } }
|
||||
|
||||
@media screen and (max-width: 600px) { .header, .header .site-nav { text-align: center; } .header .site-title { float: none; } .col-main { padding: 10px; } .col-box { width: 100%; float: none; margin-bottom: 20px; } pre { padding: 10px; } }
|
||||
|
||||
pre {
|
||||
padding: 10px; } }
|
||||
/* Monokai Theme from https://github.com/richleland/pygments-css/blob/master/monokai.css */
|
||||
.highlight {
|
||||
/* Comment */
|
||||
/* Error */
|
||||
/* Keyword */
|
||||
/* Literal */
|
||||
/* Name */
|
||||
/* Operator */
|
||||
/* Punctuation */
|
||||
/* Comment.Multiline */
|
||||
/* Comment.Preproc */
|
||||
/* Comment.Single */
|
||||
/* Comment.Special */
|
||||
/* Generic.Emph */
|
||||
/* Generic.Strong */
|
||||
/* Keyword.Constant */
|
||||
/* Keyword.Declaration */
|
||||
/* Keyword.Namespace */
|
||||
/* Keyword.Pseudo */
|
||||
/* Keyword.Reserved */
|
||||
/* Keyword.Type */
|
||||
/* Literal.Date */
|
||||
/* Literal.Number */
|
||||
/* Literal.String */
|
||||
/* Name.Attribute */
|
||||
/* Name.Builtin */
|
||||
/* Name.Class */
|
||||
/* Name.Constant */
|
||||
/* Name.Decorator */
|
||||
/* Name.Entity */
|
||||
/* Name.Exception */
|
||||
/* Name.Function */
|
||||
/* Name.Label */
|
||||
/* Name.Namespace */
|
||||
/* Name.Other */
|
||||
/* Name.Property */
|
||||
/* Name.Tag */
|
||||
/* Name.Variable */
|
||||
/* Operator.Word */
|
||||
/* Text.Whitespace */
|
||||
/* Literal.Number.Float */
|
||||
/* Literal.Number.Hex */
|
||||
/* Literal.Number.Integer */
|
||||
/* Literal.Number.Oct */
|
||||
/* Literal.String.Backtick */
|
||||
/* Literal.String.Char */
|
||||
/* Literal.String.Doc */
|
||||
/* Literal.String.Double */
|
||||
/* Literal.String.Escape */
|
||||
/* Literal.String.Heredoc */
|
||||
/* Literal.String.Interpol */
|
||||
/* Literal.String.Other */
|
||||
/* Literal.String.Regex */
|
||||
/* Literal.String.Single */
|
||||
/* Literal.String.Symbol */
|
||||
/* Name.Builtin.Pseudo */
|
||||
/* Name.Variable.Class */
|
||||
/* Name.Variable.Global */
|
||||
/* Name.Variable.Instance */
|
||||
/* Literal.Number.Integer.Long */
|
||||
/* Generic Heading & Diff Header */
|
||||
/* Generic.Subheading & Diff Unified/Comment? */
|
||||
/* Generic.Deleted & Diff Deleted */
|
||||
/* Generic.Inserted & Diff Inserted */ }
|
||||
.highlight .hll {
|
||||
background-color: #49483e; }
|
||||
.highlight .c {
|
||||
color: #75715e; }
|
||||
.highlight .err {
|
||||
color: #960050;
|
||||
background-color: #1e0010; }
|
||||
.highlight .k {
|
||||
color: #66d9ef; }
|
||||
.highlight .l {
|
||||
color: #ae81ff; }
|
||||
.highlight .n {
|
||||
color: #f8f8f2; }
|
||||
.highlight .o {
|
||||
color: #f92672; }
|
||||
.highlight .p {
|
||||
color: #f8f8f2; }
|
||||
.highlight .cm {
|
||||
color: #75715e; }
|
||||
.highlight .cp {
|
||||
color: #75715e; }
|
||||
.highlight .c1 {
|
||||
color: #75715e; }
|
||||
.highlight .cs {
|
||||
color: #75715e; }
|
||||
.highlight .ge {
|
||||
font-style: italic; }
|
||||
.highlight .gs {
|
||||
font-weight: bold; }
|
||||
.highlight .kc {
|
||||
color: #66d9ef; }
|
||||
.highlight .kd {
|
||||
color: #66d9ef; }
|
||||
.highlight .kn {
|
||||
color: #f92672; }
|
||||
.highlight .kp {
|
||||
color: #66d9ef; }
|
||||
.highlight .kr {
|
||||
color: #66d9ef; }
|
||||
.highlight .kt {
|
||||
color: #66d9ef; }
|
||||
.highlight .ld {
|
||||
color: #e6db74; }
|
||||
.highlight .m {
|
||||
color: #ae81ff; }
|
||||
.highlight .s {
|
||||
color: #e6db74; }
|
||||
.highlight .na {
|
||||
color: #a6e22e; }
|
||||
.highlight .nb {
|
||||
color: #f8f8f2; }
|
||||
.highlight .nc {
|
||||
color: #a6e22e; }
|
||||
.highlight .no {
|
||||
color: #66d9ef; }
|
||||
.highlight .nd {
|
||||
color: #a6e22e; }
|
||||
.highlight .ni {
|
||||
color: #f8f8f2; }
|
||||
.highlight .ne {
|
||||
color: #a6e22e; }
|
||||
.highlight .nf {
|
||||
color: #a6e22e; }
|
||||
.highlight .nl {
|
||||
color: #f8f8f2; }
|
||||
.highlight .nn {
|
||||
color: #f8f8f2; }
|
||||
.highlight .nx {
|
||||
color: #a6e22e; }
|
||||
.highlight .py {
|
||||
color: #f8f8f2; }
|
||||
.highlight .nt {
|
||||
color: #f92672; }
|
||||
.highlight .nv {
|
||||
color: #f8f8f2; }
|
||||
.highlight .ow {
|
||||
color: #f92672; }
|
||||
.highlight .w {
|
||||
color: #f8f8f2; }
|
||||
.highlight .mf {
|
||||
color: #ae81ff; }
|
||||
.highlight .mh {
|
||||
color: #ae81ff; }
|
||||
.highlight .mi {
|
||||
color: #ae81ff; }
|
||||
.highlight .mo {
|
||||
color: #ae81ff; }
|
||||
.highlight .sb {
|
||||
color: #e6db74; }
|
||||
.highlight .sc {
|
||||
color: #e6db74; }
|
||||
.highlight .sd {
|
||||
color: #e6db74; }
|
||||
.highlight .s2 {
|
||||
color: #e6db74; }
|
||||
.highlight .se {
|
||||
color: #ae81ff; }
|
||||
.highlight .sh {
|
||||
color: #e6db74; }
|
||||
.highlight .si {
|
||||
color: #e6db74; }
|
||||
.highlight .sx {
|
||||
color: #e6db74; }
|
||||
.highlight .sr {
|
||||
color: #e6db74; }
|
||||
.highlight .s1 {
|
||||
color: #e6db74; }
|
||||
.highlight .ss {
|
||||
color: #e6db74; }
|
||||
.highlight .bp {
|
||||
color: #f8f8f2; }
|
||||
.highlight .vc {
|
||||
color: #f8f8f2; }
|
||||
.highlight .vg {
|
||||
color: #f8f8f2; }
|
||||
.highlight .vi {
|
||||
color: #f8f8f2; }
|
||||
.highlight .il {
|
||||
color: #ae81ff; }
|
||||
.highlight .gu {
|
||||
color: #75715e; }
|
||||
.highlight .gd {
|
||||
color: #f92672; }
|
||||
.highlight .gi {
|
||||
color: #a6e22e; }
|
||||
.highlight { /* Comment */ /* Error */ /* Keyword */ /* Literal */ /* Name */ /* Operator */ /* Punctuation */ /* Comment.Multiline */ /* Comment.Preproc */ /* Comment.Single */ /* Comment.Special */ /* Generic.Emph */ /* Generic.Strong */ /* Keyword.Constant */ /* Keyword.Declaration */ /* Keyword.Namespace */ /* Keyword.Pseudo */ /* Keyword.Reserved */ /* Keyword.Type */ /* Literal.Date */ /* Literal.Number */ /* Literal.String */ /* Name.Attribute */ /* Name.Builtin */ /* Name.Class */ /* Name.Constant */ /* Name.Decorator */ /* Name.Entity */ /* Name.Exception */ /* Name.Function */ /* Name.Label */ /* Name.Namespace */ /* Name.Other */ /* Name.Property */ /* Name.Tag */ /* Name.Variable */ /* Operator.Word */ /* Text.Whitespace */ /* Literal.Number.Float */ /* Literal.Number.Hex */ /* Literal.Number.Integer */ /* Literal.Number.Oct */ /* Literal.String.Backtick */ /* Literal.String.Char */ /* Literal.String.Doc */ /* Literal.String.Double */ /* Literal.String.Escape */ /* Literal.String.Heredoc */ /* Literal.String.Interpol */ /* Literal.String.Other */ /* Literal.String.Regex */ /* Literal.String.Single */ /* Literal.String.Symbol */ /* Name.Builtin.Pseudo */ /* Name.Variable.Class */ /* Name.Variable.Global */ /* Name.Variable.Instance */ /* Literal.Number.Integer.Long */ /* Generic Heading & Diff Header */ /* Generic.Subheading & Diff Unified/Comment? */ /* Generic.Deleted & Diff Deleted */ /* Generic.Inserted & Diff Inserted */ }
|
||||
|
||||
.page-content .wrapper .post-toc > ul {
|
||||
overflow: auto; }
|
||||
.highlight .hll { background-color: #49483e; }
|
||||
|
||||
.util-notify1 {
|
||||
position: absolute;
|
||||
z-index: 100;
|
||||
background: rgba(0, 0, 0, 0.7);
|
||||
color: #FFF;
|
||||
padding: 5px 10px;
|
||||
font-size: 14px;
|
||||
pointer-events: none;
|
||||
opacity: 1;
|
||||
transition: .2s ease; }
|
||||
.util-notify1.hidden {
|
||||
opacity: 0;
|
||||
display: none; }
|
||||
.highlight .c { color: #75715e; }
|
||||
|
||||
.highlight .err { color: #960050; background-color: #1e0010; }
|
||||
|
||||
.highlight .k { color: #66d9ef; }
|
||||
|
||||
.highlight .l { color: #ae81ff; }
|
||||
|
||||
.highlight .n { color: #f8f8f2; }
|
||||
|
||||
.highlight .o { color: #f92672; }
|
||||
|
||||
.highlight .p { color: #f8f8f2; }
|
||||
|
||||
.highlight .cm { color: #75715e; }
|
||||
|
||||
.highlight .cp { color: #75715e; }
|
||||
|
||||
.highlight .c1 { color: #75715e; }
|
||||
|
||||
.highlight .cs { color: #75715e; }
|
||||
|
||||
.highlight .ge { font-style: italic; }
|
||||
|
||||
.highlight .gs { font-weight: bold; }
|
||||
|
||||
.highlight .kc { color: #66d9ef; }
|
||||
|
||||
.highlight .kd { color: #66d9ef; }
|
||||
|
||||
.highlight .kn { color: #f92672; }
|
||||
|
||||
.highlight .kp { color: #66d9ef; }
|
||||
|
||||
.highlight .kr { color: #66d9ef; }
|
||||
|
||||
.highlight .kt { color: #66d9ef; }
|
||||
|
||||
.highlight .ld { color: #e6db74; }
|
||||
|
||||
.highlight .m { color: #ae81ff; }
|
||||
|
||||
.highlight .s { color: #e6db74; }
|
||||
|
||||
.highlight .na { color: #a6e22e; }
|
||||
|
||||
.highlight .nb { color: #f8f8f2; }
|
||||
|
||||
.highlight .nc { color: #a6e22e; }
|
||||
|
||||
.highlight .no { color: #66d9ef; }
|
||||
|
||||
.highlight .nd { color: #a6e22e; }
|
||||
|
||||
.highlight .ni { color: #f8f8f2; }
|
||||
|
||||
.highlight .ne { color: #a6e22e; }
|
||||
|
||||
.highlight .nf { color: #a6e22e; }
|
||||
|
||||
.highlight .nl { color: #f8f8f2; }
|
||||
|
||||
.highlight .nn { color: #f8f8f2; }
|
||||
|
||||
.highlight .nx { color: #a6e22e; }
|
||||
|
||||
.highlight .py { color: #f8f8f2; }
|
||||
|
||||
.highlight .nt { color: #f92672; }
|
||||
|
||||
.highlight .nv { color: #f8f8f2; }
|
||||
|
||||
.highlight .ow { color: #f92672; }
|
||||
|
||||
.highlight .w { color: #f8f8f2; }
|
||||
|
||||
.highlight .mf { color: #ae81ff; }
|
||||
|
||||
.highlight .mh { color: #ae81ff; }
|
||||
|
||||
.highlight .mi { color: #ae81ff; }
|
||||
|
||||
.highlight .mo { color: #ae81ff; }
|
||||
|
||||
.highlight .sb { color: #e6db74; }
|
||||
|
||||
.highlight .sc { color: #e6db74; }
|
||||
|
||||
.highlight .sd { color: #e6db74; }
|
||||
|
||||
.highlight .s2 { color: #e6db74; }
|
||||
|
||||
.highlight .se { color: #ae81ff; }
|
||||
|
||||
.highlight .sh { color: #e6db74; }
|
||||
|
||||
.highlight .si { color: #e6db74; }
|
||||
|
||||
.highlight .sx { color: #e6db74; }
|
||||
|
||||
.highlight .sr { color: #e6db74; }
|
||||
|
||||
.highlight .s1 { color: #e6db74; }
|
||||
|
||||
.highlight .ss { color: #e6db74; }
|
||||
|
||||
.highlight .bp { color: #f8f8f2; }
|
||||
|
||||
.highlight .vc { color: #f8f8f2; }
|
||||
|
||||
.highlight .vg { color: #f8f8f2; }
|
||||
|
||||
.highlight .vi { color: #f8f8f2; }
|
||||
|
||||
.highlight .il { color: #ae81ff; }
|
||||
|
||||
.highlight .gu { color: #75715e; }
|
||||
|
||||
.highlight .gd { color: #f92672; }
|
||||
|
||||
.highlight .gi { color: #a6e22e; }
|
||||
|
||||
.page-content .wrapper .post-toc > ul { overflow: auto; }
|
||||
|
||||
.util-notify1 { position: absolute; z-index: 100; background: rgba(0, 0, 0, 0.7); color: #FFF; padding: 5px 10px; font-size: 14px; pointer-events: none; opacity: 1; transition: .2s ease; }
|
||||
|
||||
.util-notify1.hidden { opacity: 0; display: none; }
|
||||
|
||||
/*# sourceMappingURL=main.css.map */
|
||||
File diff suppressed because one or more lines are too long
@@ -181,27 +181,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
body{
|
||||
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Open Sans, Ubuntu, Fira Sans, Helvetica Neue, sans-serif;
|
||||
font-size: 1.6rem;
|
||||
color: #222;
|
||||
|
||||
background-color: #f0f0f0;
|
||||
margin: 0;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
p{
|
||||
margin-top: 0;
|
||||
margin-bottom: 1.5rem;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
p:last-child{
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.page{
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
|
||||
+5
-7
@@ -6,27 +6,25 @@
|
||||
</description>
|
||||
<link>https://codersherlock.github.com//</link>
|
||||
<atom:link href="https://codersherlock.github.com//feed.xml" rel="self" type="application/rss+xml"/>
|
||||
<pubDate>Sun, 09 Sep 2018 17:56:38 -0400</pubDate>
|
||||
<lastBuildDate>Sun, 09 Sep 2018 17:56:38 -0400</lastBuildDate>
|
||||
<generator>Jekyll v3.8.3</generator>
|
||||
<pubDate>Tue, 15 Sep 2020 19:43:12 -0400</pubDate>
|
||||
<lastBuildDate>Tue, 15 Sep 2020 19:43:12 -0400</lastBuildDate>
|
||||
<generator>Jekyll v4.1.1</generator>
|
||||
|
||||
<item>
|
||||
<title>Xv6 introduction</title>
|
||||
<description><p>I hate xv6, a stupid, useless education-oriented system. In this article, I will generally talk about how to implement system call to this operating system.</p>
|
||||
|
||||
<hr />
|
||||
|
||||
<h2 id="xv6-systemcall">Xv6 Systemcall</h2>
|
||||
<p>To invoke a system call, we have to first define a user mode function to be the interface of the kernel instruction in file <em>user.h</em>.</p>
|
||||
|
||||
<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="n">function</span> <span class="p">(</span><span class="kt">void</span><span class="p">);</span>
|
||||
<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="nf">function</span> <span class="p">(</span><span class="kt">void</span><span class="p">);</span>
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>This interface-like function will then pass the function name, in this case function, to <em>usys.S</em>. When using user mode function in programs, <em>usys.S</em> will generate a reference to SYS_function and push system call number of this function into %eax. After that, system can know from <em>syscall.c</em> and determining whether this system call is available. We must define same name system function and add it into <em>syscall.h</em> and <em>syscall.c</em>.</p>
|
||||
|
||||
<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">#define SYS_function ## // ## is the system call number
|
||||
</span><span class="p">[</span><span class="n">SYS_function</span><span class="p">]</span> <span class="n">sys_function</span> <span class="c1">// real system function name</span>
|
||||
<span class="k">extern</span> <span class="kt">int</span> <span class="n">sys_function</span><span class="p">(</span><span class="kt">void</span><span class="p">);</span> <span class="c1">// real system function declaration</span>
|
||||
<span class="k">extern</span> <span class="kt">int</span> <span class="nf">sys_function</span><span class="p">(</span><span class="kt">void</span><span class="p">);</span> <span class="c1">// real system function declaration</span>
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>After adding these sentences to syscall files, we can implement real function in specific place where you want to make the function works well.</p>
|
||||
|
||||
+5
-11
@@ -13,6 +13,7 @@
|
||||
<link rel="stylesheet" href="/css/main.css">
|
||||
<link rel="stylesheet" href="/css/timeline.css">
|
||||
<link rel="canonical" href="https://codersherlock.github.com//">
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Tangerine">
|
||||
<link rel="alternate" type="application/rss+xml" title="Stop Talking, Start Doing - 停止空想,开始行动" href="https://codersherlock.github.com//feed.xml" />
|
||||
<script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
@@ -44,9 +45,7 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a class="page-link" href="/about/">About</a>
|
||||
<a class="page-link" href="/about/">About Me</a>
|
||||
|
||||
|
||||
|
||||
@@ -84,7 +83,6 @@
|
||||
<div class="post-excerpt">
|
||||
<p>I hate xv6, a stupid, useless education-oriented system. In this article, I will generally talk about how to implement system call to this operating system.</p>
|
||||
|
||||
|
||||
<p>
|
||||
<a class="post-link" href="/archivers/intro-xv6">Read More »</a>
|
||||
</p>
|
||||
@@ -101,7 +99,6 @@
|
||||
<div class="post-excerpt">
|
||||
<p>This blog contains only some basic record of my works. For some details, I will write a unique blog just for some specific topics.</p>
|
||||
|
||||
|
||||
<p>
|
||||
<a class="post-link" href="/archivers/some-of-my-previews-exper-work">Read More »</a>
|
||||
</p>
|
||||
@@ -119,7 +116,6 @@
|
||||
<p>In this blog, I will generally talk about how to use proper tools to monitor SSL traffics of a mobile devices. Currently, I only can dealing with those SSL traffics which use an obviously certification. Some applications may not using system root cert or they doesn’t provide us a method to modify their own certs. For these situation, I still didn’t find a good solutions for it. But I’ll keep updating this if I get one.<br />
|
||||
My current solution is using AP to forward all SSL traffic to a proxy, <a href="https://www.charlesproxy.com/">charles proxy</a> is my first choice (Prof asked). It’s a non-free software which still update new versions now. So mainly, I’ll talk about how to charles SSL proxy.</p>
|
||||
|
||||
|
||||
<p>
|
||||
<a class="post-link" href="/archivers/charles-is-not-a-good-tool">Read More »</a>
|
||||
</p>
|
||||
@@ -160,16 +156,14 @@ My current solution is using AP to forward all SSL traffic to a proxy, <a href="
|
||||
</div>
|
||||
<div class="col-second">
|
||||
<div class="col-box col-box-author">
|
||||
<img class="avatar" src="/static/avatar.jpg" alt="Pengzhan Hao - 碾子">
|
||||
<div class="col-box-title name">Pengzhan Hao - 碾子</div>
|
||||
<img class="avatar" src="/static/avatar.jpg" alt="Pengzhan Hao">
|
||||
<div class="col-box-title name">Pengzhan Hao</div>
|
||||
<p></p>
|
||||
<p class="contact">
|
||||
|
||||
<a href="https://github.com/codersherlock">GitHub</a>
|
||||
|
||||
|
||||
<a href="https://twitter.com/haopengzhan">Twitter</a>
|
||||
|
||||
|
||||
<a href="mailto:haopengzhan@gmail.com">Email</a>
|
||||
|
||||
@@ -200,7 +194,7 @@ My current solution is using AP to forward all SSL traffic to a proxy, <a href="
|
||||
|
||||
<footer class="footer">
|
||||
<div class="wrapper">
|
||||
© 2016 Pengzhan Hao - 碾子
|
||||
© 2016 Pengzhan Hao
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
@@ -1,239 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<title>About - Timeline « Stop Talking, Start Doing - 停止空想,开始行动</title>
|
||||
<meta name="description" content="My personal blog, with some boring research staff and some tricks I was fancy to. I'll try my best to make this blog fun and useful. Not just a place I complain about all happens in my Lab.
|
||||
">
|
||||
|
||||
<link rel="stylesheet" href="/css/main.css">
|
||||
<link rel="stylesheet" href="/css/timeline.css">
|
||||
<link rel="canonical" href="https://codersherlock.github.com//timeline/">
|
||||
<link rel="alternate" type="application/rss+xml" title="Stop Talking, Start Doing - 停止空想,开始行动" href="https://codersherlock.github.com//feed.xml" />
|
||||
<script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
||||
|
||||
ga('create', 'UA-82637164-1', 'auto');
|
||||
ga('send', 'pageview');
|
||||
|
||||
</script>
|
||||
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
|
||||
<script>
|
||||
(adsbygoogle = window.adsbygoogle || []).push({
|
||||
google_ad_client: "ca-pub-6651321038908478",
|
||||
enable_page_level_ads: true
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
|
||||
|
||||
<body>
|
||||
|
||||
<header class="header">
|
||||
<div class="wrapper">
|
||||
<a class="site-title" href="/">Stop Talking, Start Doing - 停止空想,开始行动</a>
|
||||
<nav class="site-nav">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a class="page-link" href="/about/">About</a>
|
||||
|
||||
|
||||
|
||||
<a class="page-link" href="/category/">Category</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="page-content">
|
||||
<div class="wrapper">
|
||||
<div class="col-main">
|
||||
<div class="post">
|
||||
|
||||
<header class="post-header">
|
||||
<h1 class="post-title">About - Timeline</h1>
|
||||
</header>
|
||||
|
||||
<article class="post-content">
|
||||
<div class="timeline">
|
||||
|
||||
<div class="timeline__group">
|
||||
<span class="timeline__year">Now</span>
|
||||
</div>
|
||||
|
||||
<div class="timeline__group">
|
||||
<div class="timeline__box">
|
||||
<div class="timeline__date">
|
||||
<span class="timeline__day">10</span>
|
||||
<span clas="timeline__month">Sept</span>
|
||||
</div>
|
||||
<div class="timeline__post">
|
||||
<div class="timeline__content">
|
||||
<p>Look up at the Starry Sky<audio controls><source src="/static/2018-09/beihang.mp3 type="audio/mpeg"></audio></p>
|
||||
<img src="http://www.fsaona.com/images/imagesbigimg.jpg" height="250">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<span class="timeline__year">2010</span>
|
||||
</div>
|
||||
|
||||
<div class="timeline__group">
|
||||
<div class="timeline__box">
|
||||
<div class="timeline__date">
|
||||
<span class="timeline__day">10</span>
|
||||
<span clas="timeline__month">Sept</span>
|
||||
</div>
|
||||
<div class="timeline__post">
|
||||
<div class="timeline__content">
|
||||
<!-- <p> Transfered to another high school</p> -->
|
||||
<img src="http://school.zhongkao.com/style/school/pictures/school/734/73421/logo.jpg" height="250">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<span class="timeline__year">2010</span>
|
||||
</div>
|
||||
|
||||
<div class="timeline__group">
|
||||
<div class="timeline__box">
|
||||
<div class="timeline__date">
|
||||
<span class="timeline__day">1</span>
|
||||
<span clas="timeline__month">Sept</span>
|
||||
</div>
|
||||
<div class="timeline__post">
|
||||
<div class="timeline__content">
|
||||
<!-- <p> Attened high school</p> -->
|
||||
<img src="http://www.fuzhong.sd.cn/uploadfile/2015/0704/20150704044140866.jpg" height="250">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<span class="timeline__year">2008</span>
|
||||
</div>
|
||||
|
||||
<div class="timeline__group">
|
||||
<div class="timeline__box">
|
||||
<div class="timeline__date">
|
||||
<span class="timeline__day">1</span>
|
||||
<span clas="timeline__month">Sept</span>
|
||||
</div>
|
||||
<div class="timeline__post">
|
||||
<div class="timeline__content">
|
||||
<!-- <p> Attened middle school</p> -->
|
||||
<img src="https://gss2.bdstatic.com/-fo3dSag_xI4khGkpoWK1HF6hhy/baike/c0%3Dbaike72%2C5%2C5%2C72%2C24/sign=5bc3fe5949540923be646b2cf331ba6c/3812b31bb051f819506a0330dab44aed2e73e779.jpg" height="250">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<span class="timeline__year">2005</span>
|
||||
</div>
|
||||
|
||||
<div class="timeline__group">
|
||||
<div class="timeline__box">
|
||||
<div class="timeline__date">
|
||||
<span class="timeline__day">1</span>
|
||||
<span clas="timeline__month">Sept</span>
|
||||
</div>
|
||||
<div class="timeline__post">
|
||||
<div class="timeline__content">
|
||||
<!-- <p> Attened primary school</p> -->
|
||||
<img src="http://www.sdsdfx.com:85/fxjylm/u/cms/www/201510/27194804xvgc.jpg" height="250">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<span class="timeline__year">1999</span>
|
||||
</div>
|
||||
|
||||
<div class="timeline__group">
|
||||
<div class="timeline__box">
|
||||
<div class="timeline__date">
|
||||
<span class="timeline__day">26</span>
|
||||
<span class="timeline__month">Aug</span>
|
||||
</div>
|
||||
<div class="timeline__post">
|
||||
<div class="timeline__content">
|
||||
<p> Borned in <a href="https://en.wikipedia.org/wiki/Jinan">Jinan</a>, <a href="https://en.wikipedia.org/wiki/Shandong">Shandong Province</a>, China </p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<span class="timeline__year">1993</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</article>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col-second">
|
||||
<div class="col-box col-box-author">
|
||||
<img class="avatar" src="/static/avatar.jpg" alt="Pengzhan Hao - 碾子">
|
||||
<div class="col-box-title name">Pengzhan Hao - 碾子</div>
|
||||
<p></p>
|
||||
<p class="contact">
|
||||
|
||||
<a href="https://github.com/codersherlock">GitHub</a>
|
||||
|
||||
|
||||
<a href="https://twitter.com/haopengzhan">Twitter</a>
|
||||
|
||||
|
||||
<a href="mailto:haopengzhan@gmail.com">Email</a>
|
||||
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="col-box">
|
||||
<div class="col-box-title">Newest Posts</div>
|
||||
<ul class="post-list">
|
||||
|
||||
<li><a class="post-link" href="/archivers/intro-xv6">Xv6 introduction</a></li>
|
||||
|
||||
<li><a class="post-link" href="/archivers/some-of-my-previews-exper-work">Some of my previews experiment works: 2016</a></li>
|
||||
|
||||
<li><a class="post-link" href="/archivers/charles-is-not-a-good-tool">Using charles proxy to monitor mobile SSL traffics</a></li>
|
||||
|
||||
<li><a class="post-link" href="/archivers/hello">Stop Talking is the worst title of one blog</a></li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="col-box post-toc hide">
|
||||
<div class="col-box-title">TOC</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class="footer">
|
||||
<div class="wrapper">
|
||||
© 2016 Pengzhan Hao - 碾子
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="/js/easybook.js"></script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -13,6 +13,7 @@
|
||||
<link rel="stylesheet" href="/css/main.css">
|
||||
<link rel="stylesheet" href="/css/timeline.css">
|
||||
<link rel="canonical" href="https://codersherlock.github.com//timeline/">
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Tangerine">
|
||||
<link rel="alternate" type="application/rss+xml" title="Stop Talking, Start Doing - 停止空想,开始行动" href="https://codersherlock.github.com//feed.xml" />
|
||||
<script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
@@ -44,9 +45,7 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a class="page-link" href="/about/">About</a>
|
||||
<a class="page-link" href="/about/">About Me</a>
|
||||
|
||||
|
||||
|
||||
@@ -61,6 +60,8 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</header>
|
||||
@@ -189,16 +190,14 @@
|
||||
</div>
|
||||
<div class="col-second">
|
||||
<div class="col-box col-box-author">
|
||||
<img class="avatar" src="/static/avatar.jpg" alt="Pengzhan Hao - 碾子">
|
||||
<div class="col-box-title name">Pengzhan Hao - 碾子</div>
|
||||
<img class="avatar" src="/static/avatar.jpg" alt="Pengzhan Hao">
|
||||
<div class="col-box-title name">Pengzhan Hao</div>
|
||||
<p></p>
|
||||
<p class="contact">
|
||||
|
||||
<a href="https://github.com/codersherlock">GitHub</a>
|
||||
|
||||
|
||||
<a href="https://twitter.com/haopengzhan">Twitter</a>
|
||||
|
||||
|
||||
<a href="mailto:haopengzhan@gmail.com">Email</a>
|
||||
|
||||
@@ -229,7 +228,7 @@
|
||||
|
||||
<footer class="footer">
|
||||
<div class="wrapper">
|
||||
© 2016 Pengzhan Hao - 碾子
|
||||
© 2016 Pengzhan Hao
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user