mirror of
https://github.com/CoderSherlock/CoderSherlock.github.io.git
synced 2026-06-13 08:08:10 -07:00
start_again
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: Page Not Found
|
||||||
|
permalink: /404.html
|
||||||
|
nocomments: true
|
||||||
|
public: false
|
||||||
|
---
|
||||||
|
|
||||||
|
Where am I and where should I go?
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
The MIT License (MIT)
|
||||||
|
Copyright (c) 2016 laobubu
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
# jekyll-theme-EasyBook
|
||||||
|
|
||||||
|
Another Jekyll Blog Theme "EasyBook"
|
||||||
|
|
||||||
|
Start blogging with a simple but powerful theme.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Everything Basic Jekyll has.
|
||||||
|
- **Pagination** is enabled.
|
||||||
|
- **Comments** using Disqus or 多说.
|
||||||
|
- **TOC** makes reading easier.
|
||||||
|
- **Profile** including your links and avatar on the sidebar.
|
||||||
|
- *And more...*
|
||||||
|
|
||||||
|
## Install
|
||||||
|
|
||||||
|
Read [Quick Guide] to learn how to install and publish.
|
||||||
|
|
||||||
|
Read [Welcome to Jekyll and EasyBook][helloPost] and [Jekyll][jekyll] for further information.
|
||||||
|
|
||||||
|
**If need help, please:**
|
||||||
|
|
||||||
|
- [**Read Wiki pages**](https://github.com/laobubu/jekyll-theme-EasyBook/wiki)
|
||||||
|
- **Google it**
|
||||||
|
- [**Submit an issue**](https://github.com/laobubu/jekyll-theme-EasyBook/issues/new)
|
||||||
|
|
||||||
|
## Donate
|
||||||
|
|
||||||
|
Buy me a coffee if you find EasyBook useful for you :smiley:
|
||||||
|
|
||||||
|
Visit <http://laobubu.net/donate.html>
|
||||||
|
|
||||||
|
## Demo
|
||||||
|
|
||||||
|
[laobubu's blog](http://blog.laobubu.net) | [empty site](http://laobubu.github.io/jekyll-theme-EasyBook)
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
```
|
||||||
|
The MIT License (MIT)
|
||||||
|
Copyright (c) 2016 laobubu
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
```
|
||||||
|
|
||||||
|
[Quick Guide]: https://github.com/laobubu/jekyll-theme-EasyBook/wiki/Quick-Guide
|
||||||
|
[helloPost]: http://laobubu.github.io/jekyll-theme-EasyBook/archivers/hello
|
||||||
|
[jekyll]: http://jekyllrb.com/
|
||||||
+37
@@ -0,0 +1,37 @@
|
|||||||
|
# Welcome to Jekyll!
|
||||||
|
#
|
||||||
|
# This config file is meant for settings that affect your whole blog, values
|
||||||
|
# which you are expected to set up once and rarely need to edit after that.
|
||||||
|
# For technical reasons, this file is *NOT* reloaded automatically when you use
|
||||||
|
# 'jekyll serve'. If you change this file, please restart the server process.
|
||||||
|
|
||||||
|
# Site settings
|
||||||
|
title: Stop Talking, Start Doing - 停止空想,开始行动
|
||||||
|
author: Pengzhan Hao - 碾子
|
||||||
|
avatar: "/static/avatar.jpg"
|
||||||
|
email: haopengzhan@gmail.com
|
||||||
|
description: > # this means to ignore newlines until "baseurl:"
|
||||||
|
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.
|
||||||
|
baseurl: "" # the subpath of your site, e.g. /blog
|
||||||
|
url: "https://codersherlock.github.com/" # the base hostname & protocol for your site
|
||||||
|
twitter_username: haopengzhan
|
||||||
|
github_username: codersherlock
|
||||||
|
|
||||||
|
permalink: /archivers/:title
|
||||||
|
gems:
|
||||||
|
- jekyll-paginate
|
||||||
|
- jekyll-gist
|
||||||
|
- jemoji
|
||||||
|
|
||||||
|
# Build settings
|
||||||
|
paginate: 5
|
||||||
|
paginate_path: "page:num"
|
||||||
|
|
||||||
|
highlighter: rouge
|
||||||
|
markdown: kramdown
|
||||||
|
|
||||||
|
kramdown:
|
||||||
|
input: GFM
|
||||||
|
syntax_highlighter: rouge
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
{% if page.nocomments %}
|
||||||
|
{% else %}
|
||||||
|
{% if site.disqus_shortname %}
|
||||||
|
<div class="post-comments">
|
||||||
|
<div id="disqus_thread"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var disqus_shortname = '{{ site.disqus_shortname }}'; // required: replace example with your forum shortname
|
||||||
|
(function() {
|
||||||
|
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
|
||||||
|
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
|
||||||
|
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
{% if site.duoshuo_shortname %}
|
||||||
|
<div class="post-comments">
|
||||||
|
<!-- 多说评论框 start -->
|
||||||
|
<div class="ds-thread" data-thread-key="{{ page.id }}" data-title="{{ page.title }}" data-url="{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}"></div>
|
||||||
|
<!-- 多说评论框 end -->
|
||||||
|
<!-- 多说公共JS代码 start (一个网页只需插入一次) -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var duoshuoQuery = {short_name:"{{ site.duoshuo_shortname }}"};
|
||||||
|
(function() {
|
||||||
|
var ds = document.createElement('script');
|
||||||
|
ds.type = 'text/javascript';ds.async = true;
|
||||||
|
ds.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '//static.duoshuo.com/embed.js';
|
||||||
|
ds.charset = 'UTF-8';
|
||||||
|
(document.getElementsByTagName('head')[0]
|
||||||
|
|| document.getElementsByTagName('body')[0]).appendChild(ds);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<!-- 多说公共JS代码 end -->
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
<footer class="footer">
|
||||||
|
<div class="wrapper">
|
||||||
|
© 2016 {{ site.author }}
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
<script src="{{ "/js/easybook.js" | prepend: site.baseurl }}"></script>
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
<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>{% if page.title %}{{ page.title }} « {{ site.title }}{% else %}{{ site.title }}{% endif %}</title>
|
||||||
|
<meta name="description" content="{% if page.excerpt %}{{ page.excerpt | strip_html | strip_newlines | truncate: 160 }}{% else %}{{ site.description }}{% endif %}">
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="{{ "/css/main.css" | prepend: site.baseurl }}">
|
||||||
|
<link rel="canonical" href="{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}">
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="{{ site.title }}" href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}" />
|
||||||
|
</head>
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
<header class="header">
|
||||||
|
<div class="wrapper">
|
||||||
|
<a class="site-title" href="{{ site.baseurl }}/">{{ site.title }}</a>
|
||||||
|
<nav class="site-nav">
|
||||||
|
{% for page in site.pages %}
|
||||||
|
{% if page.title and page.public %}
|
||||||
|
<a class="page-link" href="{{ page.url | prepend: site.baseurl }}">{{ page.title }}</a>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
<a href="https://github.com/{{ include.username }}"><span class="icon icon--github">{% include icon-github.svg %}</span><span class="username">{{ include.username }}</span></a>
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
<svg viewBox="0 0 16 16"><path fill="#828282" d="M7.999,0.431c-4.285,0-7.76,3.474-7.76,7.761 c0,3.428,2.223,6.337,5.307,7.363c0.388,0.071,0.53-0.168,0.53-0.374c0-0.184-0.007-0.672-0.01-1.32 c-2.159,0.469-2.614-1.04-2.614-1.04c-0.353-0.896-0.862-1.135-0.862-1.135c-0.705-0.481,0.053-0.472,0.053-0.472 c0.779,0.055,1.189,0.8,1.189,0.8c0.692,1.186,1.816,0.843,2.258,0.645c0.071-0.502,0.271-0.843,0.493-1.037 C4.86,11.425,3.049,10.76,3.049,7.786c0-0.847,0.302-1.54,0.799-2.082C3.768,5.507,3.501,4.718,3.924,3.65 c0,0,0.652-0.209,2.134,0.796C6.677,4.273,7.34,4.187,8,4.184c0.659,0.003,1.323,0.089,1.943,0.261 c1.482-1.004,2.132-0.796,2.132-0.796c0.423,1.068,0.157,1.857,0.077,2.054c0.497,0.542,0.798,1.235,0.798,2.082 c0,2.981-1.814,3.637-3.543,3.829c0.279,0.24,0.527,0.713,0.527,1.437c0,1.037-0.01,1.874-0.01,2.129 c0,0.208,0.14,0.449,0.534,0.373c3.081-1.028,5.302-3.935,5.302-7.362C15.76,3.906,12.285,0.431,7.999,0.431z"/></svg>
|
||||||
|
After Width: | Height: | Size: 926 B |
@@ -0,0 +1 @@
|
|||||||
|
<a href="https://twitter.com/{{ include.username }}"><span class="icon icon--twitter">{% include icon-twitter.svg %}</span><span class="username">{{ include.username }}</span></a>
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
<svg viewBox="0 0 16 16"><path fill="#828282" d="M15.969,3.058c-0.586,0.26-1.217,0.436-1.878,0.515c0.675-0.405,1.194-1.045,1.438-1.809c-0.632,0.375-1.332,0.647-2.076,0.793c-0.596-0.636-1.446-1.033-2.387-1.033c-1.806,0-3.27,1.464-3.27,3.27 c0,0.256,0.029,0.506,0.085,0.745C5.163,5.404,2.753,4.102,1.14,2.124C0.859,2.607,0.698,3.168,0.698,3.767 c0,1.134,0.577,2.135,1.455,2.722C1.616,6.472,1.112,6.325,0.671,6.08c0,0.014,0,0.027,0,0.041c0,1.584,1.127,2.906,2.623,3.206 C3.02,9.402,2.731,9.442,2.433,9.442c-0.211,0-0.416-0.021-0.615-0.059c0.416,1.299,1.624,2.245,3.055,2.271 c-1.119,0.877-2.529,1.4-4.061,1.4c-0.264,0-0.524-0.015-0.78-0.046c1.447,0.928,3.166,1.469,5.013,1.469 c6.015,0,9.304-4.983,9.304-9.304c0-0.142-0.003-0.283-0.009-0.423C14.976,4.29,15.531,3.714,15.969,3.058z"/></svg>
|
||||||
|
After Width: | Height: | Size: 787 B |
@@ -0,0 +1,29 @@
|
|||||||
|
<div class="col-box col-box-author">
|
||||||
|
<img class="avatar" src="{{ site.avatar }}" alt="{{ site.author }}">
|
||||||
|
<div class="col-box-title name">{{ site.author }}</div>
|
||||||
|
<p>{{ site.profile }}</p>
|
||||||
|
<p class="contact">
|
||||||
|
{% if site.github_username %}
|
||||||
|
<a href="https://github.com/{{ site.github_username }}">GitHub</a>
|
||||||
|
{% endif %}
|
||||||
|
{% if site.twitter_username %}
|
||||||
|
<a href="https://twitter.com/{{ site.twitter_username }}">Twitter</a>
|
||||||
|
{% endif %}
|
||||||
|
{% if site.email %}
|
||||||
|
<a href="mailto:{{ site.email }}">Email</a>
|
||||||
|
{% endif %}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-box">
|
||||||
|
<div class="col-box-title">Newest Posts</div>
|
||||||
|
<ul class="post-list">
|
||||||
|
{% for post in site.posts limit:5 %}
|
||||||
|
<li><a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-box post-toc hide">
|
||||||
|
<div class="col-box-title">TOC</div>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
{% include head.html %}
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
{% include header.html %}
|
||||||
|
|
||||||
|
<div class="page-content">
|
||||||
|
<div class="wrapper">
|
||||||
|
<div class="col-main">
|
||||||
|
{{ content }}
|
||||||
|
</div>
|
||||||
|
<div class="col-second">
|
||||||
|
{% include sidebar.html %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% include footer.html %}
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
layout: default
|
||||||
|
---
|
||||||
|
<div class="post">
|
||||||
|
|
||||||
|
<header class="post-header">
|
||||||
|
<h1 class="post-title">{{ page.title }}</h1>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<article class="post-content">
|
||||||
|
{{ content }}
|
||||||
|
</article>
|
||||||
|
|
||||||
|
{% include comment.html %}
|
||||||
|
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
layout: default
|
||||||
|
---
|
||||||
|
<div class="post">
|
||||||
|
|
||||||
|
<header class="post-header">
|
||||||
|
<h1 class="post-title">{{ page.title }}</h1>
|
||||||
|
<p class="post-meta">{{ page.date | date: "%b %-d, %Y" }}{% if page.author %} • {{ page.author }}{% endif %}{% if page.meta %} • {{ page.meta }}{% endif %}</p>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<article class="post-content">
|
||||||
|
{{ content }}
|
||||||
|
</article>
|
||||||
|
|
||||||
|
{% include comment.html %}
|
||||||
|
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: "Stop Talking is the worst title of one blog"
|
||||||
|
date: 2016-10-26 22:50:33 -0400
|
||||||
|
categories: Nonsense
|
||||||
|
permalink: /archivers/hello
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,74 @@
|
|||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
font-family: $base-font-family;
|
||||||
|
font-size: $base-font-size;
|
||||||
|
line-height: $base-line-height;
|
||||||
|
}
|
||||||
|
a {
|
||||||
|
text-decoration: none;
|
||||||
|
color: #036;
|
||||||
|
}
|
||||||
|
a:hover, a:focus {
|
||||||
|
text-decoration:underline;
|
||||||
|
color: #069;
|
||||||
|
}
|
||||||
|
blockquote {
|
||||||
|
background: #FFF;
|
||||||
|
margin:0;
|
||||||
|
padding: 5px 20px;
|
||||||
|
border-left: 10px solid #CCC;
|
||||||
|
}
|
||||||
|
code,pre {
|
||||||
|
font-family: $code-font-family;
|
||||||
|
font-size: $code-font-size;
|
||||||
|
}
|
||||||
|
code {
|
||||||
|
color: #900;
|
||||||
|
background-color: #fff;
|
||||||
|
padding: 2px 5px;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
pre {
|
||||||
|
overflow-x: auto;
|
||||||
|
padding: 20px 50px;
|
||||||
|
}
|
||||||
|
pre, pre code {
|
||||||
|
color: #fafafa;
|
||||||
|
background-color: #223;
|
||||||
|
}
|
||||||
|
pre code {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.hide {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.center {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0;
|
||||||
|
margin: 10pt auto;
|
||||||
|
background: #FFF;
|
||||||
|
|
||||||
|
td, th {
|
||||||
|
border: 1px solid #CCC;
|
||||||
|
padding: 5px 15px;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
th {
|
||||||
|
border-color: #555;
|
||||||
|
background: #555;
|
||||||
|
color: #eee;
|
||||||
|
font-weight:normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr:hover {
|
||||||
|
background: rgba(255,255,0,0.2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h1,h2,h3,h4,h5,h6{
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
.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;
|
||||||
|
|
||||||
|
&.hidden {
|
||||||
|
opacity: 0;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,102 @@
|
|||||||
|
.home {
|
||||||
|
.page-heading {
|
||||||
|
font-size:40px;
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 20px;
|
||||||
|
@include media-query($on-palm) {
|
||||||
|
margin: 10px;
|
||||||
|
font-size: 34px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.rss-link {
|
||||||
|
float:right;
|
||||||
|
text-decoration: none;
|
||||||
|
border:1px solid;
|
||||||
|
color: #999;
|
||||||
|
background: #fff;
|
||||||
|
font-size: 0.7 * $base-font-size;
|
||||||
|
padding: 1px 8px;
|
||||||
|
|
||||||
|
&:hover, &:focus {
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.post-list {
|
||||||
|
margin: 0;
|
||||||
|
padding: 20px 40px;
|
||||||
|
list-style: none;
|
||||||
|
> li {
|
||||||
|
padding-bottom: 30px;
|
||||||
|
border-bottom: 1px solid #CCC;
|
||||||
|
margin-bottom: 30px;
|
||||||
|
}
|
||||||
|
.post-title {
|
||||||
|
font-size: 28px;
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
.post-meta {
|
||||||
|
font-size: $small-font-size;
|
||||||
|
color: #666;
|
||||||
|
margin: 0 20px;
|
||||||
|
margin-bottom: .5em;
|
||||||
|
}
|
||||||
|
.post-excerpt {
|
||||||
|
&, * {
|
||||||
|
font-size: $small-font-size;
|
||||||
|
line-height: $small-font-size;
|
||||||
|
padding-top: 0;
|
||||||
|
padding-bottom: 0;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
code, pre, pre * {
|
||||||
|
color: #666;
|
||||||
|
background-color: #eee;
|
||||||
|
}
|
||||||
|
th {
|
||||||
|
border-color: #ccc;
|
||||||
|
background-color: #ccc;
|
||||||
|
}
|
||||||
|
a {
|
||||||
|
color: $color-link-hover;
|
||||||
|
}
|
||||||
|
img {
|
||||||
|
display: block;
|
||||||
|
margin: 1em auto;
|
||||||
|
max-height: 16em;
|
||||||
|
opacity: .7;
|
||||||
|
transition: opacity .3s;
|
||||||
|
&:hover {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
margin: 0 20px;
|
||||||
|
}
|
||||||
|
@include media-query($on-palm) {
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.pagination {
|
||||||
|
text-align:center;
|
||||||
|
text-decoration:none;
|
||||||
|
color: #666;
|
||||||
|
margin: 30px 0;
|
||||||
|
.page_number {
|
||||||
|
margin:0 30px;
|
||||||
|
}
|
||||||
|
.previous,.next {
|
||||||
|
padding: 10px 20px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
a.previous,a.next {
|
||||||
|
color: #333;
|
||||||
|
border-radius: 20px;
|
||||||
|
border: 1px solid #CCC;
|
||||||
|
}
|
||||||
|
a.previous:hover,a.next:hover {
|
||||||
|
background: #fefefe;
|
||||||
|
color: #000;
|
||||||
|
text-decoration:none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,211 @@
|
|||||||
|
.wrapper {
|
||||||
|
margin: 0 auto;
|
||||||
|
max-width: 1100px;
|
||||||
|
}
|
||||||
|
@media (max-width: 1120px) {
|
||||||
|
.wrapper {
|
||||||
|
max-width: 800px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.header {
|
||||||
|
line-height: $base-font-size * 2;
|
||||||
|
background-color: $header-bg;
|
||||||
|
padding: 10px;
|
||||||
|
margin: 0;
|
||||||
|
|
||||||
|
&:after {
|
||||||
|
clear: both;
|
||||||
|
content: ' ';
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-title {
|
||||||
|
float: left;
|
||||||
|
color: $header-fg;
|
||||||
|
text-decoration: none;
|
||||||
|
font-size: $base-font-size;
|
||||||
|
line-height: $base-font-size * 2;
|
||||||
|
}
|
||||||
|
.site-nav {
|
||||||
|
text-align:right;
|
||||||
|
|
||||||
|
a {
|
||||||
|
text-decoration: none;
|
||||||
|
color: $header-link;
|
||||||
|
padding: 10px 20px;
|
||||||
|
white-space: nowrap;
|
||||||
|
|
||||||
|
&:hover, &:focus {
|
||||||
|
background: $header-bg-hover;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-content {
|
||||||
|
background:#e0e0e3;
|
||||||
|
padding: 30px 0;
|
||||||
|
|
||||||
|
.wrapper {
|
||||||
|
position: relative;
|
||||||
|
background: #FAFAFA;
|
||||||
|
box-shadow: 0 1px 4px #999;
|
||||||
|
outline: 1px solid #CCC;
|
||||||
|
&:after {
|
||||||
|
clear:both;
|
||||||
|
content: '';
|
||||||
|
display:block;
|
||||||
|
}
|
||||||
|
&:before {
|
||||||
|
content: '';
|
||||||
|
display:block;
|
||||||
|
position: absolute;
|
||||||
|
width: 300px;
|
||||||
|
height: 100%;
|
||||||
|
left: 800px;
|
||||||
|
top: 0;
|
||||||
|
background: #EEE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
max-width:100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Colum
|
||||||
|
.col-main {
|
||||||
|
position: relative;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 30px;
|
||||||
|
width: 800px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
.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: $small-font-size;
|
||||||
|
padding-bottom: 20px;
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
ul {
|
||||||
|
padding-left: 20px;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:not(:first-child) {
|
||||||
|
border-top: 1px solid #ccc;
|
||||||
|
padding-top: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-box-title {
|
||||||
|
color: #333;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
font-size: $small-font-size * 1.1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@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;
|
||||||
|
.avatar {
|
||||||
|
width: 135px;
|
||||||
|
height: 135px;
|
||||||
|
border-radius: 100%;
|
||||||
|
margin: 20px auto;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.name {
|
||||||
|
font-size: $base-font-size;
|
||||||
|
}
|
||||||
|
.contact {
|
||||||
|
margin-top: 10px;
|
||||||
|
a {
|
||||||
|
background: #999;
|
||||||
|
color: #eee;
|
||||||
|
padding: 5px 10px;
|
||||||
|
text-decoration: none;
|
||||||
|
border-radius: 5px;
|
||||||
|
white-space: nowrap;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
transition: background 0.3s ease;
|
||||||
|
background: #666;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// footer
|
||||||
|
.footer {
|
||||||
|
padding: 60px 0;
|
||||||
|
background-color: #e0e0e3;
|
||||||
|
text-align:center;
|
||||||
|
color:#666;
|
||||||
|
font-size:$small-font-size;
|
||||||
|
}
|
||||||
|
|
||||||
|
@import "post", "home";
|
||||||
|
|
||||||
|
@include media-query($on-laptop) {
|
||||||
|
.page-content {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.footer {
|
||||||
|
padding: 15px 0 ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@include media-query($on-palm) {
|
||||||
|
.header {
|
||||||
|
&, .site-nav{
|
||||||
|
text-align:center;
|
||||||
|
}
|
||||||
|
.site-title {
|
||||||
|
float: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.col-main {
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
.col-box {
|
||||||
|
width: 100%;
|
||||||
|
float: none;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
pre {
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,425 @@
|
|||||||
|
/*! normalize.css v3.0.1 | MIT License | git.io/normalize */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1. Set default font family to sans-serif.
|
||||||
|
* 2. Prevent iOS text size adjust after orientation change, without disabling
|
||||||
|
* user zoom.
|
||||||
|
*/
|
||||||
|
|
||||||
|
html {
|
||||||
|
font-family: sans-serif; /* 1 */
|
||||||
|
-ms-text-size-adjust: 100%; /* 2 */
|
||||||
|
-webkit-text-size-adjust: 100%; /* 2 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove default margin.
|
||||||
|
*/
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* HTML5 display definitions
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Correct `block` display not defined for any HTML5 element in IE 8/9.
|
||||||
|
* Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox.
|
||||||
|
* Correct `block` display not defined for `main` in IE 11.
|
||||||
|
*/
|
||||||
|
|
||||||
|
article,
|
||||||
|
aside,
|
||||||
|
details,
|
||||||
|
figcaption,
|
||||||
|
figure,
|
||||||
|
footer,
|
||||||
|
header,
|
||||||
|
hgroup,
|
||||||
|
main,
|
||||||
|
nav,
|
||||||
|
section,
|
||||||
|
summary {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1. Correct `inline-block` display not defined in IE 8/9.
|
||||||
|
* 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
|
||||||
|
*/
|
||||||
|
|
||||||
|
audio,
|
||||||
|
canvas,
|
||||||
|
progress,
|
||||||
|
video {
|
||||||
|
display: inline-block; /* 1 */
|
||||||
|
vertical-align: baseline; /* 2 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prevent modern browsers from displaying `audio` without controls.
|
||||||
|
* Remove excess height in iOS 5 devices.
|
||||||
|
*/
|
||||||
|
|
||||||
|
audio:not([controls]) {
|
||||||
|
display: none;
|
||||||
|
height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address `[hidden]` styling not present in IE 8/9/10.
|
||||||
|
* Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
|
||||||
|
*/
|
||||||
|
|
||||||
|
[hidden],
|
||||||
|
template {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Links
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the gray background color from active links in IE 10.
|
||||||
|
*/
|
||||||
|
|
||||||
|
a {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Improve readability when focused and also mouse hovered in all browsers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
a:active,
|
||||||
|
a:hover {
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Text-level semantics
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address styling not present in IE 8/9/10/11, Safari, and Chrome.
|
||||||
|
*/
|
||||||
|
|
||||||
|
abbr[title] {
|
||||||
|
border-bottom: 1px dotted;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
|
||||||
|
*/
|
||||||
|
|
||||||
|
b,
|
||||||
|
strong {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address styling not present in Safari and Chrome.
|
||||||
|
*/
|
||||||
|
|
||||||
|
dfn {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address variable `h1` font-size and margin within `section` and `article`
|
||||||
|
* contexts in Firefox 4+, Safari, and Chrome.
|
||||||
|
*/
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 2em;
|
||||||
|
margin: 0.67em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address styling not present in IE 8/9.
|
||||||
|
*/
|
||||||
|
|
||||||
|
mark {
|
||||||
|
background: #ff0;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address inconsistent and variable font size in all browsers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
small {
|
||||||
|
font-size: 80%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prevent `sub` and `sup` affecting `line-height` in all browsers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
sub,
|
||||||
|
sup {
|
||||||
|
font-size: 75%;
|
||||||
|
line-height: 0;
|
||||||
|
position: relative;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
sup {
|
||||||
|
top: -0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub {
|
||||||
|
bottom: -0.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Embedded content
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove border when inside `a` element in IE 8/9/10.
|
||||||
|
*/
|
||||||
|
|
||||||
|
img {
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Correct overflow not hidden in IE 9/10/11.
|
||||||
|
*/
|
||||||
|
|
||||||
|
svg:not(:root) {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Grouping content
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address margin not present in IE 8/9 and Safari.
|
||||||
|
*/
|
||||||
|
|
||||||
|
figure {
|
||||||
|
margin: 1em 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address differences between Firefox and other browsers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
hr {
|
||||||
|
-moz-box-sizing: content-box;
|
||||||
|
box-sizing: content-box;
|
||||||
|
height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Contain overflow in all browsers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
pre {
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address odd `em`-unit font size rendering in all browsers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
code,
|
||||||
|
kbd,
|
||||||
|
pre,
|
||||||
|
samp {
|
||||||
|
font-family: monospace, monospace;
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Forms
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Known limitation: by default, Chrome and Safari on OS X allow very limited
|
||||||
|
* styling of `select`, unless a `border` property is set.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1. Correct color not being inherited.
|
||||||
|
* Known issue: affects color of disabled elements.
|
||||||
|
* 2. Correct font properties not being inherited.
|
||||||
|
* 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
|
||||||
|
*/
|
||||||
|
|
||||||
|
button,
|
||||||
|
input,
|
||||||
|
optgroup,
|
||||||
|
select,
|
||||||
|
textarea {
|
||||||
|
color: inherit; /* 1 */
|
||||||
|
font: inherit; /* 2 */
|
||||||
|
margin: 0; /* 3 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address `overflow` set to `hidden` in IE 8/9/10/11.
|
||||||
|
*/
|
||||||
|
|
||||||
|
button {
|
||||||
|
overflow: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address inconsistent `text-transform` inheritance for `button` and `select`.
|
||||||
|
* All other form control elements do not inherit `text-transform` values.
|
||||||
|
* Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
|
||||||
|
* Correct `select` style inheritance in Firefox.
|
||||||
|
*/
|
||||||
|
|
||||||
|
button,
|
||||||
|
select {
|
||||||
|
text-transform: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
|
||||||
|
* and `video` controls.
|
||||||
|
* 2. Correct inability to style clickable `input` types in iOS.
|
||||||
|
* 3. Improve usability and consistency of cursor style between image-type
|
||||||
|
* `input` and others.
|
||||||
|
*/
|
||||||
|
|
||||||
|
button,
|
||||||
|
html input[type="button"], /* 1 */
|
||||||
|
input[type="reset"],
|
||||||
|
input[type="submit"] {
|
||||||
|
-webkit-appearance: button; /* 2 */
|
||||||
|
cursor: pointer; /* 3 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Re-set default cursor for disabled elements.
|
||||||
|
*/
|
||||||
|
|
||||||
|
button[disabled],
|
||||||
|
html input[disabled] {
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove inner padding and border in Firefox 4+.
|
||||||
|
*/
|
||||||
|
|
||||||
|
button::-moz-focus-inner,
|
||||||
|
input::-moz-focus-inner {
|
||||||
|
border: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address Firefox 4+ setting `line-height` on `input` using `!important` in
|
||||||
|
* the UA stylesheet.
|
||||||
|
*/
|
||||||
|
|
||||||
|
input {
|
||||||
|
line-height: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* It's recommended that you don't attempt to style these elements.
|
||||||
|
* Firefox's implementation doesn't respect box-sizing, padding, or width.
|
||||||
|
*
|
||||||
|
* 1. Address box sizing set to `content-box` in IE 8/9/10.
|
||||||
|
* 2. Remove excess padding in IE 8/9/10.
|
||||||
|
*/
|
||||||
|
|
||||||
|
input[type="checkbox"],
|
||||||
|
input[type="radio"] {
|
||||||
|
box-sizing: border-box; /* 1 */
|
||||||
|
padding: 0; /* 2 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fix the cursor style for Chrome's increment/decrement buttons. For certain
|
||||||
|
* `font-size` values of the `input`, it causes the cursor style of the
|
||||||
|
* decrement button to change from `default` to `text`.
|
||||||
|
*/
|
||||||
|
|
||||||
|
input[type="number"]::-webkit-inner-spin-button,
|
||||||
|
input[type="number"]::-webkit-outer-spin-button {
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1. Address `appearance` set to `searchfield` in Safari and Chrome.
|
||||||
|
* 2. Address `box-sizing` set to `border-box` in Safari and Chrome
|
||||||
|
* (include `-moz` to future-proof).
|
||||||
|
*/
|
||||||
|
|
||||||
|
input[type="search"] {
|
||||||
|
-webkit-appearance: textfield; /* 1 */
|
||||||
|
-moz-box-sizing: content-box;
|
||||||
|
-webkit-box-sizing: content-box; /* 2 */
|
||||||
|
box-sizing: content-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove inner padding and search cancel button in Safari and Chrome on OS X.
|
||||||
|
* Safari (but not Chrome) clips the cancel button when the search input has
|
||||||
|
* padding (and `textfield` appearance).
|
||||||
|
*/
|
||||||
|
|
||||||
|
input[type="search"]::-webkit-search-cancel-button,
|
||||||
|
input[type="search"]::-webkit-search-decoration {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Define consistent border, margin, and padding.
|
||||||
|
*/
|
||||||
|
|
||||||
|
fieldset {
|
||||||
|
border: 1px solid #c0c0c0;
|
||||||
|
margin: 0 2px;
|
||||||
|
padding: 0.35em 0.625em 0.75em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1. Correct `color` not being inherited in IE 8/9/10/11.
|
||||||
|
* 2. Remove padding so people aren't caught out if they zero out fieldsets.
|
||||||
|
*/
|
||||||
|
|
||||||
|
legend {
|
||||||
|
border: 0; /* 1 */
|
||||||
|
padding: 0; /* 2 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove default vertical scrollbar in IE 8/9/10/11.
|
||||||
|
*/
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Don't inherit the `font-weight` (applied by a rule above).
|
||||||
|
* NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
|
||||||
|
*/
|
||||||
|
|
||||||
|
optgroup {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Tables
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove most spacing between table cells.
|
||||||
|
*/
|
||||||
|
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
td,
|
||||||
|
th {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
.post {
|
||||||
|
.post-header {
|
||||||
|
margin: 0 100px;
|
||||||
|
margin-bottom: 40px;
|
||||||
|
padding: 20px;
|
||||||
|
.post-title {
|
||||||
|
font-size:40px;
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 0 -100px;
|
||||||
|
@include media-query($on-palm) {
|
||||||
|
font-size: 34px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.post-meta {
|
||||||
|
color:#999;
|
||||||
|
font-size:$small-font-size;
|
||||||
|
margin: 0 -100px;
|
||||||
|
}
|
||||||
|
@include media-query($on-palm) {
|
||||||
|
text-align:center;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.post-content {
|
||||||
|
color: #333;
|
||||||
|
|
||||||
|
h1,h2,h3,h4,h5,h6 {
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1, h2 {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
margin-top: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1, h2, h3 {
|
||||||
|
border-bottom: 1px solid #CCC;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
margin: 0 -30px;
|
||||||
|
@include media-query($on-palm) {
|
||||||
|
margin: 0 -10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.middle-image {
|
||||||
|
display: block;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.post-comments {
|
||||||
|
padding-top: 30px;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
/* Monokai Theme from https://github.com/richleland/pygments-css/blob/master/monokai.css */
|
||||||
|
.highlight {
|
||||||
|
.hll { background-color: #49483e }
|
||||||
|
.c { color: #75715e } /* Comment */
|
||||||
|
.err { color: #960050; background-color: #1e0010 } /* Error */
|
||||||
|
.k { color: #66d9ef } /* Keyword */
|
||||||
|
.l { color: #ae81ff } /* Literal */
|
||||||
|
.n { color: #f8f8f2 } /* Name */
|
||||||
|
.o { color: #f92672 } /* Operator */
|
||||||
|
.p { color: #f8f8f2 } /* Punctuation */
|
||||||
|
.cm { color: #75715e } /* Comment.Multiline */
|
||||||
|
.cp { color: #75715e } /* Comment.Preproc */
|
||||||
|
.c1 { color: #75715e } /* Comment.Single */
|
||||||
|
.cs { color: #75715e } /* Comment.Special */
|
||||||
|
.ge { font-style: italic } /* Generic.Emph */
|
||||||
|
.gs { font-weight: bold } /* Generic.Strong */
|
||||||
|
.kc { color: #66d9ef } /* Keyword.Constant */
|
||||||
|
.kd { color: #66d9ef } /* Keyword.Declaration */
|
||||||
|
.kn { color: #f92672 } /* Keyword.Namespace */
|
||||||
|
.kp { color: #66d9ef } /* Keyword.Pseudo */
|
||||||
|
.kr { color: #66d9ef } /* Keyword.Reserved */
|
||||||
|
.kt { color: #66d9ef } /* Keyword.Type */
|
||||||
|
.ld { color: #e6db74 } /* Literal.Date */
|
||||||
|
.m { color: #ae81ff } /* Literal.Number */
|
||||||
|
.s { color: #e6db74 } /* Literal.String */
|
||||||
|
.na { color: #a6e22e } /* Name.Attribute */
|
||||||
|
.nb { color: #f8f8f2 } /* Name.Builtin */
|
||||||
|
.nc { color: #a6e22e } /* Name.Class */
|
||||||
|
.no { color: #66d9ef } /* Name.Constant */
|
||||||
|
.nd { color: #a6e22e } /* Name.Decorator */
|
||||||
|
.ni { color: #f8f8f2 } /* Name.Entity */
|
||||||
|
.ne { color: #a6e22e } /* Name.Exception */
|
||||||
|
.nf { color: #a6e22e } /* Name.Function */
|
||||||
|
.nl { color: #f8f8f2 } /* Name.Label */
|
||||||
|
.nn { color: #f8f8f2 } /* Name.Namespace */
|
||||||
|
.nx { color: #a6e22e } /* Name.Other */
|
||||||
|
.py { color: #f8f8f2 } /* Name.Property */
|
||||||
|
.nt { color: #f92672 } /* Name.Tag */
|
||||||
|
.nv { color: #f8f8f2 } /* Name.Variable */
|
||||||
|
.ow { color: #f92672 } /* Operator.Word */
|
||||||
|
.w { color: #f8f8f2 } /* Text.Whitespace */
|
||||||
|
.mf { color: #ae81ff } /* Literal.Number.Float */
|
||||||
|
.mh { color: #ae81ff } /* Literal.Number.Hex */
|
||||||
|
.mi { color: #ae81ff } /* Literal.Number.Integer */
|
||||||
|
.mo { color: #ae81ff } /* Literal.Number.Oct */
|
||||||
|
.sb { color: #e6db74 } /* Literal.String.Backtick */
|
||||||
|
.sc { color: #e6db74 } /* Literal.String.Char */
|
||||||
|
.sd { color: #e6db74 } /* Literal.String.Doc */
|
||||||
|
.s2 { color: #e6db74 } /* Literal.String.Double */
|
||||||
|
.se { color: #ae81ff } /* Literal.String.Escape */
|
||||||
|
.sh { color: #e6db74 } /* Literal.String.Heredoc */
|
||||||
|
.si { color: #e6db74 } /* Literal.String.Interpol */
|
||||||
|
.sx { color: #e6db74 } /* Literal.String.Other */
|
||||||
|
.sr { color: #e6db74 } /* Literal.String.Regex */
|
||||||
|
.s1 { color: #e6db74 } /* Literal.String.Single */
|
||||||
|
.ss { color: #e6db74 } /* Literal.String.Symbol */
|
||||||
|
.bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */
|
||||||
|
.vc { color: #f8f8f2 } /* Name.Variable.Class */
|
||||||
|
.vg { color: #f8f8f2 } /* Name.Variable.Global */
|
||||||
|
.vi { color: #f8f8f2 } /* Name.Variable.Instance */
|
||||||
|
.il { color: #ae81ff } /* Literal.Number.Integer.Long */
|
||||||
|
|
||||||
|
.gh { } /* Generic Heading & Diff Header */
|
||||||
|
.gu { color: #75715e; } /* Generic.Subheading & Diff Unified/Comment? */
|
||||||
|
.gd { color: #f92672; } /* Generic.Deleted & Diff Deleted */
|
||||||
|
.gi { color: #a6e22e; } /* Generic.Inserted & Diff Inserted */
|
||||||
|
}
|
||||||
+110
@@ -0,0 +1,110 @@
|
|||||||
|
<!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>Page Not Found « 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="canonical" href="https://codersherlock.github.com//404.html">
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="Stop Talking, Start Doing - 停止空想,开始行动" href="https://codersherlock.github.com//feed.xml" />
|
||||||
|
</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">Page Not Found</h1>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<article class="post-content">
|
||||||
|
<p>Where am I and where should I go?</p>
|
||||||
|
|
||||||
|
</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/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>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
The MIT License (MIT)
|
||||||
|
Copyright (c) 2016 laobubu
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
# jekyll-theme-EasyBook
|
||||||
|
|
||||||
|
Another Jekyll Blog Theme "EasyBook"
|
||||||
|
|
||||||
|
Start blogging with a simple but powerful theme.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Everything Basic Jekyll has.
|
||||||
|
- **Pagination** is enabled.
|
||||||
|
- **Comments** using Disqus or 多说.
|
||||||
|
- **TOC** makes reading easier.
|
||||||
|
- **Profile** including your links and avatar on the sidebar.
|
||||||
|
- *And more...*
|
||||||
|
|
||||||
|
## Install
|
||||||
|
|
||||||
|
Read [Quick Guide] to learn how to install and publish.
|
||||||
|
|
||||||
|
Read [Welcome to Jekyll and EasyBook][helloPost] and [Jekyll][jekyll] for further information.
|
||||||
|
|
||||||
|
**If need help, please:**
|
||||||
|
|
||||||
|
- [**Read Wiki pages**](https://github.com/laobubu/jekyll-theme-EasyBook/wiki)
|
||||||
|
- **Google it**
|
||||||
|
- [**Submit an issue**](https://github.com/laobubu/jekyll-theme-EasyBook/issues/new)
|
||||||
|
|
||||||
|
## Donate
|
||||||
|
|
||||||
|
Buy me a coffee if you find EasyBook useful for you :smiley:
|
||||||
|
|
||||||
|
Visit <http://laobubu.net/donate.html>
|
||||||
|
|
||||||
|
## Demo
|
||||||
|
|
||||||
|
[laobubu's blog](http://blog.laobubu.net) | [empty site](http://laobubu.github.io/jekyll-theme-EasyBook)
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
```
|
||||||
|
The MIT License (MIT)
|
||||||
|
Copyright (c) 2016 laobubu
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
```
|
||||||
|
|
||||||
|
[Quick Guide]: https://github.com/laobubu/jekyll-theme-EasyBook/wiki/Quick-Guide
|
||||||
|
[helloPost]: http://laobubu.github.io/jekyll-theme-EasyBook/archivers/hello
|
||||||
|
[jekyll]: http://jekyllrb.com/
|
||||||
@@ -0,0 +1,115 @@
|
|||||||
|
<!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 « 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="canonical" href="https://codersherlock.github.com//about/">
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="Stop Talking, Start Doing - 停止空想,开始行动" href="https://codersherlock.github.com//feed.xml" />
|
||||||
|
</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</h1>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<article class="post-content">
|
||||||
|
<h1 id="pengzhan-hao">Pengzhan Hao</h1>
|
||||||
|
<p>Email:haopengzhan@gmail.com <br />
|
||||||
|
Address:Binghamton University <br />
|
||||||
|
Phone: (607)-II-III-II-83-VII-II</p>
|
||||||
|
|
||||||
|
</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/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>
|
||||||
@@ -0,0 +1,115 @@
|
|||||||
|
<!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 m « Stop Talking, Start Doing</title>
|
||||||
|
<meta name="description" content="Pengzhan Haohaopengzhan@gmail.com | Binghamton University | 607-II-III-II-83-VII-II———————————————————————–">
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/main.css">
|
||||||
|
<link rel="canonical" href="https://codersherlock.github.com//about/me/2016/10/26/welcome-to-my-blog.html">
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="Stop Talking, Start Doing" href="https://codersherlock.github.com//feed.xml" />
|
||||||
|
</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 m</h1>
|
||||||
|
<p class="post-meta">Oct 26, 2016</p>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<article class="post-content">
|
||||||
|
<h1 id="pengzhan-hao">Pengzhan Hao</h1>
|
||||||
|
<p>haopengzhan@gmail.com | Binghamton University | 607-II-III-II-83-VII-II
|
||||||
|
———————————————————————–</p>
|
||||||
|
|
||||||
|
|
||||||
|
</article>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="col-second">
|
||||||
|
<div class="col-box col-box-author">
|
||||||
|
<img class="avatar" src="" alt="">
|
||||||
|
<div class="col-box-title name"></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="/about/me/2016/10/26/welcome-to-my-blog.html">About m</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
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
<script src="/js/easybook.js"></script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,112 @@
|
|||||||
|
<!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>Stop Talking is the worst title of one blog « Stop Talking, Start Doing - 停止空想,开始行动</title>
|
||||||
|
<meta name="description" content="">
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/main.css">
|
||||||
|
<link rel="canonical" href="https://codersherlock.github.com//archivers/hello">
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="Stop Talking, Start Doing - 停止空想,开始行动" href="https://codersherlock.github.com//feed.xml" />
|
||||||
|
</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">Stop Talking is the worst title of one blog</h1>
|
||||||
|
<p class="post-meta">Oct 26, 2016</p>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<article class="post-content">
|
||||||
|
|
||||||
|
|
||||||
|
</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/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>
|
||||||
@@ -0,0 +1,115 @@
|
|||||||
|
<!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>Category « 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="canonical" href="https://codersherlock.github.com//category/">
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="Stop Talking, Start Doing - 停止空想,开始行动" href="https://codersherlock.github.com//feed.xml" />
|
||||||
|
</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="home">
|
||||||
|
<h1 class="page-heading">Category</h1>
|
||||||
|
|
||||||
|
<ul class="post-list">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h2 class="category" id="Nonsense">NONSENSE</h2>
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
<li><span>Oct 26</span> » <a href="/archivers/hello">Stop Talking is the worst title of one blog</a></li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</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/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>
|
||||||
@@ -0,0 +1,559 @@
|
|||||||
|
@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: 16px;
|
||||||
|
line-height: 1.5; }
|
||||||
|
|
||||||
|
a {
|
||||||
|
text-decoration: none;
|
||||||
|
color: #036; }
|
||||||
|
|
||||||
|
a:hover, a:focus {
|
||||||
|
text-decoration: underline;
|
||||||
|
color: #069; }
|
||||||
|
|
||||||
|
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: 15px; }
|
||||||
|
|
||||||
|
code {
|
||||||
|
color: #900;
|
||||||
|
background-color: #fff;
|
||||||
|
padding: 2px 5px;
|
||||||
|
border-radius: 5px; }
|
||||||
|
|
||||||
|
pre {
|
||||||
|
overflow-x: auto;
|
||||||
|
padding: 20px 50px; }
|
||||||
|
|
||||||
|
pre, pre code {
|
||||||
|
color: #fafafa;
|
||||||
|
background-color: #223; }
|
||||||
|
|
||||||
|
pre code {
|
||||||
|
padding: 0; }
|
||||||
|
|
||||||
|
.hide {
|
||||||
|
display: none; }
|
||||||
|
|
||||||
|
.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); }
|
||||||
|
|
||||||
|
h1, h2, h3, h4, h5, h6 {
|
||||||
|
font-weight: normal; }
|
||||||
|
|
||||||
|
.wrapper {
|
||||||
|
margin: 0 auto;
|
||||||
|
max-width: 1100px; }
|
||||||
|
|
||||||
|
@media (max-width: 1120px) {
|
||||||
|
.wrapper {
|
||||||
|
max-width: 800px; } }
|
||||||
|
.header {
|
||||||
|
line-height: 32px;
|
||||||
|
background-color: #607D8B;
|
||||||
|
padding: 10px;
|
||||||
|
margin: 0; }
|
||||||
|
.header:after {
|
||||||
|
clear: both;
|
||||||
|
content: ' ';
|
||||||
|
display: block; }
|
||||||
|
.header .site-title {
|
||||||
|
float: left;
|
||||||
|
color: #FFF;
|
||||||
|
text-decoration: none;
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 32px; }
|
||||||
|
.header .site-nav {
|
||||||
|
text-align: right; }
|
||||||
|
.header .site-nav a {
|
||||||
|
text-decoration: none;
|
||||||
|
color: #CFD8DC;
|
||||||
|
padding: 10px 20px;
|
||||||
|
white-space: nowrap; }
|
||||||
|
.header .site-nav a:hover, .header .site-nav a:focus {
|
||||||
|
background: #78909C; }
|
||||||
|
|
||||||
|
.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%; }
|
||||||
|
|
||||||
|
.col-main {
|
||||||
|
position: relative;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 30px;
|
||||||
|
width: 800px;
|
||||||
|
float: left; }
|
||||||
|
|
||||||
|
.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: 14px;
|
||||||
|
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: 15.4px; }
|
||||||
|
|
||||||
|
@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: 16px; }
|
||||||
|
.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: 14px; }
|
||||||
|
|
||||||
|
.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: 14px;
|
||||||
|
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; }
|
||||||
|
|
||||||
|
.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: 11.2px;
|
||||||
|
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: 30px;
|
||||||
|
border-bottom: 1px solid #CCC;
|
||||||
|
margin-bottom: 30px; }
|
||||||
|
.home .post-list .post-title {
|
||||||
|
font-size: 28px;
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 0; }
|
||||||
|
.home .post-list .post-meta {
|
||||||
|
font-size: 14px;
|
||||||
|
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: 14px;
|
||||||
|
line-height: 14px;
|
||||||
|
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; }
|
||||||
|
|
||||||
|
@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; } }
|
||||||
|
/* 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; }
|
||||||
|
|
||||||
|
.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; }
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||||
|
<channel>
|
||||||
|
<title>Stop Talking, Start Doing - 停止空想,开始行动</title>
|
||||||
|
<description>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.
|
||||||
|
</description>
|
||||||
|
<link>https://codersherlock.github.com//</link>
|
||||||
|
<atom:link href="https://codersherlock.github.com//feed.xml" rel="self" type="application/rss+xml"/>
|
||||||
|
<pubDate>Thu, 27 Oct 2016 01:09:32 -0400</pubDate>
|
||||||
|
<lastBuildDate>Thu, 27 Oct 2016 01:09:32 -0400</lastBuildDate>
|
||||||
|
<generator>Jekyll v3.0.1</generator>
|
||||||
|
|
||||||
|
<item>
|
||||||
|
<title>Stop Talking is the worst title of one blog</title>
|
||||||
|
<description>
|
||||||
|
</description>
|
||||||
|
<pubDate>Wed, 26 Oct 2016 22:50:33 -0400</pubDate>
|
||||||
|
<link>https://codersherlock.github.com//archivers/hello</link>
|
||||||
|
<guid isPermaLink="true">https://codersherlock.github.com//archivers/hello</guid>
|
||||||
|
|
||||||
|
|
||||||
|
<category>Nonsense</category>
|
||||||
|
|
||||||
|
</item>
|
||||||
|
|
||||||
|
</channel>
|
||||||
|
</rss>
|
||||||
@@ -0,0 +1,131 @@
|
|||||||
|
<!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>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="canonical" href="https://codersherlock.github.com//">
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="Stop Talking, Start Doing - 停止空想,开始行动" href="https://codersherlock.github.com//feed.xml" />
|
||||||
|
</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="home">
|
||||||
|
<a class="rss-link" href="/feed.xml">RSS Feed</a>
|
||||||
|
<h1 class="page-heading">Articles</h1>
|
||||||
|
|
||||||
|
<ul class="post-list">
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<h2>
|
||||||
|
<a class="post-link" href="/archivers/hello">Stop Talking is the worst title of one blog</a>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<div class="post-meta">Oct 26, 2016</div>
|
||||||
|
|
||||||
|
<div class="post-excerpt">
|
||||||
|
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<a class="post-link" href="/archivers/hello">Read More »</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!-- Pagination links -->
|
||||||
|
<div class="pagination">
|
||||||
|
|
||||||
|
<span class="previous">PREV</span>
|
||||||
|
|
||||||
|
<span class="page_number ">1 of 1</span>
|
||||||
|
|
||||||
|
<span class="next ">NEXT</span>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</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/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>
|
||||||
@@ -0,0 +1,198 @@
|
|||||||
|
/*!
|
||||||
|
* EasyBook Jekyll Theme Javascript
|
||||||
|
*
|
||||||
|
* http://laobubu.github.io/jekyll-theme-EasyBook
|
||||||
|
* https://github.com/laobubu/jekyll-theme-EasyBook
|
||||||
|
*
|
||||||
|
* This is just a extension for my theme.
|
||||||
|
*/
|
||||||
|
|
||||||
|
function TOCize(toc, content, matchHeightTo) {
|
||||||
|
if (!(toc && content && matchHeightTo)) return false
|
||||||
|
|
||||||
|
var cnt = 0;
|
||||||
|
|
||||||
|
var make = function(tag) {
|
||||||
|
return document.createElement(tag)
|
||||||
|
}
|
||||||
|
|
||||||
|
var aniscroll = {
|
||||||
|
to: function(top) {
|
||||||
|
aniscroll.target = top;
|
||||||
|
if (aniscroll.running) return;
|
||||||
|
aniscroll.running = setInterval(aniscroll.tick, 20);
|
||||||
|
},
|
||||||
|
target: 0,
|
||||||
|
running: 0,
|
||||||
|
getTop: function() {
|
||||||
|
return window.scrollY || window.pageYOffset || document.documentElement.scrollTop;
|
||||||
|
},
|
||||||
|
setTop: function(value) {
|
||||||
|
(window['scrollTo'] && window.scrollTo(window.scrollX, value))
|
||||||
|
},
|
||||||
|
tick: function() {
|
||||||
|
var oldST = aniscroll.getTop(), newST = ~~((oldST + aniscroll.target) / 2);
|
||||||
|
aniscroll.setTop(newST);
|
||||||
|
if (aniscroll.getTop() < newST || Math.abs(newST - aniscroll.target) < 10) {
|
||||||
|
aniscroll.setTop(aniscroll.target);
|
||||||
|
clearInterval(aniscroll.running)
|
||||||
|
aniscroll.running = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function scrollToHeader(header, hash, ev) {
|
||||||
|
var y = header.getBoundingClientRect().top + aniscroll.getTop();
|
||||||
|
if (window.history['pushState']) {
|
||||||
|
window.history.pushState({}, header.textContent, "#" + hash);
|
||||||
|
aniscroll.to(y);
|
||||||
|
ev.preventDefault();
|
||||||
|
} else {
|
||||||
|
var y2 = aniscroll.getTop();
|
||||||
|
setTimeout(function() {
|
||||||
|
aniscroll.setTop(y2);
|
||||||
|
aniscroll.to(y);
|
||||||
|
}, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var generateLink = function(h) {
|
||||||
|
var q = make('a');
|
||||||
|
cnt++;
|
||||||
|
var hash = h.getAttribute('id');
|
||||||
|
if (!hash) {
|
||||||
|
hash = ('generated-hash-' + cnt);
|
||||||
|
h.setAttribute('id', hash);
|
||||||
|
}
|
||||||
|
q.textContent = h.textContent;
|
||||||
|
q.setAttribute('href', '#' + hash );
|
||||||
|
q.addEventListener('click', scrollToHeader.bind(this, h, hash), false);
|
||||||
|
return q;
|
||||||
|
};
|
||||||
|
|
||||||
|
var hs = content.querySelectorAll('h1, h2, h3, h4, h5, h6');
|
||||||
|
var cul = null, plevel = 1;
|
||||||
|
var uls = [make('ul')];
|
||||||
|
for (var i=0;i<hs.length;i++) {
|
||||||
|
var level = +hs[i].tagName.substr(1);
|
||||||
|
var hi = hs[i];
|
||||||
|
var ti = make('li');
|
||||||
|
ti.appendChild(generateLink(hi));
|
||||||
|
if (plevel < level) {
|
||||||
|
do {
|
||||||
|
uls.push(make('ul'));
|
||||||
|
uls[uls.length-2].appendChild(uls[uls.length-1]);
|
||||||
|
} while (++plevel < level);
|
||||||
|
} else if (plevel > level) {
|
||||||
|
do {
|
||||||
|
cul = uls.pop();
|
||||||
|
} while (--plevel > level);
|
||||||
|
}
|
||||||
|
cul = uls[uls.length-1];
|
||||||
|
cul.appendChild(ti);
|
||||||
|
}
|
||||||
|
while(true) {
|
||||||
|
var chs = uls[0].children;
|
||||||
|
if (chs.length == 1 && chs[0].tagName == 'UL')
|
||||||
|
uls.shift();
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!cnt) return false;
|
||||||
|
|
||||||
|
var scrolldummy=make('div');
|
||||||
|
toc.appendChild(scrolldummy);
|
||||||
|
toc.appendChild(uls[0]);
|
||||||
|
toc.style.display = 'block';
|
||||||
|
|
||||||
|
var maxHeightTOC = '';
|
||||||
|
var ppc = document.querySelector('.col-main');
|
||||||
|
var s1 = function(){
|
||||||
|
var scrollTop=aniscroll.getTop(), dummyClientTop=scrolldummy.getBoundingClientRect().top,
|
||||||
|
margin = 10,c,d; // c = dummyHeight, d = TOC.maxHeight (+'px')
|
||||||
|
if ((c = -dummyClientTop + margin) < 0) c = 0;
|
||||||
|
if (c) {
|
||||||
|
var wh = window.innerHeight
|
||||||
|
|| document.documentElement.clientHeight
|
||||||
|
|| document.body.clientHeight,
|
||||||
|
cbox = matchHeightTo.getBoundingClientRect(),
|
||||||
|
vq = cbox.bottom - dummyClientTop - uls[0].offsetHeight;
|
||||||
|
if (c>vq) c=vq;
|
||||||
|
d = (wh - (margin<<1)) + 'px';
|
||||||
|
} else {
|
||||||
|
d = "";
|
||||||
|
}
|
||||||
|
if (d != maxHeightTOC) { //status lock.
|
||||||
|
maxHeightTOC = d;
|
||||||
|
if (d) {
|
||||||
|
uls[0].setAttribute('style', 'max-height:' + d + '; width:' + (toc.offsetWidth-20) + "px" );
|
||||||
|
} else {
|
||||||
|
uls[0].setAttribute("style","");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
scrolldummy.style.height = (c+'px');
|
||||||
|
};
|
||||||
|
window.addEventListener('scroll', s1, false);
|
||||||
|
window.addEventListener('resize', s1, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
function SelectAllize(selector,tips) {
|
||||||
|
if (!window.getSelection) return null;
|
||||||
|
|
||||||
|
var obj = document.querySelectorAll(selector);
|
||||||
|
var selection=window.getSelection();
|
||||||
|
var z = document.createElement("div");
|
||||||
|
z.className = "util-notify1";
|
||||||
|
z.textContent = tips;
|
||||||
|
document.body.appendChild(z)
|
||||||
|
|
||||||
|
function hide() {
|
||||||
|
z.classList.add('hidden')
|
||||||
|
z.style.top = '-200px'
|
||||||
|
}
|
||||||
|
|
||||||
|
hide();
|
||||||
|
z.addEventListener('mouseover', hide, false);
|
||||||
|
|
||||||
|
function clickHandler(e){
|
||||||
|
if (!selection.isCollapsed) return;
|
||||||
|
|
||||||
|
var tt = e.pageY-z.offsetHeight - 15;
|
||||||
|
z.setAttribute('style', 'left:' + (e.pageX-z.offsetWidth/2) + 'px;top:' + (tt+10) + 'px');
|
||||||
|
z.classList.remove('hidden');
|
||||||
|
setTimeout(hide, 1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
function dblClickHandler(e){
|
||||||
|
selection.selectAllChildren(this);
|
||||||
|
hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
for(var i = obj.length; i--;) {
|
||||||
|
var oi = obj[i];
|
||||||
|
oi.addEventListener('click', clickHandler, false);
|
||||||
|
oi.addEventListener('dblclick', dblClickHandler, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function RealLoad(){
|
||||||
|
TOCize(
|
||||||
|
document.querySelector('.post-toc'),
|
||||||
|
document.querySelector('.post-content'),
|
||||||
|
document.querySelector('.col-main')
|
||||||
|
);
|
||||||
|
|
||||||
|
SelectAllize("pre.highlight", "Dblclick to select all");
|
||||||
|
|
||||||
|
var imgs = document.querySelectorAll('.post-content > p > img');
|
||||||
|
for(var i=imgs.length; i--;){
|
||||||
|
if (imgs[i].parentElement.childNodes.length === 1) {
|
||||||
|
imgs[i].classList.add('middle-image');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
RealLoad();
|
||||||
Vendored
+322
@@ -0,0 +1,322 @@
|
|||||||
|
/**
|
||||||
|
* @preserve HTML5 Shiv 3.7.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
|
||||||
|
*/
|
||||||
|
;(function(window, document) {
|
||||||
|
/*jshint evil:true */
|
||||||
|
/** version */
|
||||||
|
var version = '3.7.2';
|
||||||
|
|
||||||
|
/** Preset options */
|
||||||
|
var options = window.html5 || {};
|
||||||
|
|
||||||
|
/** Used to skip problem elements */
|
||||||
|
var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;
|
||||||
|
|
||||||
|
/** Not all elements can be cloned in IE **/
|
||||||
|
var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;
|
||||||
|
|
||||||
|
/** Detect whether the browser supports default html5 styles */
|
||||||
|
var supportsHtml5Styles;
|
||||||
|
|
||||||
|
/** Name of the expando, to work with multiple documents or to re-shiv one document */
|
||||||
|
var expando = '_html5shiv';
|
||||||
|
|
||||||
|
/** The id for the the documents expando */
|
||||||
|
var expanID = 0;
|
||||||
|
|
||||||
|
/** Cached data for each document */
|
||||||
|
var expandoData = {};
|
||||||
|
|
||||||
|
/** Detect whether the browser supports unknown elements */
|
||||||
|
var supportsUnknownElements;
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
try {
|
||||||
|
var a = document.createElement('a');
|
||||||
|
a.innerHTML = '<xyz></xyz>';
|
||||||
|
//if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles
|
||||||
|
supportsHtml5Styles = ('hidden' in a);
|
||||||
|
|
||||||
|
supportsUnknownElements = a.childNodes.length == 1 || (function() {
|
||||||
|
// assign a false positive if unable to shiv
|
||||||
|
(document.createElement)('a');
|
||||||
|
var frag = document.createDocumentFragment();
|
||||||
|
return (
|
||||||
|
typeof frag.cloneNode == 'undefined' ||
|
||||||
|
typeof frag.createDocumentFragment == 'undefined' ||
|
||||||
|
typeof frag.createElement == 'undefined'
|
||||||
|
);
|
||||||
|
}());
|
||||||
|
} catch(e) {
|
||||||
|
// assign a false positive if detection fails => unable to shiv
|
||||||
|
supportsHtml5Styles = true;
|
||||||
|
supportsUnknownElements = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}());
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a style sheet with the given CSS text and adds it to the document.
|
||||||
|
* @private
|
||||||
|
* @param {Document} ownerDocument The document.
|
||||||
|
* @param {String} cssText The CSS text.
|
||||||
|
* @returns {StyleSheet} The style element.
|
||||||
|
*/
|
||||||
|
function addStyleSheet(ownerDocument, cssText) {
|
||||||
|
var p = ownerDocument.createElement('p'),
|
||||||
|
parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;
|
||||||
|
|
||||||
|
p.innerHTML = 'x<style>' + cssText + '</style>';
|
||||||
|
return parent.insertBefore(p.lastChild, parent.firstChild);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value of `html5.elements` as an array.
|
||||||
|
* @private
|
||||||
|
* @returns {Array} An array of shived element node names.
|
||||||
|
*/
|
||||||
|
function getElements() {
|
||||||
|
var elements = html5.elements;
|
||||||
|
return typeof elements == 'string' ? elements.split(' ') : elements;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extends the built-in list of html5 elements
|
||||||
|
* @memberOf html5
|
||||||
|
* @param {String|Array} newElements whitespace separated list or array of new element names to shiv
|
||||||
|
* @param {Document} ownerDocument The context document.
|
||||||
|
*/
|
||||||
|
function addElements(newElements, ownerDocument) {
|
||||||
|
var elements = html5.elements;
|
||||||
|
if(typeof elements != 'string'){
|
||||||
|
elements = elements.join(' ');
|
||||||
|
}
|
||||||
|
if(typeof newElements != 'string'){
|
||||||
|
newElements = newElements.join(' ');
|
||||||
|
}
|
||||||
|
html5.elements = elements +' '+ newElements;
|
||||||
|
shivDocument(ownerDocument);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the data associated to the given document
|
||||||
|
* @private
|
||||||
|
* @param {Document} ownerDocument The document.
|
||||||
|
* @returns {Object} An object of data.
|
||||||
|
*/
|
||||||
|
function getExpandoData(ownerDocument) {
|
||||||
|
var data = expandoData[ownerDocument[expando]];
|
||||||
|
if (!data) {
|
||||||
|
data = {};
|
||||||
|
expanID++;
|
||||||
|
ownerDocument[expando] = expanID;
|
||||||
|
expandoData[expanID] = data;
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* returns a shived element for the given nodeName and document
|
||||||
|
* @memberOf html5
|
||||||
|
* @param {String} nodeName name of the element
|
||||||
|
* @param {Document} ownerDocument The context document.
|
||||||
|
* @returns {Object} The shived element.
|
||||||
|
*/
|
||||||
|
function createElement(nodeName, ownerDocument, data){
|
||||||
|
if (!ownerDocument) {
|
||||||
|
ownerDocument = document;
|
||||||
|
}
|
||||||
|
if(supportsUnknownElements){
|
||||||
|
return ownerDocument.createElement(nodeName);
|
||||||
|
}
|
||||||
|
if (!data) {
|
||||||
|
data = getExpandoData(ownerDocument);
|
||||||
|
}
|
||||||
|
var node;
|
||||||
|
|
||||||
|
if (data.cache[nodeName]) {
|
||||||
|
node = data.cache[nodeName].cloneNode();
|
||||||
|
} else if (saveClones.test(nodeName)) {
|
||||||
|
node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode();
|
||||||
|
} else {
|
||||||
|
node = data.createElem(nodeName);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Avoid adding some elements to fragments in IE < 9 because
|
||||||
|
// * Attributes like `name` or `type` cannot be set/changed once an element
|
||||||
|
// is inserted into a document/fragment
|
||||||
|
// * Link elements with `src` attributes that are inaccessible, as with
|
||||||
|
// a 403 response, will cause the tab/window to crash
|
||||||
|
// * Script elements appended to fragments will execute when their `src`
|
||||||
|
// or `text` property is set
|
||||||
|
return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* returns a shived DocumentFragment for the given document
|
||||||
|
* @memberOf html5
|
||||||
|
* @param {Document} ownerDocument The context document.
|
||||||
|
* @returns {Object} The shived DocumentFragment.
|
||||||
|
*/
|
||||||
|
function createDocumentFragment(ownerDocument, data){
|
||||||
|
if (!ownerDocument) {
|
||||||
|
ownerDocument = document;
|
||||||
|
}
|
||||||
|
if(supportsUnknownElements){
|
||||||
|
return ownerDocument.createDocumentFragment();
|
||||||
|
}
|
||||||
|
data = data || getExpandoData(ownerDocument);
|
||||||
|
var clone = data.frag.cloneNode(),
|
||||||
|
i = 0,
|
||||||
|
elems = getElements(),
|
||||||
|
l = elems.length;
|
||||||
|
for(;i<l;i++){
|
||||||
|
clone.createElement(elems[i]);
|
||||||
|
}
|
||||||
|
return clone;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shivs the `createElement` and `createDocumentFragment` methods of the document.
|
||||||
|
* @private
|
||||||
|
* @param {Document|DocumentFragment} ownerDocument The document.
|
||||||
|
* @param {Object} data of the document.
|
||||||
|
*/
|
||||||
|
function shivMethods(ownerDocument, data) {
|
||||||
|
if (!data.cache) {
|
||||||
|
data.cache = {};
|
||||||
|
data.createElem = ownerDocument.createElement;
|
||||||
|
data.createFrag = ownerDocument.createDocumentFragment;
|
||||||
|
data.frag = data.createFrag();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ownerDocument.createElement = function(nodeName) {
|
||||||
|
//abort shiv
|
||||||
|
if (!html5.shivMethods) {
|
||||||
|
return data.createElem(nodeName);
|
||||||
|
}
|
||||||
|
return createElement(nodeName, ownerDocument, data);
|
||||||
|
};
|
||||||
|
|
||||||
|
ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' +
|
||||||
|
'var n=f.cloneNode(),c=n.createElement;' +
|
||||||
|
'h.shivMethods&&(' +
|
||||||
|
// unroll the `createElement` calls
|
||||||
|
getElements().join().replace(/[\w\-:]+/g, function(nodeName) {
|
||||||
|
data.createElem(nodeName);
|
||||||
|
data.frag.createElement(nodeName);
|
||||||
|
return 'c("' + nodeName + '")';
|
||||||
|
}) +
|
||||||
|
');return n}'
|
||||||
|
)(html5, data.frag);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shivs the given document.
|
||||||
|
* @memberOf html5
|
||||||
|
* @param {Document} ownerDocument The document to shiv.
|
||||||
|
* @returns {Document} The shived document.
|
||||||
|
*/
|
||||||
|
function shivDocument(ownerDocument) {
|
||||||
|
if (!ownerDocument) {
|
||||||
|
ownerDocument = document;
|
||||||
|
}
|
||||||
|
var data = getExpandoData(ownerDocument);
|
||||||
|
|
||||||
|
if (html5.shivCSS && !supportsHtml5Styles && !data.hasCSS) {
|
||||||
|
data.hasCSS = !!addStyleSheet(ownerDocument,
|
||||||
|
// corrects block display not defined in IE6/7/8/9
|
||||||
|
'article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}' +
|
||||||
|
// adds styling not present in IE6/7/8/9
|
||||||
|
'mark{background:#FF0;color:#000}' +
|
||||||
|
// hides non-rendered elements
|
||||||
|
'template{display:none}'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (!supportsUnknownElements) {
|
||||||
|
shivMethods(ownerDocument, data);
|
||||||
|
}
|
||||||
|
return ownerDocument;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The `html5` object is exposed so that more elements can be shived and
|
||||||
|
* existing shiving can be detected on iframes.
|
||||||
|
* @type Object
|
||||||
|
* @example
|
||||||
|
*
|
||||||
|
* // options can be changed before the script is included
|
||||||
|
* html5 = { 'elements': 'mark section', 'shivCSS': false, 'shivMethods': false };
|
||||||
|
*/
|
||||||
|
var html5 = {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An array or space separated string of node names of the elements to shiv.
|
||||||
|
* @memberOf html5
|
||||||
|
* @type Array|String
|
||||||
|
*/
|
||||||
|
'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video',
|
||||||
|
|
||||||
|
/**
|
||||||
|
* current version of html5shiv
|
||||||
|
*/
|
||||||
|
'version': version,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A flag to indicate that the HTML5 style sheet should be inserted.
|
||||||
|
* @memberOf html5
|
||||||
|
* @type Boolean
|
||||||
|
*/
|
||||||
|
'shivCSS': (options.shivCSS !== false),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Is equal to true if a browser supports creating unknown/HTML5 elements
|
||||||
|
* @memberOf html5
|
||||||
|
* @type boolean
|
||||||
|
*/
|
||||||
|
'supportsUnknownElements': supportsUnknownElements,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A flag to indicate that the document's `createElement` and `createDocumentFragment`
|
||||||
|
* methods should be overwritten.
|
||||||
|
* @memberOf html5
|
||||||
|
* @type Boolean
|
||||||
|
*/
|
||||||
|
'shivMethods': (options.shivMethods !== false),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A string to describe the type of `html5` object ("default" or "default print").
|
||||||
|
* @memberOf html5
|
||||||
|
* @type String
|
||||||
|
*/
|
||||||
|
'type': 'default',
|
||||||
|
|
||||||
|
// shivs the document according to the specified `html5` object options
|
||||||
|
'shivDocument': shivDocument,
|
||||||
|
|
||||||
|
//creates a shived element
|
||||||
|
createElement: createElement,
|
||||||
|
|
||||||
|
//creates a shived documentFragment
|
||||||
|
createDocumentFragment: createDocumentFragment,
|
||||||
|
|
||||||
|
//extends list of elements
|
||||||
|
addElements: addElements
|
||||||
|
};
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// expose html5
|
||||||
|
window.html5 = html5;
|
||||||
|
|
||||||
|
// shiv the document
|
||||||
|
shivDocument(document);
|
||||||
|
|
||||||
|
}(this, document));
|
||||||
@@ -0,0 +1,353 @@
|
|||||||
|
/* Respond.js: min/max-width media query polyfill. (c) Scott Jehl. MIT Lic. j.mp/respondjs */
|
||||||
|
(function( w ){
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
//exposed namespace
|
||||||
|
var respond = {};
|
||||||
|
w.respond = respond;
|
||||||
|
|
||||||
|
//define update even in native-mq-supporting browsers, to avoid errors
|
||||||
|
respond.update = function(){};
|
||||||
|
|
||||||
|
//define ajax obj
|
||||||
|
var requestQueue = [],
|
||||||
|
xmlHttp = (function() {
|
||||||
|
var xmlhttpmethod = false;
|
||||||
|
try {
|
||||||
|
xmlhttpmethod = new w.XMLHttpRequest();
|
||||||
|
}
|
||||||
|
catch( e ){
|
||||||
|
xmlhttpmethod = new w.ActiveXObject( "Microsoft.XMLHTTP" );
|
||||||
|
}
|
||||||
|
return function(){
|
||||||
|
return xmlhttpmethod;
|
||||||
|
};
|
||||||
|
})(),
|
||||||
|
|
||||||
|
//tweaked Ajax functions from Quirksmode
|
||||||
|
ajax = function( url, callback ) {
|
||||||
|
var req = xmlHttp();
|
||||||
|
if (!req){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
req.open( "GET", url, true );
|
||||||
|
req.onreadystatechange = function () {
|
||||||
|
if ( req.readyState !== 4 || req.status !== 200 && req.status !== 304 ){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
callback( req.responseText );
|
||||||
|
};
|
||||||
|
if ( req.readyState === 4 ){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
req.send( null );
|
||||||
|
},
|
||||||
|
isUnsupportedMediaQuery = function( query ) {
|
||||||
|
return query.replace( respond.regex.minmaxwh, '' ).match( respond.regex.other );
|
||||||
|
};
|
||||||
|
|
||||||
|
//expose for testing
|
||||||
|
respond.ajax = ajax;
|
||||||
|
respond.queue = requestQueue;
|
||||||
|
respond.unsupportedmq = isUnsupportedMediaQuery;
|
||||||
|
respond.regex = {
|
||||||
|
media: /@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,
|
||||||
|
keyframes: /@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,
|
||||||
|
comments: /\/\*[^*]*\*+([^/][^*]*\*+)*\//gi,
|
||||||
|
urls: /(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,
|
||||||
|
findStyles: /@media *([^\{]+)\{([\S\s]+?)$/,
|
||||||
|
only: /(only\s+)?([a-zA-Z]+)\s?/,
|
||||||
|
minw: /\(\s*min\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,
|
||||||
|
maxw: /\(\s*max\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,
|
||||||
|
minmaxwh: /\(\s*m(in|ax)\-(height|width)\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/gi,
|
||||||
|
other: /\([^\)]*\)/g
|
||||||
|
};
|
||||||
|
|
||||||
|
//expose media query support flag for external use
|
||||||
|
respond.mediaQueriesSupported = w.matchMedia && w.matchMedia( "only all" ) !== null && w.matchMedia( "only all" ).matches;
|
||||||
|
|
||||||
|
//if media queries are supported, exit here
|
||||||
|
if( respond.mediaQueriesSupported ){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//define vars
|
||||||
|
var doc = w.document,
|
||||||
|
docElem = doc.documentElement,
|
||||||
|
mediastyles = [],
|
||||||
|
rules = [],
|
||||||
|
appendedEls = [],
|
||||||
|
parsedSheets = {},
|
||||||
|
resizeThrottle = 30,
|
||||||
|
head = doc.getElementsByTagName( "head" )[0] || docElem,
|
||||||
|
base = doc.getElementsByTagName( "base" )[0],
|
||||||
|
links = head.getElementsByTagName( "link" ),
|
||||||
|
|
||||||
|
lastCall,
|
||||||
|
resizeDefer,
|
||||||
|
|
||||||
|
//cached container for 1em value, populated the first time it's needed
|
||||||
|
eminpx,
|
||||||
|
|
||||||
|
// returns the value of 1em in pixels
|
||||||
|
getEmValue = function() {
|
||||||
|
var ret,
|
||||||
|
div = doc.createElement('div'),
|
||||||
|
body = doc.body,
|
||||||
|
originalHTMLFontSize = docElem.style.fontSize,
|
||||||
|
originalBodyFontSize = body && body.style.fontSize,
|
||||||
|
fakeUsed = false;
|
||||||
|
|
||||||
|
div.style.cssText = "position:absolute;font-size:1em;width:1em";
|
||||||
|
|
||||||
|
if( !body ){
|
||||||
|
body = fakeUsed = doc.createElement( "body" );
|
||||||
|
body.style.background = "none";
|
||||||
|
}
|
||||||
|
|
||||||
|
// 1em in a media query is the value of the default font size of the browser
|
||||||
|
// reset docElem and body to ensure the correct value is returned
|
||||||
|
docElem.style.fontSize = "100%";
|
||||||
|
body.style.fontSize = "100%";
|
||||||
|
|
||||||
|
body.appendChild( div );
|
||||||
|
|
||||||
|
if( fakeUsed ){
|
||||||
|
docElem.insertBefore( body, docElem.firstChild );
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = div.offsetWidth;
|
||||||
|
|
||||||
|
if( fakeUsed ){
|
||||||
|
docElem.removeChild( body );
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
body.removeChild( div );
|
||||||
|
}
|
||||||
|
|
||||||
|
// restore the original values
|
||||||
|
docElem.style.fontSize = originalHTMLFontSize;
|
||||||
|
if( originalBodyFontSize ) {
|
||||||
|
body.style.fontSize = originalBodyFontSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//also update eminpx before returning
|
||||||
|
ret = eminpx = parseFloat(ret);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
},
|
||||||
|
|
||||||
|
//enable/disable styles
|
||||||
|
applyMedia = function( fromResize ){
|
||||||
|
var name = "clientWidth",
|
||||||
|
docElemProp = docElem[ name ],
|
||||||
|
currWidth = doc.compatMode === "CSS1Compat" && docElemProp || doc.body[ name ] || docElemProp,
|
||||||
|
styleBlocks = {},
|
||||||
|
lastLink = links[ links.length-1 ],
|
||||||
|
now = (new Date()).getTime();
|
||||||
|
|
||||||
|
//throttle resize calls
|
||||||
|
if( fromResize && lastCall && now - lastCall < resizeThrottle ){
|
||||||
|
w.clearTimeout( resizeDefer );
|
||||||
|
resizeDefer = w.setTimeout( applyMedia, resizeThrottle );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
lastCall = now;
|
||||||
|
}
|
||||||
|
|
||||||
|
for( var i in mediastyles ){
|
||||||
|
if( mediastyles.hasOwnProperty( i ) ){
|
||||||
|
var thisstyle = mediastyles[ i ],
|
||||||
|
min = thisstyle.minw,
|
||||||
|
max = thisstyle.maxw,
|
||||||
|
minnull = min === null,
|
||||||
|
maxnull = max === null,
|
||||||
|
em = "em";
|
||||||
|
|
||||||
|
if( !!min ){
|
||||||
|
min = parseFloat( min ) * ( min.indexOf( em ) > -1 ? ( eminpx || getEmValue() ) : 1 );
|
||||||
|
}
|
||||||
|
if( !!max ){
|
||||||
|
max = parseFloat( max ) * ( max.indexOf( em ) > -1 ? ( eminpx || getEmValue() ) : 1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
// if there's no media query at all (the () part), or min or max is not null, and if either is present, they're true
|
||||||
|
if( !thisstyle.hasquery || ( !minnull || !maxnull ) && ( minnull || currWidth >= min ) && ( maxnull || currWidth <= max ) ){
|
||||||
|
if( !styleBlocks[ thisstyle.media ] ){
|
||||||
|
styleBlocks[ thisstyle.media ] = [];
|
||||||
|
}
|
||||||
|
styleBlocks[ thisstyle.media ].push( rules[ thisstyle.rules ] );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//remove any existing respond style element(s)
|
||||||
|
for( var j in appendedEls ){
|
||||||
|
if( appendedEls.hasOwnProperty( j ) ){
|
||||||
|
if( appendedEls[ j ] && appendedEls[ j ].parentNode === head ){
|
||||||
|
head.removeChild( appendedEls[ j ] );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
appendedEls.length = 0;
|
||||||
|
|
||||||
|
//inject active styles, grouped by media type
|
||||||
|
for( var k in styleBlocks ){
|
||||||
|
if( styleBlocks.hasOwnProperty( k ) ){
|
||||||
|
var ss = doc.createElement( "style" ),
|
||||||
|
css = styleBlocks[ k ].join( "\n" );
|
||||||
|
|
||||||
|
ss.type = "text/css";
|
||||||
|
ss.media = k;
|
||||||
|
|
||||||
|
//originally, ss was appended to a documentFragment and sheets were appended in bulk.
|
||||||
|
//this caused crashes in IE in a number of circumstances, such as when the HTML element had a bg image set, so appending beforehand seems best. Thanks to @dvelyk for the initial research on this one!
|
||||||
|
head.insertBefore( ss, lastLink.nextSibling );
|
||||||
|
|
||||||
|
if ( ss.styleSheet ){
|
||||||
|
ss.styleSheet.cssText = css;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ss.appendChild( doc.createTextNode( css ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
//push to appendedEls to track for later removal
|
||||||
|
appendedEls.push( ss );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//find media blocks in css text, convert to style blocks
|
||||||
|
translate = function( styles, href, media ){
|
||||||
|
var qs = styles.replace( respond.regex.comments, '' )
|
||||||
|
.replace( respond.regex.keyframes, '' )
|
||||||
|
.match( respond.regex.media ),
|
||||||
|
ql = qs && qs.length || 0;
|
||||||
|
|
||||||
|
//try to get CSS path
|
||||||
|
href = href.substring( 0, href.lastIndexOf( "/" ) );
|
||||||
|
|
||||||
|
var repUrls = function( css ){
|
||||||
|
return css.replace( respond.regex.urls, "$1" + href + "$2$3" );
|
||||||
|
},
|
||||||
|
useMedia = !ql && media;
|
||||||
|
|
||||||
|
//if path exists, tack on trailing slash
|
||||||
|
if( href.length ){ href += "/"; }
|
||||||
|
|
||||||
|
//if no internal queries exist, but media attr does, use that
|
||||||
|
//note: this currently lacks support for situations where a media attr is specified on a link AND
|
||||||
|
//its associated stylesheet has internal CSS media queries.
|
||||||
|
//In those cases, the media attribute will currently be ignored.
|
||||||
|
if( useMedia ){
|
||||||
|
ql = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
for( var i = 0; i < ql; i++ ){
|
||||||
|
var fullq, thisq, eachq, eql;
|
||||||
|
|
||||||
|
//media attr
|
||||||
|
if( useMedia ){
|
||||||
|
fullq = media;
|
||||||
|
rules.push( repUrls( styles ) );
|
||||||
|
}
|
||||||
|
//parse for styles
|
||||||
|
else{
|
||||||
|
fullq = qs[ i ].match( respond.regex.findStyles ) && RegExp.$1;
|
||||||
|
rules.push( RegExp.$2 && repUrls( RegExp.$2 ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
eachq = fullq.split( "," );
|
||||||
|
eql = eachq.length;
|
||||||
|
|
||||||
|
for( var j = 0; j < eql; j++ ){
|
||||||
|
thisq = eachq[ j ];
|
||||||
|
|
||||||
|
if( isUnsupportedMediaQuery( thisq ) ) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
mediastyles.push( {
|
||||||
|
media : thisq.split( "(" )[ 0 ].match( respond.regex.only ) && RegExp.$2 || "all",
|
||||||
|
rules : rules.length - 1,
|
||||||
|
hasquery : thisq.indexOf("(") > -1,
|
||||||
|
minw : thisq.match( respond.regex.minw ) && parseFloat( RegExp.$1 ) + ( RegExp.$2 || "" ),
|
||||||
|
maxw : thisq.match( respond.regex.maxw ) && parseFloat( RegExp.$1 ) + ( RegExp.$2 || "" )
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
applyMedia();
|
||||||
|
},
|
||||||
|
|
||||||
|
//recurse through request queue, get css text
|
||||||
|
makeRequests = function(){
|
||||||
|
if( requestQueue.length ){
|
||||||
|
var thisRequest = requestQueue.shift();
|
||||||
|
|
||||||
|
ajax( thisRequest.href, function( styles ){
|
||||||
|
translate( styles, thisRequest.href, thisRequest.media );
|
||||||
|
parsedSheets[ thisRequest.href ] = true;
|
||||||
|
|
||||||
|
// by wrapping recursive function call in setTimeout
|
||||||
|
// we prevent "Stack overflow" error in IE7
|
||||||
|
w.setTimeout(function(){ makeRequests(); },0);
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
//loop stylesheets, send text content to translate
|
||||||
|
ripCSS = function(){
|
||||||
|
|
||||||
|
for( var i = 0; i < links.length; i++ ){
|
||||||
|
var sheet = links[ i ],
|
||||||
|
href = sheet.href,
|
||||||
|
media = sheet.media,
|
||||||
|
isCSS = sheet.rel && sheet.rel.toLowerCase() === "stylesheet";
|
||||||
|
|
||||||
|
//only links plz and prevent re-parsing
|
||||||
|
if( !!href && isCSS && !parsedSheets[ href ] ){
|
||||||
|
// selectivizr exposes css through the rawCssText expando
|
||||||
|
if (sheet.styleSheet && sheet.styleSheet.rawCssText) {
|
||||||
|
translate( sheet.styleSheet.rawCssText, href, media );
|
||||||
|
parsedSheets[ href ] = true;
|
||||||
|
} else {
|
||||||
|
if( (!/^([a-zA-Z:]*\/\/)/.test( href ) && !base) ||
|
||||||
|
href.replace( RegExp.$1, "" ).split( "/" )[0] === w.location.host ){
|
||||||
|
// IE7 doesn't handle urls that start with '//' for ajax request
|
||||||
|
// manually add in the protocol
|
||||||
|
if ( href.substring(0,2) === "//" ) { href = w.location.protocol + href; }
|
||||||
|
requestQueue.push( {
|
||||||
|
href: href,
|
||||||
|
media: media
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
makeRequests();
|
||||||
|
};
|
||||||
|
|
||||||
|
//translate CSS
|
||||||
|
ripCSS();
|
||||||
|
|
||||||
|
//expose update for re-running respond later on
|
||||||
|
respond.update = ripCSS;
|
||||||
|
|
||||||
|
//expose getEmValue
|
||||||
|
respond.getEmValue = getEmValue;
|
||||||
|
|
||||||
|
//adjust on resize
|
||||||
|
function callMedia(){
|
||||||
|
applyMedia( true );
|
||||||
|
}
|
||||||
|
|
||||||
|
if( w.addEventListener ){
|
||||||
|
w.addEventListener( "resize", callMedia, false );
|
||||||
|
}
|
||||||
|
else if( w.attachEvent ){
|
||||||
|
w.attachEvent( "onresize", callMedia );
|
||||||
|
}
|
||||||
|
})(this);
|
||||||
@@ -0,0 +1,112 @@
|
|||||||
|
<!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>Stop Talking is the worst title of one blog « Stop Talking, Start Doing</title>
|
||||||
|
<meta name="description" content="">
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/main.css">
|
||||||
|
<link rel="canonical" href="https://codersherlock.github.com//nonsense/2016/10/26/welcome-to-my-blog.html">
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="Stop Talking, Start Doing" href="https://codersherlock.github.com//feed.xml" />
|
||||||
|
</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">Stop Talking is the worst title of one blog</h1>
|
||||||
|
<p class="post-meta">Oct 26, 2016</p>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<article class="post-content">
|
||||||
|
|
||||||
|
|
||||||
|
</article>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="col-second">
|
||||||
|
<div class="col-box col-box-author">
|
||||||
|
<img class="avatar" src="" alt="">
|
||||||
|
<div class="col-box-title name"></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="/nonsense/2016/10/26/welcome-to-my-blog.html">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
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
<script src="/js/easybook.js"></script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 8.9 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 8.9 KiB |
@@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: About
|
||||||
|
permalink: /about/
|
||||||
|
public: true
|
||||||
|
---
|
||||||
|
|
||||||
|
Pengzhan Hao
|
||||||
|
============
|
||||||
|
Email:haopengzhan@gmail.com
|
||||||
|
Address:Binghamton University
|
||||||
|
Phone: (607)-II-III-II-83-VII-II
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
---
|
||||||
|
layout: default
|
||||||
|
title: Category
|
||||||
|
permalink: /category/
|
||||||
|
public: true
|
||||||
|
---
|
||||||
|
|
||||||
|
<div class="home">
|
||||||
|
<h1 class="page-heading">Category</h1>
|
||||||
|
|
||||||
|
<ul class="post-list">
|
||||||
|
|
||||||
|
{% capture categories %}{% for category in site.categories %}{{ category | first }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endcapture %}
|
||||||
|
{% assign category = categories | split:',' | sort %}
|
||||||
|
{% for item in (0..site.categories.size) %}{% unless forloop.last %}
|
||||||
|
{% capture word %}{{ category[item] | strip_newlines }}{% endcapture %}
|
||||||
|
<h2 class="category" id="{{ word }}">{{ word | upcase }}</h2>
|
||||||
|
<ul>
|
||||||
|
{% for post in site.categories[word] %}{% if post.title != null %}
|
||||||
|
<li><span>{{ post.date | date: "%b %d" }}</span> » <a href="{{ site.baseurl}}{{ post.url }}">{{ post.title }}</a></li>
|
||||||
|
{% endif %}{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% endunless %}{% endfor %}
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</div>
|
||||||
Executable
+42
@@ -0,0 +1,42 @@
|
|||||||
|
---
|
||||||
|
# Only the main Sass file needs front matter (the dashes are enough)
|
||||||
|
---
|
||||||
|
@charset "utf-8";
|
||||||
|
|
||||||
|
$base-font-family: "Open Sans", "Helvetica Neue", "DejaVu Sans", Arial, "PingFang SC", "Noto Sans CJK SC", "Hiragino Sans GB", "微软雅黑", Helvetica, sans-serif;
|
||||||
|
$base-font-size: 16px;
|
||||||
|
$small-font-size: $base-font-size * 0.875;
|
||||||
|
$base-line-height: 1.5;
|
||||||
|
|
||||||
|
$code-font-family: Menlo, Monaco, Consolas, "DejaVu Sans Mono", "Liberation Mono", "文泉驿等宽微米黑", "Courier New", Courier, SimSun, monospace;
|
||||||
|
$code-font-size: 15px;
|
||||||
|
|
||||||
|
// Width of the content area
|
||||||
|
$content-width: 800px;
|
||||||
|
|
||||||
|
$on-palm: 600px;
|
||||||
|
$on-laptop: 800px;
|
||||||
|
|
||||||
|
$color-link: #036;
|
||||||
|
$color-link-hover: #069;
|
||||||
|
|
||||||
|
$header-bg: #607D8B;
|
||||||
|
$header-bg-hover: #78909C;
|
||||||
|
$header-link: #CFD8DC;
|
||||||
|
$header-fg: #FFF;
|
||||||
|
|
||||||
|
@mixin media-query($device) {
|
||||||
|
@media screen and (max-width: $device) {
|
||||||
|
@content;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Import partials from `sass_dir` (defaults to `_sass`)
|
||||||
|
@import
|
||||||
|
"base",
|
||||||
|
"layout",
|
||||||
|
"syntax-highlighting",
|
||||||
|
"easybook"
|
||||||
|
;
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
->Mil años de solitario<-
|
|
||||||
->INDEX<-
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
# Coder Sherlock's Website
|
|
||||||
|
|
||||||
* My blog [Mil años de solitario](./blog.html)
|
|
||||||
* My code repo [Don't try to be smart](./code.html)
|
|
||||||
* About me [Curriculum Vitae](./mycv.html)
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
#### Pengzhan Hao
|
|
||||||
Master Student of Binghamton University, SUNY
|
|
||||||
Working on OS/Cloud
|
|
||||||
Interested in ML/Geo Computing
|
|
||||||
|
|
||||||
#### Experience
|
|
||||||
2013~2014
|
|
||||||
2013~2014
|
|
||||||
2016~
|
|
||||||
|
|
||||||
#### Blog
|
|
||||||
[Mil años de solitario](./blog.html)
|
|
||||||
|
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
---
|
||||||
|
layout: null
|
||||||
|
---
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||||
|
<channel>
|
||||||
|
<title>{{ site.title | xml_escape }}</title>
|
||||||
|
<description>{{ site.description | xml_escape }}</description>
|
||||||
|
<link>{{ site.url }}{{ site.baseurl }}/</link>
|
||||||
|
<atom:link href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}" rel="self" type="application/rss+xml"/>
|
||||||
|
<pubDate>{{ site.time | date_to_rfc822 }}</pubDate>
|
||||||
|
<lastBuildDate>{{ site.time | date_to_rfc822 }}</lastBuildDate>
|
||||||
|
<generator>Jekyll v{{ jekyll.version }}</generator>
|
||||||
|
{% for post in site.posts limit:10 %}
|
||||||
|
<item>
|
||||||
|
<title>{{ post.title | xml_escape }}</title>
|
||||||
|
<description>{{ post.content | xml_escape }}</description>
|
||||||
|
<pubDate>{{ post.date | date_to_rfc822 }}</pubDate>
|
||||||
|
<link>{{ post.url | prepend: site.baseurl | prepend: site.url }}</link>
|
||||||
|
<guid isPermaLink="true">{{ post.url | prepend: site.baseurl | prepend: site.url }}</guid>
|
||||||
|
{% for tag in post.tags %}
|
||||||
|
<category>{{ tag | xml_escape }}</category>
|
||||||
|
{% endfor %}
|
||||||
|
{% for cat in post.categories %}
|
||||||
|
<category>{{ cat | xml_escape }}</category>
|
||||||
|
{% endfor %}
|
||||||
|
</item>
|
||||||
|
{% endfor %}
|
||||||
|
</channel>
|
||||||
|
</rss>
|
||||||
+42
-5
@@ -1,6 +1,43 @@
|
|||||||
<h1 id="coder-sherlocks-website">Coder Sherlock's Website</h1>
|
---
|
||||||
<ul>
|
layout: default
|
||||||
<li>My blog <a href="./blog.html">Mil años de solitario</a></li>
|
---
|
||||||
<li>My code repo <a href="./code.html">Don't try to be smart</a></li>
|
|
||||||
<li>About me <a href="./mycv.html">Curriculum Vitae</a></li>
|
<div class="home">
|
||||||
|
<a class="rss-link" href="{{ "/feed.xml" | prepend: site.baseurl }}">RSS Feed</a>
|
||||||
|
<h1 class="page-heading">Articles</h1>
|
||||||
|
|
||||||
|
<ul class="post-list">
|
||||||
|
{% for post in paginator.posts %}
|
||||||
|
<li>
|
||||||
|
<h2>
|
||||||
|
<a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<div class="post-meta">{{ post.date | date: "%b %-d, %Y" }}</div>
|
||||||
|
|
||||||
|
<div class="post-excerpt">
|
||||||
|
{{ post.excerpt }}
|
||||||
|
<p>
|
||||||
|
<a class="post-link" href="{{ post.url | prepend: site.baseurl }}">Read More »</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
<!-- Pagination links -->
|
||||||
|
<div class="pagination">
|
||||||
|
{% if paginator.previous_page %}
|
||||||
|
<a href="{{ paginator.previous_page_path | prepend: site.baseurl }}" class="previous">PREV</a>
|
||||||
|
{% else %}
|
||||||
|
<span class="previous">PREV</span>
|
||||||
|
{% endif %}
|
||||||
|
<span class="page_number ">{{ paginator.page }} of {{ paginator.total_pages }}</span>
|
||||||
|
{% if paginator.next_page %}
|
||||||
|
<a href="{{ paginator.next_page_path | prepend: site.baseurl }}" class="next">NEXT</a>
|
||||||
|
{% else %}
|
||||||
|
<span class="next ">NEXT</span>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|||||||
+198
@@ -0,0 +1,198 @@
|
|||||||
|
/*!
|
||||||
|
* EasyBook Jekyll Theme Javascript
|
||||||
|
*
|
||||||
|
* http://laobubu.github.io/jekyll-theme-EasyBook
|
||||||
|
* https://github.com/laobubu/jekyll-theme-EasyBook
|
||||||
|
*
|
||||||
|
* This is just a extension for my theme.
|
||||||
|
*/
|
||||||
|
|
||||||
|
function TOCize(toc, content, matchHeightTo) {
|
||||||
|
if (!(toc && content && matchHeightTo)) return false
|
||||||
|
|
||||||
|
var cnt = 0;
|
||||||
|
|
||||||
|
var make = function(tag) {
|
||||||
|
return document.createElement(tag)
|
||||||
|
}
|
||||||
|
|
||||||
|
var aniscroll = {
|
||||||
|
to: function(top) {
|
||||||
|
aniscroll.target = top;
|
||||||
|
if (aniscroll.running) return;
|
||||||
|
aniscroll.running = setInterval(aniscroll.tick, 20);
|
||||||
|
},
|
||||||
|
target: 0,
|
||||||
|
running: 0,
|
||||||
|
getTop: function() {
|
||||||
|
return window.scrollY || window.pageYOffset || document.documentElement.scrollTop;
|
||||||
|
},
|
||||||
|
setTop: function(value) {
|
||||||
|
(window['scrollTo'] && window.scrollTo(window.scrollX, value))
|
||||||
|
},
|
||||||
|
tick: function() {
|
||||||
|
var oldST = aniscroll.getTop(), newST = ~~((oldST + aniscroll.target) / 2);
|
||||||
|
aniscroll.setTop(newST);
|
||||||
|
if (aniscroll.getTop() < newST || Math.abs(newST - aniscroll.target) < 10) {
|
||||||
|
aniscroll.setTop(aniscroll.target);
|
||||||
|
clearInterval(aniscroll.running)
|
||||||
|
aniscroll.running = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function scrollToHeader(header, hash, ev) {
|
||||||
|
var y = header.getBoundingClientRect().top + aniscroll.getTop();
|
||||||
|
if (window.history['pushState']) {
|
||||||
|
window.history.pushState({}, header.textContent, "#" + hash);
|
||||||
|
aniscroll.to(y);
|
||||||
|
ev.preventDefault();
|
||||||
|
} else {
|
||||||
|
var y2 = aniscroll.getTop();
|
||||||
|
setTimeout(function() {
|
||||||
|
aniscroll.setTop(y2);
|
||||||
|
aniscroll.to(y);
|
||||||
|
}, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var generateLink = function(h) {
|
||||||
|
var q = make('a');
|
||||||
|
cnt++;
|
||||||
|
var hash = h.getAttribute('id');
|
||||||
|
if (!hash) {
|
||||||
|
hash = ('generated-hash-' + cnt);
|
||||||
|
h.setAttribute('id', hash);
|
||||||
|
}
|
||||||
|
q.textContent = h.textContent;
|
||||||
|
q.setAttribute('href', '#' + hash );
|
||||||
|
q.addEventListener('click', scrollToHeader.bind(this, h, hash), false);
|
||||||
|
return q;
|
||||||
|
};
|
||||||
|
|
||||||
|
var hs = content.querySelectorAll('h1, h2, h3, h4, h5, h6');
|
||||||
|
var cul = null, plevel = 1;
|
||||||
|
var uls = [make('ul')];
|
||||||
|
for (var i=0;i<hs.length;i++) {
|
||||||
|
var level = +hs[i].tagName.substr(1);
|
||||||
|
var hi = hs[i];
|
||||||
|
var ti = make('li');
|
||||||
|
ti.appendChild(generateLink(hi));
|
||||||
|
if (plevel < level) {
|
||||||
|
do {
|
||||||
|
uls.push(make('ul'));
|
||||||
|
uls[uls.length-2].appendChild(uls[uls.length-1]);
|
||||||
|
} while (++plevel < level);
|
||||||
|
} else if (plevel > level) {
|
||||||
|
do {
|
||||||
|
cul = uls.pop();
|
||||||
|
} while (--plevel > level);
|
||||||
|
}
|
||||||
|
cul = uls[uls.length-1];
|
||||||
|
cul.appendChild(ti);
|
||||||
|
}
|
||||||
|
while(true) {
|
||||||
|
var chs = uls[0].children;
|
||||||
|
if (chs.length == 1 && chs[0].tagName == 'UL')
|
||||||
|
uls.shift();
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!cnt) return false;
|
||||||
|
|
||||||
|
var scrolldummy=make('div');
|
||||||
|
toc.appendChild(scrolldummy);
|
||||||
|
toc.appendChild(uls[0]);
|
||||||
|
toc.style.display = 'block';
|
||||||
|
|
||||||
|
var maxHeightTOC = '';
|
||||||
|
var ppc = document.querySelector('.col-main');
|
||||||
|
var s1 = function(){
|
||||||
|
var scrollTop=aniscroll.getTop(), dummyClientTop=scrolldummy.getBoundingClientRect().top,
|
||||||
|
margin = 10,c,d; // c = dummyHeight, d = TOC.maxHeight (+'px')
|
||||||
|
if ((c = -dummyClientTop + margin) < 0) c = 0;
|
||||||
|
if (c) {
|
||||||
|
var wh = window.innerHeight
|
||||||
|
|| document.documentElement.clientHeight
|
||||||
|
|| document.body.clientHeight,
|
||||||
|
cbox = matchHeightTo.getBoundingClientRect(),
|
||||||
|
vq = cbox.bottom - dummyClientTop - uls[0].offsetHeight;
|
||||||
|
if (c>vq) c=vq;
|
||||||
|
d = (wh - (margin<<1)) + 'px';
|
||||||
|
} else {
|
||||||
|
d = "";
|
||||||
|
}
|
||||||
|
if (d != maxHeightTOC) { //status lock.
|
||||||
|
maxHeightTOC = d;
|
||||||
|
if (d) {
|
||||||
|
uls[0].setAttribute('style', 'max-height:' + d + '; width:' + (toc.offsetWidth-20) + "px" );
|
||||||
|
} else {
|
||||||
|
uls[0].setAttribute("style","");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
scrolldummy.style.height = (c+'px');
|
||||||
|
};
|
||||||
|
window.addEventListener('scroll', s1, false);
|
||||||
|
window.addEventListener('resize', s1, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
function SelectAllize(selector,tips) {
|
||||||
|
if (!window.getSelection) return null;
|
||||||
|
|
||||||
|
var obj = document.querySelectorAll(selector);
|
||||||
|
var selection=window.getSelection();
|
||||||
|
var z = document.createElement("div");
|
||||||
|
z.className = "util-notify1";
|
||||||
|
z.textContent = tips;
|
||||||
|
document.body.appendChild(z)
|
||||||
|
|
||||||
|
function hide() {
|
||||||
|
z.classList.add('hidden')
|
||||||
|
z.style.top = '-200px'
|
||||||
|
}
|
||||||
|
|
||||||
|
hide();
|
||||||
|
z.addEventListener('mouseover', hide, false);
|
||||||
|
|
||||||
|
function clickHandler(e){
|
||||||
|
if (!selection.isCollapsed) return;
|
||||||
|
|
||||||
|
var tt = e.pageY-z.offsetHeight - 15;
|
||||||
|
z.setAttribute('style', 'left:' + (e.pageX-z.offsetWidth/2) + 'px;top:' + (tt+10) + 'px');
|
||||||
|
z.classList.remove('hidden');
|
||||||
|
setTimeout(hide, 1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
function dblClickHandler(e){
|
||||||
|
selection.selectAllChildren(this);
|
||||||
|
hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
for(var i = obj.length; i--;) {
|
||||||
|
var oi = obj[i];
|
||||||
|
oi.addEventListener('click', clickHandler, false);
|
||||||
|
oi.addEventListener('dblclick', dblClickHandler, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function RealLoad(){
|
||||||
|
TOCize(
|
||||||
|
document.querySelector('.post-toc'),
|
||||||
|
document.querySelector('.post-content'),
|
||||||
|
document.querySelector('.col-main')
|
||||||
|
);
|
||||||
|
|
||||||
|
SelectAllize("pre.highlight", "Dblclick to select all");
|
||||||
|
|
||||||
|
var imgs = document.querySelectorAll('.post-content > p > img');
|
||||||
|
for(var i=imgs.length; i--;){
|
||||||
|
if (imgs[i].parentElement.childNodes.length === 1) {
|
||||||
|
imgs[i].classList.add('middle-image');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
RealLoad();
|
||||||
Vendored
+322
@@ -0,0 +1,322 @@
|
|||||||
|
/**
|
||||||
|
* @preserve HTML5 Shiv 3.7.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
|
||||||
|
*/
|
||||||
|
;(function(window, document) {
|
||||||
|
/*jshint evil:true */
|
||||||
|
/** version */
|
||||||
|
var version = '3.7.2';
|
||||||
|
|
||||||
|
/** Preset options */
|
||||||
|
var options = window.html5 || {};
|
||||||
|
|
||||||
|
/** Used to skip problem elements */
|
||||||
|
var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;
|
||||||
|
|
||||||
|
/** Not all elements can be cloned in IE **/
|
||||||
|
var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;
|
||||||
|
|
||||||
|
/** Detect whether the browser supports default html5 styles */
|
||||||
|
var supportsHtml5Styles;
|
||||||
|
|
||||||
|
/** Name of the expando, to work with multiple documents or to re-shiv one document */
|
||||||
|
var expando = '_html5shiv';
|
||||||
|
|
||||||
|
/** The id for the the documents expando */
|
||||||
|
var expanID = 0;
|
||||||
|
|
||||||
|
/** Cached data for each document */
|
||||||
|
var expandoData = {};
|
||||||
|
|
||||||
|
/** Detect whether the browser supports unknown elements */
|
||||||
|
var supportsUnknownElements;
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
try {
|
||||||
|
var a = document.createElement('a');
|
||||||
|
a.innerHTML = '<xyz></xyz>';
|
||||||
|
//if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles
|
||||||
|
supportsHtml5Styles = ('hidden' in a);
|
||||||
|
|
||||||
|
supportsUnknownElements = a.childNodes.length == 1 || (function() {
|
||||||
|
// assign a false positive if unable to shiv
|
||||||
|
(document.createElement)('a');
|
||||||
|
var frag = document.createDocumentFragment();
|
||||||
|
return (
|
||||||
|
typeof frag.cloneNode == 'undefined' ||
|
||||||
|
typeof frag.createDocumentFragment == 'undefined' ||
|
||||||
|
typeof frag.createElement == 'undefined'
|
||||||
|
);
|
||||||
|
}());
|
||||||
|
} catch(e) {
|
||||||
|
// assign a false positive if detection fails => unable to shiv
|
||||||
|
supportsHtml5Styles = true;
|
||||||
|
supportsUnknownElements = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}());
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a style sheet with the given CSS text and adds it to the document.
|
||||||
|
* @private
|
||||||
|
* @param {Document} ownerDocument The document.
|
||||||
|
* @param {String} cssText The CSS text.
|
||||||
|
* @returns {StyleSheet} The style element.
|
||||||
|
*/
|
||||||
|
function addStyleSheet(ownerDocument, cssText) {
|
||||||
|
var p = ownerDocument.createElement('p'),
|
||||||
|
parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;
|
||||||
|
|
||||||
|
p.innerHTML = 'x<style>' + cssText + '</style>';
|
||||||
|
return parent.insertBefore(p.lastChild, parent.firstChild);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value of `html5.elements` as an array.
|
||||||
|
* @private
|
||||||
|
* @returns {Array} An array of shived element node names.
|
||||||
|
*/
|
||||||
|
function getElements() {
|
||||||
|
var elements = html5.elements;
|
||||||
|
return typeof elements == 'string' ? elements.split(' ') : elements;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extends the built-in list of html5 elements
|
||||||
|
* @memberOf html5
|
||||||
|
* @param {String|Array} newElements whitespace separated list or array of new element names to shiv
|
||||||
|
* @param {Document} ownerDocument The context document.
|
||||||
|
*/
|
||||||
|
function addElements(newElements, ownerDocument) {
|
||||||
|
var elements = html5.elements;
|
||||||
|
if(typeof elements != 'string'){
|
||||||
|
elements = elements.join(' ');
|
||||||
|
}
|
||||||
|
if(typeof newElements != 'string'){
|
||||||
|
newElements = newElements.join(' ');
|
||||||
|
}
|
||||||
|
html5.elements = elements +' '+ newElements;
|
||||||
|
shivDocument(ownerDocument);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the data associated to the given document
|
||||||
|
* @private
|
||||||
|
* @param {Document} ownerDocument The document.
|
||||||
|
* @returns {Object} An object of data.
|
||||||
|
*/
|
||||||
|
function getExpandoData(ownerDocument) {
|
||||||
|
var data = expandoData[ownerDocument[expando]];
|
||||||
|
if (!data) {
|
||||||
|
data = {};
|
||||||
|
expanID++;
|
||||||
|
ownerDocument[expando] = expanID;
|
||||||
|
expandoData[expanID] = data;
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* returns a shived element for the given nodeName and document
|
||||||
|
* @memberOf html5
|
||||||
|
* @param {String} nodeName name of the element
|
||||||
|
* @param {Document} ownerDocument The context document.
|
||||||
|
* @returns {Object} The shived element.
|
||||||
|
*/
|
||||||
|
function createElement(nodeName, ownerDocument, data){
|
||||||
|
if (!ownerDocument) {
|
||||||
|
ownerDocument = document;
|
||||||
|
}
|
||||||
|
if(supportsUnknownElements){
|
||||||
|
return ownerDocument.createElement(nodeName);
|
||||||
|
}
|
||||||
|
if (!data) {
|
||||||
|
data = getExpandoData(ownerDocument);
|
||||||
|
}
|
||||||
|
var node;
|
||||||
|
|
||||||
|
if (data.cache[nodeName]) {
|
||||||
|
node = data.cache[nodeName].cloneNode();
|
||||||
|
} else if (saveClones.test(nodeName)) {
|
||||||
|
node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode();
|
||||||
|
} else {
|
||||||
|
node = data.createElem(nodeName);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Avoid adding some elements to fragments in IE < 9 because
|
||||||
|
// * Attributes like `name` or `type` cannot be set/changed once an element
|
||||||
|
// is inserted into a document/fragment
|
||||||
|
// * Link elements with `src` attributes that are inaccessible, as with
|
||||||
|
// a 403 response, will cause the tab/window to crash
|
||||||
|
// * Script elements appended to fragments will execute when their `src`
|
||||||
|
// or `text` property is set
|
||||||
|
return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* returns a shived DocumentFragment for the given document
|
||||||
|
* @memberOf html5
|
||||||
|
* @param {Document} ownerDocument The context document.
|
||||||
|
* @returns {Object} The shived DocumentFragment.
|
||||||
|
*/
|
||||||
|
function createDocumentFragment(ownerDocument, data){
|
||||||
|
if (!ownerDocument) {
|
||||||
|
ownerDocument = document;
|
||||||
|
}
|
||||||
|
if(supportsUnknownElements){
|
||||||
|
return ownerDocument.createDocumentFragment();
|
||||||
|
}
|
||||||
|
data = data || getExpandoData(ownerDocument);
|
||||||
|
var clone = data.frag.cloneNode(),
|
||||||
|
i = 0,
|
||||||
|
elems = getElements(),
|
||||||
|
l = elems.length;
|
||||||
|
for(;i<l;i++){
|
||||||
|
clone.createElement(elems[i]);
|
||||||
|
}
|
||||||
|
return clone;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shivs the `createElement` and `createDocumentFragment` methods of the document.
|
||||||
|
* @private
|
||||||
|
* @param {Document|DocumentFragment} ownerDocument The document.
|
||||||
|
* @param {Object} data of the document.
|
||||||
|
*/
|
||||||
|
function shivMethods(ownerDocument, data) {
|
||||||
|
if (!data.cache) {
|
||||||
|
data.cache = {};
|
||||||
|
data.createElem = ownerDocument.createElement;
|
||||||
|
data.createFrag = ownerDocument.createDocumentFragment;
|
||||||
|
data.frag = data.createFrag();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ownerDocument.createElement = function(nodeName) {
|
||||||
|
//abort shiv
|
||||||
|
if (!html5.shivMethods) {
|
||||||
|
return data.createElem(nodeName);
|
||||||
|
}
|
||||||
|
return createElement(nodeName, ownerDocument, data);
|
||||||
|
};
|
||||||
|
|
||||||
|
ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' +
|
||||||
|
'var n=f.cloneNode(),c=n.createElement;' +
|
||||||
|
'h.shivMethods&&(' +
|
||||||
|
// unroll the `createElement` calls
|
||||||
|
getElements().join().replace(/[\w\-:]+/g, function(nodeName) {
|
||||||
|
data.createElem(nodeName);
|
||||||
|
data.frag.createElement(nodeName);
|
||||||
|
return 'c("' + nodeName + '")';
|
||||||
|
}) +
|
||||||
|
');return n}'
|
||||||
|
)(html5, data.frag);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shivs the given document.
|
||||||
|
* @memberOf html5
|
||||||
|
* @param {Document} ownerDocument The document to shiv.
|
||||||
|
* @returns {Document} The shived document.
|
||||||
|
*/
|
||||||
|
function shivDocument(ownerDocument) {
|
||||||
|
if (!ownerDocument) {
|
||||||
|
ownerDocument = document;
|
||||||
|
}
|
||||||
|
var data = getExpandoData(ownerDocument);
|
||||||
|
|
||||||
|
if (html5.shivCSS && !supportsHtml5Styles && !data.hasCSS) {
|
||||||
|
data.hasCSS = !!addStyleSheet(ownerDocument,
|
||||||
|
// corrects block display not defined in IE6/7/8/9
|
||||||
|
'article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}' +
|
||||||
|
// adds styling not present in IE6/7/8/9
|
||||||
|
'mark{background:#FF0;color:#000}' +
|
||||||
|
// hides non-rendered elements
|
||||||
|
'template{display:none}'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (!supportsUnknownElements) {
|
||||||
|
shivMethods(ownerDocument, data);
|
||||||
|
}
|
||||||
|
return ownerDocument;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The `html5` object is exposed so that more elements can be shived and
|
||||||
|
* existing shiving can be detected on iframes.
|
||||||
|
* @type Object
|
||||||
|
* @example
|
||||||
|
*
|
||||||
|
* // options can be changed before the script is included
|
||||||
|
* html5 = { 'elements': 'mark section', 'shivCSS': false, 'shivMethods': false };
|
||||||
|
*/
|
||||||
|
var html5 = {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An array or space separated string of node names of the elements to shiv.
|
||||||
|
* @memberOf html5
|
||||||
|
* @type Array|String
|
||||||
|
*/
|
||||||
|
'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video',
|
||||||
|
|
||||||
|
/**
|
||||||
|
* current version of html5shiv
|
||||||
|
*/
|
||||||
|
'version': version,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A flag to indicate that the HTML5 style sheet should be inserted.
|
||||||
|
* @memberOf html5
|
||||||
|
* @type Boolean
|
||||||
|
*/
|
||||||
|
'shivCSS': (options.shivCSS !== false),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Is equal to true if a browser supports creating unknown/HTML5 elements
|
||||||
|
* @memberOf html5
|
||||||
|
* @type boolean
|
||||||
|
*/
|
||||||
|
'supportsUnknownElements': supportsUnknownElements,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A flag to indicate that the document's `createElement` and `createDocumentFragment`
|
||||||
|
* methods should be overwritten.
|
||||||
|
* @memberOf html5
|
||||||
|
* @type Boolean
|
||||||
|
*/
|
||||||
|
'shivMethods': (options.shivMethods !== false),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A string to describe the type of `html5` object ("default" or "default print").
|
||||||
|
* @memberOf html5
|
||||||
|
* @type String
|
||||||
|
*/
|
||||||
|
'type': 'default',
|
||||||
|
|
||||||
|
// shivs the document according to the specified `html5` object options
|
||||||
|
'shivDocument': shivDocument,
|
||||||
|
|
||||||
|
//creates a shived element
|
||||||
|
createElement: createElement,
|
||||||
|
|
||||||
|
//creates a shived documentFragment
|
||||||
|
createDocumentFragment: createDocumentFragment,
|
||||||
|
|
||||||
|
//extends list of elements
|
||||||
|
addElements: addElements
|
||||||
|
};
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
// expose html5
|
||||||
|
window.html5 = html5;
|
||||||
|
|
||||||
|
// shiv the document
|
||||||
|
shivDocument(document);
|
||||||
|
|
||||||
|
}(this, document));
|
||||||
+353
@@ -0,0 +1,353 @@
|
|||||||
|
/* Respond.js: min/max-width media query polyfill. (c) Scott Jehl. MIT Lic. j.mp/respondjs */
|
||||||
|
(function( w ){
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
//exposed namespace
|
||||||
|
var respond = {};
|
||||||
|
w.respond = respond;
|
||||||
|
|
||||||
|
//define update even in native-mq-supporting browsers, to avoid errors
|
||||||
|
respond.update = function(){};
|
||||||
|
|
||||||
|
//define ajax obj
|
||||||
|
var requestQueue = [],
|
||||||
|
xmlHttp = (function() {
|
||||||
|
var xmlhttpmethod = false;
|
||||||
|
try {
|
||||||
|
xmlhttpmethod = new w.XMLHttpRequest();
|
||||||
|
}
|
||||||
|
catch( e ){
|
||||||
|
xmlhttpmethod = new w.ActiveXObject( "Microsoft.XMLHTTP" );
|
||||||
|
}
|
||||||
|
return function(){
|
||||||
|
return xmlhttpmethod;
|
||||||
|
};
|
||||||
|
})(),
|
||||||
|
|
||||||
|
//tweaked Ajax functions from Quirksmode
|
||||||
|
ajax = function( url, callback ) {
|
||||||
|
var req = xmlHttp();
|
||||||
|
if (!req){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
req.open( "GET", url, true );
|
||||||
|
req.onreadystatechange = function () {
|
||||||
|
if ( req.readyState !== 4 || req.status !== 200 && req.status !== 304 ){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
callback( req.responseText );
|
||||||
|
};
|
||||||
|
if ( req.readyState === 4 ){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
req.send( null );
|
||||||
|
},
|
||||||
|
isUnsupportedMediaQuery = function( query ) {
|
||||||
|
return query.replace( respond.regex.minmaxwh, '' ).match( respond.regex.other );
|
||||||
|
};
|
||||||
|
|
||||||
|
//expose for testing
|
||||||
|
respond.ajax = ajax;
|
||||||
|
respond.queue = requestQueue;
|
||||||
|
respond.unsupportedmq = isUnsupportedMediaQuery;
|
||||||
|
respond.regex = {
|
||||||
|
media: /@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,
|
||||||
|
keyframes: /@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,
|
||||||
|
comments: /\/\*[^*]*\*+([^/][^*]*\*+)*\//gi,
|
||||||
|
urls: /(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,
|
||||||
|
findStyles: /@media *([^\{]+)\{([\S\s]+?)$/,
|
||||||
|
only: /(only\s+)?([a-zA-Z]+)\s?/,
|
||||||
|
minw: /\(\s*min\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,
|
||||||
|
maxw: /\(\s*max\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,
|
||||||
|
minmaxwh: /\(\s*m(in|ax)\-(height|width)\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/gi,
|
||||||
|
other: /\([^\)]*\)/g
|
||||||
|
};
|
||||||
|
|
||||||
|
//expose media query support flag for external use
|
||||||
|
respond.mediaQueriesSupported = w.matchMedia && w.matchMedia( "only all" ) !== null && w.matchMedia( "only all" ).matches;
|
||||||
|
|
||||||
|
//if media queries are supported, exit here
|
||||||
|
if( respond.mediaQueriesSupported ){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//define vars
|
||||||
|
var doc = w.document,
|
||||||
|
docElem = doc.documentElement,
|
||||||
|
mediastyles = [],
|
||||||
|
rules = [],
|
||||||
|
appendedEls = [],
|
||||||
|
parsedSheets = {},
|
||||||
|
resizeThrottle = 30,
|
||||||
|
head = doc.getElementsByTagName( "head" )[0] || docElem,
|
||||||
|
base = doc.getElementsByTagName( "base" )[0],
|
||||||
|
links = head.getElementsByTagName( "link" ),
|
||||||
|
|
||||||
|
lastCall,
|
||||||
|
resizeDefer,
|
||||||
|
|
||||||
|
//cached container for 1em value, populated the first time it's needed
|
||||||
|
eminpx,
|
||||||
|
|
||||||
|
// returns the value of 1em in pixels
|
||||||
|
getEmValue = function() {
|
||||||
|
var ret,
|
||||||
|
div = doc.createElement('div'),
|
||||||
|
body = doc.body,
|
||||||
|
originalHTMLFontSize = docElem.style.fontSize,
|
||||||
|
originalBodyFontSize = body && body.style.fontSize,
|
||||||
|
fakeUsed = false;
|
||||||
|
|
||||||
|
div.style.cssText = "position:absolute;font-size:1em;width:1em";
|
||||||
|
|
||||||
|
if( !body ){
|
||||||
|
body = fakeUsed = doc.createElement( "body" );
|
||||||
|
body.style.background = "none";
|
||||||
|
}
|
||||||
|
|
||||||
|
// 1em in a media query is the value of the default font size of the browser
|
||||||
|
// reset docElem and body to ensure the correct value is returned
|
||||||
|
docElem.style.fontSize = "100%";
|
||||||
|
body.style.fontSize = "100%";
|
||||||
|
|
||||||
|
body.appendChild( div );
|
||||||
|
|
||||||
|
if( fakeUsed ){
|
||||||
|
docElem.insertBefore( body, docElem.firstChild );
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = div.offsetWidth;
|
||||||
|
|
||||||
|
if( fakeUsed ){
|
||||||
|
docElem.removeChild( body );
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
body.removeChild( div );
|
||||||
|
}
|
||||||
|
|
||||||
|
// restore the original values
|
||||||
|
docElem.style.fontSize = originalHTMLFontSize;
|
||||||
|
if( originalBodyFontSize ) {
|
||||||
|
body.style.fontSize = originalBodyFontSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//also update eminpx before returning
|
||||||
|
ret = eminpx = parseFloat(ret);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
},
|
||||||
|
|
||||||
|
//enable/disable styles
|
||||||
|
applyMedia = function( fromResize ){
|
||||||
|
var name = "clientWidth",
|
||||||
|
docElemProp = docElem[ name ],
|
||||||
|
currWidth = doc.compatMode === "CSS1Compat" && docElemProp || doc.body[ name ] || docElemProp,
|
||||||
|
styleBlocks = {},
|
||||||
|
lastLink = links[ links.length-1 ],
|
||||||
|
now = (new Date()).getTime();
|
||||||
|
|
||||||
|
//throttle resize calls
|
||||||
|
if( fromResize && lastCall && now - lastCall < resizeThrottle ){
|
||||||
|
w.clearTimeout( resizeDefer );
|
||||||
|
resizeDefer = w.setTimeout( applyMedia, resizeThrottle );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
lastCall = now;
|
||||||
|
}
|
||||||
|
|
||||||
|
for( var i in mediastyles ){
|
||||||
|
if( mediastyles.hasOwnProperty( i ) ){
|
||||||
|
var thisstyle = mediastyles[ i ],
|
||||||
|
min = thisstyle.minw,
|
||||||
|
max = thisstyle.maxw,
|
||||||
|
minnull = min === null,
|
||||||
|
maxnull = max === null,
|
||||||
|
em = "em";
|
||||||
|
|
||||||
|
if( !!min ){
|
||||||
|
min = parseFloat( min ) * ( min.indexOf( em ) > -1 ? ( eminpx || getEmValue() ) : 1 );
|
||||||
|
}
|
||||||
|
if( !!max ){
|
||||||
|
max = parseFloat( max ) * ( max.indexOf( em ) > -1 ? ( eminpx || getEmValue() ) : 1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
// if there's no media query at all (the () part), or min or max is not null, and if either is present, they're true
|
||||||
|
if( !thisstyle.hasquery || ( !minnull || !maxnull ) && ( minnull || currWidth >= min ) && ( maxnull || currWidth <= max ) ){
|
||||||
|
if( !styleBlocks[ thisstyle.media ] ){
|
||||||
|
styleBlocks[ thisstyle.media ] = [];
|
||||||
|
}
|
||||||
|
styleBlocks[ thisstyle.media ].push( rules[ thisstyle.rules ] );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//remove any existing respond style element(s)
|
||||||
|
for( var j in appendedEls ){
|
||||||
|
if( appendedEls.hasOwnProperty( j ) ){
|
||||||
|
if( appendedEls[ j ] && appendedEls[ j ].parentNode === head ){
|
||||||
|
head.removeChild( appendedEls[ j ] );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
appendedEls.length = 0;
|
||||||
|
|
||||||
|
//inject active styles, grouped by media type
|
||||||
|
for( var k in styleBlocks ){
|
||||||
|
if( styleBlocks.hasOwnProperty( k ) ){
|
||||||
|
var ss = doc.createElement( "style" ),
|
||||||
|
css = styleBlocks[ k ].join( "\n" );
|
||||||
|
|
||||||
|
ss.type = "text/css";
|
||||||
|
ss.media = k;
|
||||||
|
|
||||||
|
//originally, ss was appended to a documentFragment and sheets were appended in bulk.
|
||||||
|
//this caused crashes in IE in a number of circumstances, such as when the HTML element had a bg image set, so appending beforehand seems best. Thanks to @dvelyk for the initial research on this one!
|
||||||
|
head.insertBefore( ss, lastLink.nextSibling );
|
||||||
|
|
||||||
|
if ( ss.styleSheet ){
|
||||||
|
ss.styleSheet.cssText = css;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ss.appendChild( doc.createTextNode( css ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
//push to appendedEls to track for later removal
|
||||||
|
appendedEls.push( ss );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//find media blocks in css text, convert to style blocks
|
||||||
|
translate = function( styles, href, media ){
|
||||||
|
var qs = styles.replace( respond.regex.comments, '' )
|
||||||
|
.replace( respond.regex.keyframes, '' )
|
||||||
|
.match( respond.regex.media ),
|
||||||
|
ql = qs && qs.length || 0;
|
||||||
|
|
||||||
|
//try to get CSS path
|
||||||
|
href = href.substring( 0, href.lastIndexOf( "/" ) );
|
||||||
|
|
||||||
|
var repUrls = function( css ){
|
||||||
|
return css.replace( respond.regex.urls, "$1" + href + "$2$3" );
|
||||||
|
},
|
||||||
|
useMedia = !ql && media;
|
||||||
|
|
||||||
|
//if path exists, tack on trailing slash
|
||||||
|
if( href.length ){ href += "/"; }
|
||||||
|
|
||||||
|
//if no internal queries exist, but media attr does, use that
|
||||||
|
//note: this currently lacks support for situations where a media attr is specified on a link AND
|
||||||
|
//its associated stylesheet has internal CSS media queries.
|
||||||
|
//In those cases, the media attribute will currently be ignored.
|
||||||
|
if( useMedia ){
|
||||||
|
ql = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
for( var i = 0; i < ql; i++ ){
|
||||||
|
var fullq, thisq, eachq, eql;
|
||||||
|
|
||||||
|
//media attr
|
||||||
|
if( useMedia ){
|
||||||
|
fullq = media;
|
||||||
|
rules.push( repUrls( styles ) );
|
||||||
|
}
|
||||||
|
//parse for styles
|
||||||
|
else{
|
||||||
|
fullq = qs[ i ].match( respond.regex.findStyles ) && RegExp.$1;
|
||||||
|
rules.push( RegExp.$2 && repUrls( RegExp.$2 ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
eachq = fullq.split( "," );
|
||||||
|
eql = eachq.length;
|
||||||
|
|
||||||
|
for( var j = 0; j < eql; j++ ){
|
||||||
|
thisq = eachq[ j ];
|
||||||
|
|
||||||
|
if( isUnsupportedMediaQuery( thisq ) ) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
mediastyles.push( {
|
||||||
|
media : thisq.split( "(" )[ 0 ].match( respond.regex.only ) && RegExp.$2 || "all",
|
||||||
|
rules : rules.length - 1,
|
||||||
|
hasquery : thisq.indexOf("(") > -1,
|
||||||
|
minw : thisq.match( respond.regex.minw ) && parseFloat( RegExp.$1 ) + ( RegExp.$2 || "" ),
|
||||||
|
maxw : thisq.match( respond.regex.maxw ) && parseFloat( RegExp.$1 ) + ( RegExp.$2 || "" )
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
applyMedia();
|
||||||
|
},
|
||||||
|
|
||||||
|
//recurse through request queue, get css text
|
||||||
|
makeRequests = function(){
|
||||||
|
if( requestQueue.length ){
|
||||||
|
var thisRequest = requestQueue.shift();
|
||||||
|
|
||||||
|
ajax( thisRequest.href, function( styles ){
|
||||||
|
translate( styles, thisRequest.href, thisRequest.media );
|
||||||
|
parsedSheets[ thisRequest.href ] = true;
|
||||||
|
|
||||||
|
// by wrapping recursive function call in setTimeout
|
||||||
|
// we prevent "Stack overflow" error in IE7
|
||||||
|
w.setTimeout(function(){ makeRequests(); },0);
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
//loop stylesheets, send text content to translate
|
||||||
|
ripCSS = function(){
|
||||||
|
|
||||||
|
for( var i = 0; i < links.length; i++ ){
|
||||||
|
var sheet = links[ i ],
|
||||||
|
href = sheet.href,
|
||||||
|
media = sheet.media,
|
||||||
|
isCSS = sheet.rel && sheet.rel.toLowerCase() === "stylesheet";
|
||||||
|
|
||||||
|
//only links plz and prevent re-parsing
|
||||||
|
if( !!href && isCSS && !parsedSheets[ href ] ){
|
||||||
|
// selectivizr exposes css through the rawCssText expando
|
||||||
|
if (sheet.styleSheet && sheet.styleSheet.rawCssText) {
|
||||||
|
translate( sheet.styleSheet.rawCssText, href, media );
|
||||||
|
parsedSheets[ href ] = true;
|
||||||
|
} else {
|
||||||
|
if( (!/^([a-zA-Z:]*\/\/)/.test( href ) && !base) ||
|
||||||
|
href.replace( RegExp.$1, "" ).split( "/" )[0] === w.location.host ){
|
||||||
|
// IE7 doesn't handle urls that start with '//' for ajax request
|
||||||
|
// manually add in the protocol
|
||||||
|
if ( href.substring(0,2) === "//" ) { href = w.location.protocol + href; }
|
||||||
|
requestQueue.push( {
|
||||||
|
href: href,
|
||||||
|
media: media
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
makeRequests();
|
||||||
|
};
|
||||||
|
|
||||||
|
//translate CSS
|
||||||
|
ripCSS();
|
||||||
|
|
||||||
|
//expose update for re-running respond later on
|
||||||
|
respond.update = ripCSS;
|
||||||
|
|
||||||
|
//expose getEmValue
|
||||||
|
respond.getEmValue = getEmValue;
|
||||||
|
|
||||||
|
//adjust on resize
|
||||||
|
function callMedia(){
|
||||||
|
applyMedia( true );
|
||||||
|
}
|
||||||
|
|
||||||
|
if( w.addEventListener ){
|
||||||
|
w.addEventListener( "resize", callMedia, false );
|
||||||
|
}
|
||||||
|
else if( w.attachEvent ){
|
||||||
|
w.attachEvent( "onresize", callMedia );
|
||||||
|
}
|
||||||
|
})(this);
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
<h4 id="pengzhan-hao">Pengzhan Hao</h4>
|
|
||||||
<p>Master Student of Binghamton University, SUNY Working on OS/Cloud Interested in ML/Geo Computing</p>
|
|
||||||
<h4 id="experience">Experience</h4>
|
|
||||||
<p>2013<sub>2014 2013</sub>2014 2016~</p>
|
|
||||||
<h4 id="blog">Blog</h4>
|
|
||||||
<p><a href="./blog.html">Mil años de solitario</a></p>
|
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 8.9 KiB |
@@ -1,20 +0,0 @@
|
|||||||
#!/usr/bin/python
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import os
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
parser.add_argument("op")
|
|
||||||
parser.add_argument("type")
|
|
||||||
res = parser.parse_args()
|
|
||||||
print(res)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
|
|
||||||
TARGET="../draft"
|
|
||||||
#DRAFTS=$(ls -l $TARGET| awk '!/index/ {print $9}')
|
|
||||||
DRAFTS=$(ls -l $TARGET| awk '{print $9}')
|
|
||||||
|
|
||||||
for DRAFT in $DRAFTS
|
|
||||||
do
|
|
||||||
pandoc $TARGET/$DRAFT -o ../$(echo $DRAFT| cut -d'.' -f1).html
|
|
||||||
done
|
|
||||||
Reference in New Issue
Block a user