diff options
author | Zhe <neomana@gmail.com> | 2015-04-26 21:57:43 +0300 |
---|---|---|
committer | Zhe <neomana@gmail.com> | 2015-04-26 21:57:43 +0300 |
commit | bdddb39db2220b81377ef250378951be6f0395f4 (patch) | |
tree | 9c6f0e76f467269dec3215c6fefe64923e73b72e | |
parent | 26225381a7aaaaba66472aa6e3da173d4f6a4178 (diff) |
massive updates, but still in beta.
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | LICENSE.md | 20 | ||||
-rw-r--r-- | layouts/_default/list.html | 0 | ||||
-rw-r--r-- | layouts/_default/single.html | 37 | ||||
-rw-r--r-- | layouts/index.html | 37 | ||||
-rw-r--r-- | layouts/partials/footer.html | 3 | ||||
-rw-r--r-- | layouts/partials/head.html | 15 | ||||
-rw-r--r-- | layouts/partials/header.html | 14 | ||||
-rw-r--r-- | static/css/normalize.css | 424 | ||||
-rw-r--r-- | static/css/slim.css | 322 | ||||
-rw-r--r-- | static/js/slim.js | 4 | ||||
-rw-r--r-- | theme.toml | 6 |
12 files changed, 883 insertions, 0 deletions
@@ -0,0 +1 @@ +src diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..32fea66 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2014 YOUR_NAME_HERE + +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/layouts/_default/list.html b/layouts/_default/list.html new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/layouts/_default/list.html diff --git a/layouts/_default/single.html b/layouts/_default/single.html new file mode 100644 index 0000000..4b400f4 --- /dev/null +++ b/layouts/_default/single.html @@ -0,0 +1,37 @@ +<!DOCTYPE html> +<html lang=""> + +<head> + {{ partial "head.html" . }} +</head> + +<body> + <div class="container"> + {{ partial "header.html" . }} + <div class="content"> + <div class="posts"> + <div class="post"> + <h2 class="post-title"><a href="{{ .Permalink }}">{{ .Title }}</a></h2> + <span class="post-date">{{ .Date.Format "Jan 2, 2006" }}</span> + <div class="post-content"> + {{ .Content }} + </div> + </div> + </div> + </div> + {{ partial "footer.html" . }} + </div> + <script src="{{ .Site.BaseUrl }}/js/slim.js"></script> + <script> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + + ga('create', 'UA-58516870-1', 'auto'); + ga('send', 'pageview'); + +</script> +</body> + +</html> diff --git a/layouts/index.html b/layouts/index.html new file mode 100644 index 0000000..1e59e69 --- /dev/null +++ b/layouts/index.html @@ -0,0 +1,37 @@ +<!DOCTYPE html> +<html lang=""> + +<head> + {{ partial "head.html" . }} +</head> + +<body> + <div class="container"> + {{ partial "header.html" . }} + <div class="content"> + <div class="posts"> + + {{ range .Data.Pages }} + <div class="post"> + <h2 class="post-title"><a href="{{ .Permalink }}">{{ .Title }}</a></h2> + <span class="post-date">{{ .Date.Format "Jan 2, 2006" }}</span> + </div> + {{ end }} + </div> + </div> + {{ partial "footer.html" . }} + </div> + <script src="{{ .Site.BaseUrl }}/js/slim.js"></script> + <script> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + + ga('create', 'UA-58516870-1', 'auto'); + ga('send', 'pageview'); + +</script> +</body> + +</html> diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html new file mode 100644 index 0000000..b73607f --- /dev/null +++ b/layouts/partials/footer.html @@ -0,0 +1,3 @@ + <footer> + <p>Powered by <a href="http://gohugo.io">Hugo</a>. This theme—Slim—is open sourced on <a href="https://github.com/zhe/hugo-theme-slim">Github</a>.</p> + </footer> diff --git a/layouts/partials/head.html b/layouts/partials/head.html new file mode 100644 index 0000000..9be08bb --- /dev/null +++ b/layouts/partials/head.html @@ -0,0 +1,15 @@ +<meta http-equiv="content-type" content="text/html; charset=utf-8"> +<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> +<title> {{ .Title }} · {{ .Site.Title }} </title> + +<!-- CSS --> +<link rel="stylesheet" href="{{ .Site.BaseUrl }}/css/normalize.css"> +<link rel="stylesheet" href="{{ .Site.BaseUrl }}/css/slim.css"> +<link href='http://fonts.useso.com/css?family=Open+Sans:400,700&subset=latin,latin-ext' rel='stylesheet' type='text/css'> + +<!-- Icons --> +<link rel="apple-touch-icon-precomposed" sizes="144x144" href="/apple-touch-icon-144-precomposed.png"> +<link rel="shortcut icon" href="/favicon.ico"> + +<!-- RSS --> +<link href="{{ .RSSlink }}" rel="alternate" type="application/rss+xml" title="{{ .Site.Title }}" /> diff --git a/layouts/partials/header.html b/layouts/partials/header.html new file mode 100644 index 0000000..e198f0a --- /dev/null +++ b/layouts/partials/header.html @@ -0,0 +1,14 @@ +<div class="header"> + <h1 class="site-title"><a href="{{ .Site.BaseUrl }}">Zhe Zhang</a></h1> + <p class="site-tagline">A personal site made in Shanghai.</p> + <div class="nav"> + <a class="nav-btn" href="#"> + <span class="ci ci-burger"></span> + </a> + <ul class="nav-list"> + <li><a href="https://github.com/zhe">Github</a></li> + <li><a href="https://twitter.com/neomana">Twitter</a></li> + <li><a href="http://linkedin.com/in/zhangzhe">LinkedIn</a></li> + </ul> + </div> +</div> diff --git a/static/css/normalize.css b/static/css/normalize.css new file mode 100644 index 0000000..5e5e3c8 --- /dev/null +++ b/static/css/normalize.css @@ -0,0 +1,424 @@ +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS and IE text size adjust after device 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, +menu, +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/10/11, Safari, and Firefox < 22. + */ + +[hidden], +template { + display: none; +} + +/* Links + ========================================================================== */ + +/** + * Remove the gray background color from active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * Improve readability of focused elements when they are also in an + * active/hover state. + */ + +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 { + 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. + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + box-sizing: content-box; /* 2 */ +} + +/** + * 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/static/css/slim.css b/static/css/slim.css new file mode 100644 index 0000000..79903b1 --- /dev/null +++ b/static/css/slim.css @@ -0,0 +1,322 @@ +body { + font-family: Merriweather, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', Serif; + font-size: 100%; + line-height: 1.65; + letter-spacing: 0.01rem; +} +a { + color: #0074d9; + text-decoration: none; +} +ahover, +afocus { + text-decoration: underline; +} +h1, +h2, +h3, +h4, +h5, +h6 { + margin-bottom: 0.5rem; + font-weight: bold; + line-height: 1.25; + color: #333; + margin-top: 1rem; + margin-bottom: 0.5rem; +} +h1 { + font-size: 2rem; +} +h2 { + font-size: 1.5rem; +} +h3 { + font-size: 1.25rem; +} +h4, +h5, +h6 { + font-size: 1rem; +} +p, +ul, +ol, +dl { + margin-top: 0; + margin-bottom: 1rem; +} +strong { + color: #303030; +} +dt { + font-weight: bold; +} +dd { + margin-bottom: 0.5rem; +} +hr { + border: 0; + border-top: 1px solid rgba(0,0,0,0.2); + display: block; + width: 150px; + margin: 1.5rem 0; +} +abbr { + font-size: 85%; + font-weight: bold; + color: #555; + text-transform: uppercase; +} +abbr[title] { + cursor: help; + border-bottom: 1px dotted #e5e5e5; +} +code { + font-family: Monaco, Courier, monospace; + padding: 0.25em 0.5em; + color: #bf616a; + background-color: #f9f9f9; + border-radius: 3px; + font-size: 0.9rem; +} +pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + padding: 1rem; + line-height: 1.4; + white-space: pre; + white-space: pre-wrap; + word-break: break-all; + word-wrap: break-word; + background-color: #f9f9f9; +} +pre code { + font-family: Menlo, Monaco, Courier, monospace; + padding: 0; + font-size: 1rem; + color: rgba(0,0,0,0.7); + background-color: transparent; +} +blockquote { + padding: 0.5rem 1rem; + margin: 0.8rem 0 0.8rem -1.5rem; + color: #7a7a7a; + border-left: 0.3rem solid #e5e5e5; +} +blockquote p:last-child { + margin-bottom: 0; +} +@media (min-width: 30rem) { + blockquote { + padding-right: 5rem; + padding-left: 1.25rem; + } +} +img { + display: block; + margin: 0 0 1rem; + border-radius: 5px; + max-width: 100%; +} +/* Tables */ +table { + margin-bottom: 1rem; + width: 100%; + border: 1px solid #e5e5e5; + border-collapse: collapse; +} +td, +th { + padding: 0.25rem 0.5rem; + border: 1px solid #e5e5e5; +} +tbody tr:nth-child(odd) td, +tbody tr:nth-child(odd) th { + background-color: #f9f9f9; +} +.container { + *zoom: 1; + width: auto; + max-width: 700px; + float: none; + display: block; + margin-right: auto; + margin-left: auto; + padding-left: 0; + padding-right: 0; +} +.container:before, +.container:after { + content: ''; + display: table; +} +.container:after { + clear: both; +} +.header { + position: relative; + margin: 3rem auto; +} +.site-title { + font-size: 1.5rem; +} +.site-title a { + color: #333; +} +.nav { + position: absolute; + top: 0; + left: -70px; + text-align: right; +} +.nav-btn { + display: inline-block; + line-height: 16px; +} +.nav-btn.is-on .ci-burger { + background: transparent; +} +.nav-btn.is-on .ci-burger::before { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + top: 0; +} +.nav-btn.is-on .ci-burger::after { + -webkit-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); + bottom: 0; +} +.nav-btn.is-on + .nav-list { + opacity: 1; +} +.nav-list { + list-style: none; + font-size: 0.8rem; + margin-top: 1rem; + padding: 0; + opacity: 0; + -webkit-transition: all 0.2s; + transition: all 0.2s; +} +.ci { + box-sizing: border-box; + display: inline-block; + font-size: inherit; + font-style: normal; + font-weight: normal; + line-height: 1; + position: relative; + vertical-align: top; +} +.ci::before, +.ci::after { + content: ''; + display: block; + position: absolute; + box-sizing: inherit; +} +.ci-burger { + width: 16px; + height: 3px; + top: 7px; + left: 0; + background: #333; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} +.ci-burger::after, +.ci-burger::before { + width: 100%; + height: 3px; + background: #333; + left: 0; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} +.ci-burger::before { + top: -6px; +} +.ci-burger::after { + bottom: -6px; +} +.content { + margin-bottom: 7rem; +} +.post { + position: relative; + margin-bottom: 2rem; +} +.post-title::after { + content: ''; + display: block; + border-top: 1px solid #ccc; + width: 100%; + position: absolute; + top: 30px; + left: -30px; + z-index: -1; +} +.post-title a { + color: #333; + background: #fff; + line-height: 60px; + background: #fff; + position: relative; + padding: 0 14px; + margin-left: -14px; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} +.post-title a::after, +.post-title a::before { + content: ''; + position: absolute; + border: 3px solid transparent; + top: 13px; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} +.post-title a::before { + left: -23px; + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); +} +.post-title a::after { + -webkit-transform: rotate(225deg); + -ms-transform: rotate(225deg); + transform: rotate(225deg); + right: -23px; +} +.post-title a:hover::before { + border-top-color: #ccc; + border-right-color: #ccc; + left: -3px; +} +.post-title a:hover::after { + border-top-color: #ccc; + border-right-color: #ccc; + right: -3px; +} +.post-date { + color: #ccc; + font-size: 14px; + position: absolute; + top: 45px; +} +.post-content { + margin: 2rem auto; +} +footer { + color: #ccc; + font-size: 14px; + text-align: center; + margin: 2rem auto 1rem; +} +footer a { + color: #666; +} diff --git a/static/js/slim.js b/static/js/slim.js new file mode 100644 index 0000000..8514e38 --- /dev/null +++ b/static/js/slim.js @@ -0,0 +1,4 @@ +document.querySelector('.nav-btn').onclick = function(e) { + e.preventDefault(); + this.classList.toggle('is-on'); +}; diff --git a/theme.toml b/theme.toml new file mode 100644 index 0000000..a843a27 --- /dev/null +++ b/theme.toml @@ -0,0 +1,6 @@ +author = "Zhe Zhang" +description = "A slim minimal theme for Hugo." +license = "MIT" +name = "Slim" +source_repo = "" +tags = ["minimal", "clean", "neat"] |