diff --git a/tools/.tool.sh.swp b/._config.yml.swp similarity index 86% rename from tools/.tool.sh.swp rename to ._config.yml.swp index 4e6be39..9b7449d 100644 Binary files a/tools/.tool.sh.swp and b/._config.yml.swp differ diff --git a/.sass-cache/6cb805bc306cca7fdb5d8f72870f23c31ddcffb2/_base.scssc b/.sass-cache/6cb805bc306cca7fdb5d8f72870f23c31ddcffb2/_base.scssc new file mode 100644 index 0000000..3127638 Binary files /dev/null and b/.sass-cache/6cb805bc306cca7fdb5d8f72870f23c31ddcffb2/_base.scssc differ diff --git a/.sass-cache/6cb805bc306cca7fdb5d8f72870f23c31ddcffb2/_easybook.scssc b/.sass-cache/6cb805bc306cca7fdb5d8f72870f23c31ddcffb2/_easybook.scssc new file mode 100644 index 0000000..e7d94e1 Binary files /dev/null and b/.sass-cache/6cb805bc306cca7fdb5d8f72870f23c31ddcffb2/_easybook.scssc differ diff --git a/.sass-cache/6cb805bc306cca7fdb5d8f72870f23c31ddcffb2/_home.scssc b/.sass-cache/6cb805bc306cca7fdb5d8f72870f23c31ddcffb2/_home.scssc new file mode 100644 index 0000000..702a8b9 Binary files /dev/null and b/.sass-cache/6cb805bc306cca7fdb5d8f72870f23c31ddcffb2/_home.scssc differ diff --git a/.sass-cache/6cb805bc306cca7fdb5d8f72870f23c31ddcffb2/_layout.scssc b/.sass-cache/6cb805bc306cca7fdb5d8f72870f23c31ddcffb2/_layout.scssc new file mode 100644 index 0000000..a60c2b4 Binary files /dev/null and b/.sass-cache/6cb805bc306cca7fdb5d8f72870f23c31ddcffb2/_layout.scssc differ diff --git a/.sass-cache/6cb805bc306cca7fdb5d8f72870f23c31ddcffb2/_post.scssc b/.sass-cache/6cb805bc306cca7fdb5d8f72870f23c31ddcffb2/_post.scssc new file mode 100644 index 0000000..fe3794d Binary files /dev/null and b/.sass-cache/6cb805bc306cca7fdb5d8f72870f23c31ddcffb2/_post.scssc differ diff --git a/.sass-cache/6cb805bc306cca7fdb5d8f72870f23c31ddcffb2/_syntax-highlighting.scssc b/.sass-cache/6cb805bc306cca7fdb5d8f72870f23c31ddcffb2/_syntax-highlighting.scssc new file mode 100644 index 0000000..cc42f0f Binary files /dev/null and b/.sass-cache/6cb805bc306cca7fdb5d8f72870f23c31ddcffb2/_syntax-highlighting.scssc differ diff --git a/404.md b/404.md new file mode 100644 index 0000000..d0038a2 --- /dev/null +++ b/404.md @@ -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? diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..bfcc8aa --- /dev/null +++ b/LICENSE @@ -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. diff --git a/README.md b/README.md new file mode 100644 index 0000000..8298e76 --- /dev/null +++ b/README.md @@ -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 + +## Demo + +[laobubu's blog](http://blog.laobubu.net) | [empty site](http://laobubu.github.io/jekyll-theme-EasyBook) + +![Homepage](https://ooo.0o0.ooo/2016/02/11/56bc997c65daf.png) + +## 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/ diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..3ca5da8 --- /dev/null +++ b/_config.yml @@ -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 diff --git a/_includes/comment.html b/_includes/comment.html new file mode 100644 index 0000000..8536de7 --- /dev/null +++ b/_includes/comment.html @@ -0,0 +1,36 @@ +{% if page.nocomments %} +{% else %} +{% if site.disqus_shortname %} +
+
+ +
+{% endif %} +{% if site.duoshuo_shortname %} +
+ +
+ + + + +
+{% endif %} +{% endif %} \ No newline at end of file diff --git a/_includes/footer.html b/_includes/footer.html new file mode 100644 index 0000000..c400e8f --- /dev/null +++ b/_includes/footer.html @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/_includes/head.html b/_includes/head.html new file mode 100644 index 0000000..ab7a653 --- /dev/null +++ b/_includes/head.html @@ -0,0 +1,12 @@ + + + + + + {% if page.title %}{{ page.title }} « {{ site.title }}{% else %}{{ site.title }}{% endif %} + + + + + + diff --git a/_includes/header.html b/_includes/header.html new file mode 100644 index 0000000..78de311 --- /dev/null +++ b/_includes/header.html @@ -0,0 +1,12 @@ +
+
+ {{ site.title }} + +
+
\ No newline at end of file diff --git a/_includes/icon-github.html b/_includes/icon-github.html new file mode 100644 index 0000000..e501a16 --- /dev/null +++ b/_includes/icon-github.html @@ -0,0 +1 @@ +{% include icon-github.svg %}{{ include.username }} diff --git a/_includes/icon-github.svg b/_includes/icon-github.svg new file mode 100644 index 0000000..4422c4f --- /dev/null +++ b/_includes/icon-github.svg @@ -0,0 +1 @@ + diff --git a/_includes/icon-twitter.html b/_includes/icon-twitter.html new file mode 100644 index 0000000..e623dbd --- /dev/null +++ b/_includes/icon-twitter.html @@ -0,0 +1 @@ +{{ include.username }} diff --git a/_includes/icon-twitter.svg b/_includes/icon-twitter.svg new file mode 100644 index 0000000..dcf660e --- /dev/null +++ b/_includes/icon-twitter.svg @@ -0,0 +1 @@ + diff --git a/_includes/sidebar.html b/_includes/sidebar.html new file mode 100644 index 0000000..c7c729f --- /dev/null +++ b/_includes/sidebar.html @@ -0,0 +1,29 @@ +
+ {{ site.author }} +
{{ site.author }}
+

{{ site.profile }}

+

+ {% if site.github_username %} + GitHub + {% endif %} + {% if site.twitter_username %} + Twitter + {% endif %} + {% if site.email %} + Email + {% endif %} +

+
+ +
+
Newest Posts
+ +
+ +
+
TOC
+
\ No newline at end of file diff --git a/_layouts/default.html b/_layouts/default.html new file mode 100644 index 0000000..b0e362a --- /dev/null +++ b/_layouts/default.html @@ -0,0 +1,25 @@ + + + + {% include head.html %} + + + + {% include header.html %} + +
+
+
+ {{ content }} +
+
+ {% include sidebar.html %} +
+
+
+ + {% include footer.html %} + + + + diff --git a/_layouts/page.html b/_layouts/page.html new file mode 100644 index 0000000..9b863db --- /dev/null +++ b/_layouts/page.html @@ -0,0 +1,16 @@ +--- +layout: default +--- +
+ +
+

{{ page.title }}

+
+ +
+ {{ content }} +
+ + {% include comment.html %} + +
diff --git a/_layouts/post.html b/_layouts/post.html new file mode 100644 index 0000000..93d15a5 --- /dev/null +++ b/_layouts/post.html @@ -0,0 +1,17 @@ +--- +layout: default +--- +
+ +
+

{{ page.title }}

+ +
+ +
+ {{ content }} +
+ + {% include comment.html %} + +
diff --git a/_posts/2016-10-26-welcome-to-my-blog.markdown b/_posts/2016-10-26-welcome-to-my-blog.markdown new file mode 100644 index 0000000..3b132c6 --- /dev/null +++ b/_posts/2016-10-26-welcome-to-my-blog.markdown @@ -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 +--- + + + diff --git a/_sass/_base.scss b/_sass/_base.scss new file mode 100644 index 0000000..4af8772 --- /dev/null +++ b/_sass/_base.scss @@ -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; +} \ No newline at end of file diff --git a/_sass/_easybook.scss b/_sass/_easybook.scss new file mode 100644 index 0000000..2ef2273 --- /dev/null +++ b/_sass/_easybook.scss @@ -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; + } +} \ No newline at end of file diff --git a/_sass/_home.scss b/_sass/_home.scss new file mode 100644 index 0000000..305e17f --- /dev/null +++ b/_sass/_home.scss @@ -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; + } +} +} \ No newline at end of file diff --git a/_sass/_layout.scss b/_sass/_layout.scss new file mode 100644 index 0000000..1e0475b --- /dev/null +++ b/_sass/_layout.scss @@ -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; + } +} diff --git a/_sass/_normalize.scss b/_sass/_normalize.scss new file mode 100644 index 0000000..08f8950 --- /dev/null +++ b/_sass/_normalize.scss @@ -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; +} diff --git a/_sass/_post.scss b/_sass/_post.scss new file mode 100644 index 0000000..a476a8f --- /dev/null +++ b/_sass/_post.scss @@ -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; + } +} \ No newline at end of file diff --git a/_sass/_syntax-highlighting.scss b/_sass/_syntax-highlighting.scss new file mode 100644 index 0000000..582e053 --- /dev/null +++ b/_sass/_syntax-highlighting.scss @@ -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 */ +} \ No newline at end of file diff --git a/_site/404.html b/_site/404.html new file mode 100644 index 0000000..2ab962d --- /dev/null +++ b/_site/404.html @@ -0,0 +1,110 @@ + + + + + + + + + Page Not Found « Stop Talking, Start Doing - 停止空想,开始行动 + + + + + + + + + + +
+
+ Stop Talking, Start Doing - 停止空想,开始行动 + +
+
+ +
+
+
+
+ +
+

Page Not Found

+
+ +
+

Where am I and where should I go?

+ +
+ + + + +
+ +
+
+
+ Pengzhan Hao - 碾子 +
Pengzhan Hao - 碾子
+

+

+ + GitHub + + + Twitter + + + Email + +

+
+ + + +
+
TOC
+
+
+
+
+ + + + + + + + diff --git a/_site/LICENSE b/_site/LICENSE new file mode 100644 index 0000000..bfcc8aa --- /dev/null +++ b/_site/LICENSE @@ -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. diff --git a/_site/README.md b/_site/README.md new file mode 100644 index 0000000..8298e76 --- /dev/null +++ b/_site/README.md @@ -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 + +## Demo + +[laobubu's blog](http://blog.laobubu.net) | [empty site](http://laobubu.github.io/jekyll-theme-EasyBook) + +![Homepage](https://ooo.0o0.ooo/2016/02/11/56bc997c65daf.png) + +## 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/ diff --git a/_site/about/index.html b/_site/about/index.html new file mode 100644 index 0000000..79c83f8 --- /dev/null +++ b/_site/about/index.html @@ -0,0 +1,115 @@ + + + + + + + + + About « Stop Talking, Start Doing - 停止空想,开始行动 + + + + + + + + + + +
+
+ Stop Talking, Start Doing - 停止空想,开始行动 + +
+
+ +
+
+
+
+ +
+

About

+
+ +
+

Pengzhan Hao

+

Email:haopengzhan@gmail.com
+Address:Binghamton University
+Phone: (607)-II-III-II-83-VII-II

+ +
+ + + + + + +
+ +
+
+
+ Pengzhan Hao - 碾子 +
Pengzhan Hao - 碾子
+

+

+ + GitHub + + + Twitter + + + Email + +

+
+ + + +
+
TOC
+
+
+
+
+ +
+
+© 2016 Pengzhan Hao - 碾子 +
+
+ + + + + + diff --git a/_site/about/me/2016/10/26/welcome-to-my-blog.html b/_site/about/me/2016/10/26/welcome-to-my-blog.html new file mode 100644 index 0000000..7733bd8 --- /dev/null +++ b/_site/about/me/2016/10/26/welcome-to-my-blog.html @@ -0,0 +1,115 @@ + + + + + + + + + About m « Stop Talking, Start Doing + + + + + + + + + + +
+
+ Stop Talking, Start Doing + +
+
+ +
+
+
+
+ +
+

About m

+ +
+ +
+

Pengzhan Hao

+

haopengzhan@gmail.com | Binghamton University | 607-II-III-II-83-VII-II +———————————————————————–

+ + +
+ + + + + + +
+ +
+
+
+ +
+

+

+ + GitHub + + + Twitter + + + Email + +

+
+ +
+
Newest Posts
+ +
+ +
+
TOC
+
+
+
+
+ +
+
+© 2016 +
+
+ + + + + + diff --git a/_site/archivers/hello.html b/_site/archivers/hello.html new file mode 100644 index 0000000..a9029a3 --- /dev/null +++ b/_site/archivers/hello.html @@ -0,0 +1,112 @@ + + + + + + + + + Stop Talking is the worst title of one blog « Stop Talking, Start Doing - 停止空想,开始行动 + + + + + + + + + + +
+
+ Stop Talking, Start Doing - 停止空想,开始行动 + +
+
+ +
+
+
+
+ +
+

Stop Talking is the worst title of one blog

+ +
+ +
+ + +
+ + + + + + +
+ +
+
+
+ Pengzhan Hao - 碾子 +
Pengzhan Hao - 碾子
+

+

+ + GitHub + + + Twitter + + + Email + +

+
+ + + +
+
TOC
+
+
+
+
+ +
+
+© 2016 Pengzhan Hao - 碾子 +
+
+ + + + + + diff --git a/_site/category/index.html b/_site/category/index.html new file mode 100644 index 0000000..f2549d7 --- /dev/null +++ b/_site/category/index.html @@ -0,0 +1,115 @@ + + + + + + + + + Category « Stop Talking, Start Doing - 停止空想,开始行动 + + + + + + + + + + +
+
+ Stop Talking, Start Doing - 停止空想,开始行动 + +
+
+ +
+
+
+
+

Category

+ + + +
+ +
+
+
+ Pengzhan Hao - 碾子 +
Pengzhan Hao - 碾子
+

+

+ + GitHub + + + Twitter + + + Email + +

+
+ + + +
+
TOC
+
+
+
+
+ +
+
+© 2016 Pengzhan Hao - 碾子 +
+
+ + + + + + diff --git a/_site/css/main.css b/_site/css/main.css new file mode 100644 index 0000000..9b2293c --- /dev/null +++ b/_site/css/main.css @@ -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; } diff --git a/_site/feed.xml b/_site/feed.xml new file mode 100644 index 0000000..c8f5109 --- /dev/null +++ b/_site/feed.xml @@ -0,0 +1,27 @@ + + + + Stop Talking, Start Doing - 停止空想,开始行动 + 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. + + https://codersherlock.github.com// + + Thu, 27 Oct 2016 01:09:32 -0400 + Thu, 27 Oct 2016 01:09:32 -0400 + Jekyll v3.0.1 + + + Stop Talking is the worst title of one blog + + + Wed, 26 Oct 2016 22:50:33 -0400 + https://codersherlock.github.com//archivers/hello + https://codersherlock.github.com//archivers/hello + + + Nonsense + + + + + diff --git a/_site/index.html b/_site/index.html new file mode 100644 index 0000000..114cbfd --- /dev/null +++ b/_site/index.html @@ -0,0 +1,131 @@ + + + + + + + + + Stop Talking, Start Doing - 停止空想,开始行动 + + + + + + + + + + +
+
+ Stop Talking, Start Doing - 停止空想,开始行动 + +
+
+ +
+
+
+
+ RSS Feed +

Articles

+ + + + + + +
+ +
+
+
+ Pengzhan Hao - 碾子 +
Pengzhan Hao - 碾子
+

+

+ + GitHub + + + Twitter + + + Email + +

+
+ + + +
+
TOC
+
+
+
+
+ +
+
+© 2016 Pengzhan Hao - 碾子 +
+
+ + + + + + diff --git a/_site/js/easybook.js b/_site/js/easybook.js new file mode 100644 index 0000000..5007703 --- /dev/null +++ b/_site/js/easybook.js @@ -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 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(); diff --git a/_site/js/html5shiv.js b/_site/js/html5shiv.js new file mode 100644 index 0000000..77dace4 --- /dev/null +++ b/_site/js/html5shiv.js @@ -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 = ''; + //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'; + 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 -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); diff --git a/_site/nonsense/2016/10/26/welcome-to-my-blog.html b/_site/nonsense/2016/10/26/welcome-to-my-blog.html new file mode 100644 index 0000000..233c7d6 --- /dev/null +++ b/_site/nonsense/2016/10/26/welcome-to-my-blog.html @@ -0,0 +1,112 @@ + + + + + + + + + Stop Talking is the worst title of one blog « Stop Talking, Start Doing + + + + + + + + + + +
+
+ Stop Talking, Start Doing + +
+
+ +
+
+
+
+ +
+

Stop Talking is the worst title of one blog

+ +
+ +
+ + +
+ + + + + + +
+ +
+
+
+ +
+

+

+ + GitHub + + + Twitter + + + Email + +

+
+ + + +
+
TOC
+
+
+
+
+ +
+
+© 2016 +
+
+ + + + + + diff --git a/_site/static/avatar.jpg b/_site/static/avatar.jpg new file mode 100644 index 0000000..d715313 Binary files /dev/null and b/_site/static/avatar.jpg differ diff --git a/_site/static/avatarjpg b/_site/static/avatarjpg new file mode 100644 index 0000000..d715313 Binary files /dev/null and b/_site/static/avatarjpg differ diff --git a/about.md b/about.md new file mode 100644 index 0000000..4ccc79a --- /dev/null +++ b/about.md @@ -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 diff --git a/blog.html b/blog.html deleted file mode 100644 index 22f9719..0000000 --- a/blog.html +++ /dev/null @@ -1 +0,0 @@ -

->Mil años de solitario<- ->INDEX<-

diff --git a/category.html b/category.html new file mode 100644 index 0000000..9e1a860 --- /dev/null +++ b/category.html @@ -0,0 +1,27 @@ +--- +layout: default +title: Category +permalink: /category/ +public: true +--- + +
+

Category

+ +
    + +{% 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 %} +

    {{ word | upcase }}

    +
      +{% for post in site.categories[word] %}{% if post.title != null %} +
    • {{ post.date | date: "%b %d" }} » {{ post.title }}
    • +{% endif %}{% endfor %} +
    +{% endunless %}{% endfor %} + +
+ +
diff --git a/css/main.scss b/css/main.scss new file mode 100755 index 0000000..3deac11 --- /dev/null +++ b/css/main.scss @@ -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" +; diff --git a/draft/blog.md b/draft/blog.md deleted file mode 100644 index ef6c7df..0000000 --- a/draft/blog.md +++ /dev/null @@ -1,2 +0,0 @@ -->Mil años de solitario<- -->INDEX<- diff --git a/draft/index.md b/draft/index.md deleted file mode 100644 index 9c17ec1..0000000 --- a/draft/index.md +++ /dev/null @@ -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) diff --git a/draft/mycv.md b/draft/mycv.md deleted file mode 100644 index ac18835..0000000 --- a/draft/mycv.md +++ /dev/null @@ -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) - diff --git a/feed.xml b/feed.xml new file mode 100644 index 0000000..a6628bd --- /dev/null +++ b/feed.xml @@ -0,0 +1,30 @@ +--- +layout: null +--- + + + + {{ site.title | xml_escape }} + {{ site.description | xml_escape }} + {{ site.url }}{{ site.baseurl }}/ + + {{ site.time | date_to_rfc822 }} + {{ site.time | date_to_rfc822 }} + Jekyll v{{ jekyll.version }} + {% for post in site.posts limit:10 %} + + {{ post.title | xml_escape }} + {{ post.content | xml_escape }} + {{ post.date | date_to_rfc822 }} + {{ post.url | prepend: site.baseurl | prepend: site.url }} + {{ post.url | prepend: site.baseurl | prepend: site.url }} + {% for tag in post.tags %} + {{ tag | xml_escape }} + {% endfor %} + {% for cat in post.categories %} + {{ cat | xml_escape }} + {% endfor %} + + {% endfor %} + + diff --git a/index.html b/index.html index 1df239c..f5dbb4e 100644 --- a/index.html +++ b/index.html @@ -1,6 +1,43 @@ -

Coder Sherlock's Website

- +--- +layout: default +--- + +
+ RSS Feed +

Articles

+ +
    + {% for post in paginator.posts %} +
  • +

    + {{ post.title }} +

    + + + +
    + {{ post.excerpt }} +

    + Read More » +

    +
    +
  • + {% endfor %} +
+ + + + +
diff --git a/js/easybook.js b/js/easybook.js new file mode 100644 index 0000000..5007703 --- /dev/null +++ b/js/easybook.js @@ -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 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(); diff --git a/js/html5shiv.js b/js/html5shiv.js new file mode 100644 index 0000000..77dace4 --- /dev/null +++ b/js/html5shiv.js @@ -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 = ''; + //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'; + 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 -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); diff --git a/mycv.html b/mycv.html deleted file mode 100644 index 47802e9..0000000 --- a/mycv.html +++ /dev/null @@ -1,6 +0,0 @@ -

Pengzhan Hao

-

Master Student of Binghamton University, SUNY Working on OS/Cloud Interested in ML/Geo Computing

-

Experience

-

20132014 20132014 2016~

-

Blog

-

Mil años de solitario

diff --git a/static/avatar.jpg b/static/avatar.jpg new file mode 100644 index 0000000..d715313 Binary files /dev/null and b/static/avatar.jpg differ diff --git a/tools/tool.py b/tools/tool.py deleted file mode 100755 index 1c313ab..0000000 --- a/tools/tool.py +++ /dev/null @@ -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() diff --git a/tools/tool.sh b/tools/tool.sh deleted file mode 100755 index 40622d4..0000000 --- a/tools/tool.sh +++ /dev/null @@ -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