cosy-jekyll 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/License +21 -0
- data/README.md +59 -0
- data/_includes/buy-me-coffee.html +6 -0
- data/_includes/feed-footer.html +1 -0
- data/_includes/footer.html +68 -0
- data/_includes/gallery +21 -0
- data/_includes/gitalk.html +4 -0
- data/_includes/head.html +56 -0
- data/_includes/header.html +42 -0
- data/_includes/pagination.html +66 -0
- data/_includes/read-more.html +11 -0
- data/_layouts/home.html +11 -0
- data/_layouts/page.html +16 -0
- data/_layouts/post.html +26 -0
- data/_sass/_404.scss +215 -0
- data/_sass/_animations.scss +327 -0
- data/_sass/_coderay.scss +66 -0
- data/_sass/_elements.scss +156 -0
- data/_sass/_gitalk.scss +1186 -0
- data/_sass/_grid.scss +47 -0
- data/_sass/_mixins.scss +396 -0
- data/_sass/_page.scss +634 -0
- data/_sass/_reset.scss +156 -0
- data/_sass/_rouge.scss +74 -0
- data/_sass/_site.scss +56 -0
- data/_sass/_typography.scss +125 -0
- data/_sass/_variables.scss +45 -0
- metadata +119 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: bdcc51274e4c3b623b8c07e8023545e28f80f49d6fa586a76ae34a5342be05db
|
4
|
+
data.tar.gz: d3bcd3cff2483a8a4bcc7f7e55c1b76a688261900f6c190e6d72f859c64d0d7f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 4b70dbe5fd03a4aef00bf0157ea4b3c28fd854576e0c59d55fd5300c87b4cd6bbbdb10b441416e55ff88772bb6a7edcc515ac5c02babbbf980bbbc9264f6e3bf
|
7
|
+
data.tar.gz: 0e5b7b85ae9284de930763a2bdc499e8abdc3579de6082e87866eccb0daeaec06bca85773c387773f8c8a817390182fe4120709a4e94cdd7e50e847a5032afb6
|
data/License
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) [2017] [Tw93]
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
## [tw93.github.io](http://tw93.github.io/)
|
2
|
+
|
3
|
+
- This is Tw93's front-end technology blog.
|
4
|
+
- Commonly used to record learning and research front-end technology.
|
5
|
+
- Concerned about the front-end new technology and new thinking.
|
6
|
+
- The blog theme named [cosy-jekyll](https://rubygems.org/gems/cosy-jekyll) is created by [Tw93](http://tw93.github.io/about/).
|
7
|
+
|
8
|
+
## [cosy-jekyll](https://rubygems.org/gems/cosy-jekyll) theme
|
9
|
+
|
10
|
+
- cosy-jekyll theme is a responsive blog template providing a good reading experience.
|
11
|
+
- **No jQuery**, No other redundant resources.
|
12
|
+
- Modern and minimal design, **More concise and Faster** than other jekyll theme.
|
13
|
+
- **Responsive templates for post, page**,Looks great on mobile, tablet, and desktop devices.
|
14
|
+
- **Loading resources selectively on different platforms.**
|
15
|
+
- **Support Lazyload.**
|
16
|
+
- Compress JavaScript and CSS.
|
17
|
+
- By using SVG and Canvas Makes this blog more geeks.
|
18
|
+
- When running in PC,It will show a QRcode that you can read on mobile.
|
19
|
+
- When the picture in articles is **too complicated to see it clearly,you can zoom it in full-screen.** .
|
20
|
+
- Funny [custom 404 page](http://tw93.github.io/err),You will like it.
|
21
|
+
- **More suitable for China**:
|
22
|
+
|
23
|
+
- Dropping Google webfont, using proxy webfont.
|
24
|
+
- Delay loading of resources that are not immediately required.
|
25
|
+
- When Discus failed to load, It will be a good suggestion.
|
26
|
+
- Add Buy Me A Coffee by using WeChat payment.
|
27
|
+
|
28
|
+
## [PC Preview](http://tw93.github.io/)
|
29
|
+
|
30
|
+

|
31
|
+
|
32
|
+
## H5 Preview
|
33
|
+
|
34
|
+
<img src="http://ww1.sinaimg.cn/large/0060lm7Tgy1fc8ex6yyh3j30xp1iy0z1.jpg" width="290"/><img src="http://ww3.sinaimg.cn/large/0060lm7Tgy1fc8eyalu16j30xp1iyq7g.jpg" width="290"/><img src="http://ww3.sinaimg.cn/large/0060lm7Tgy1fc8ex5vn9dj30xp1iyafo.jpg" width="290"/>
|
35
|
+
|
36
|
+
## QR code
|
37
|
+
|
38
|
+

|
39
|
+
|
40
|
+
## How To Use
|
41
|
+
|
42
|
+
1. [Fork the repo](https://github.com/tw93/tw93.github.io)
|
43
|
+
2. Clone down the repo with `$ git clone git@github.com:username/reponame.git`
|
44
|
+
3. Install bundler with `$ gem install bundler`
|
45
|
+
4. Install gems with `$ bundle install`
|
46
|
+
5. Run Jekyll with `$ npm run dev`
|
47
|
+
6. Begin hacking for your project,You need modify `about.md` and `_config.yml`
|
48
|
+
7. For more details, read [documentation](http://jekyllrb.com/)
|
49
|
+
|
50
|
+
## Support
|
51
|
+
|
52
|
+
- **Feel free to fork. I'll Appreciate it if you keep the Author & Github link at footer**.
|
53
|
+
- Give it **a Star** if you like, fork or just clone to use.
|
54
|
+
- Having a problem getting something to work or want to know why I setup something in a certain way? [File a GitHub Issue](https://github.com/tw93/tw93.github.io/issues/new).
|
55
|
+
- If you make something cool with this theme feel free to let me know.
|
56
|
+
|
57
|
+
## License
|
58
|
+
|
59
|
+
- The theme is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
@@ -0,0 +1,6 @@
|
|
1
|
+
{% if site.showBuyCoffee != false %}
|
2
|
+
<div class="coffee">
|
3
|
+
<div class="buy-me-coffee" id="J_buy-me-coffee" onclick="document.getElementById('J_my_pay_image').classList.toggle('active');this.classList.toggle('active');">Buy Me a Coffee !</div>
|
4
|
+
<img data-src="{{ site.payImage }}" class="my-pay-img lazyload" id="J_my_pay_image">
|
5
|
+
</div>
|
6
|
+
{% endif %}
|
@@ -0,0 +1 @@
|
|
1
|
+
<p><a href="{{ site.url }}{{ post.url }}">{{ post.title | xml_escape }}</a> was originally published by {{ site.owner.name }} at <a href="{{ site.url }}">{{ site.title }}</a> on {{ post.date | date: "%B %d, %Y" }}.</p>
|
@@ -0,0 +1,68 @@
|
|
1
|
+
<div class="footer-wrapper">
|
2
|
+
<footer role="contentinfo">
|
3
|
+
© {{ site.time | date: '%Y' }} Using <a href="https://github.com/tw93/tw93.github.io" rel="nofollow" target="_blank" class="need_dotted">cosy-jekyll theme</a> by Tw93.
|
4
|
+
</footer>
|
5
|
+
</div>
|
6
|
+
|
7
|
+
<script type="text/javascript" src="{{ site.url }}/js/index.min.js"></script>
|
8
|
+
|
9
|
+
{% if site.google_analytics %}
|
10
|
+
<script type="text/javascript">
|
11
|
+
setTimeout(function () {
|
12
|
+
(function (i, s, o, g, r, a, m) {
|
13
|
+
i['GoogleAnalyticsObject'] = r;
|
14
|
+
i[r] = i[r] || function () {
|
15
|
+
(i[r].q = i[r].q || []).push(arguments)
|
16
|
+
}, i[r].l = 1 * new Date();
|
17
|
+
a = s.createElement(o),
|
18
|
+
m = s.getElementsByTagName(o)[0];
|
19
|
+
a.async = 1;
|
20
|
+
a.src = g;
|
21
|
+
m.parentNode.insertBefore(a, m)
|
22
|
+
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
|
23
|
+
|
24
|
+
ga('create', '{{ site.google_analytics }}', 'auto');
|
25
|
+
ga('require', 'linkid', 'linkid.js');
|
26
|
+
ga('send', 'pageview');
|
27
|
+
}, 3000);
|
28
|
+
</script>
|
29
|
+
{% endif %}
|
30
|
+
|
31
|
+
{% if page.comments != false %}
|
32
|
+
<script type="text/javascript">
|
33
|
+
setTimeout(function(){
|
34
|
+
new Gitalk({
|
35
|
+
clientID: 'ca11229a5275e8e1c2fd',
|
36
|
+
clientSecret: '61557a125b1b9c0db677239575f816f64114845f',
|
37
|
+
repo: 'tw93.github.io',
|
38
|
+
owner: 'tw93',
|
39
|
+
admin: 'tw93',
|
40
|
+
id: md5(location.pathname),
|
41
|
+
distractionFreeMode: false
|
42
|
+
}).render('gitalk-container');
|
43
|
+
},300)
|
44
|
+
</script>
|
45
|
+
{% endif %}
|
46
|
+
|
47
|
+
{% if page.url=="/" %}
|
48
|
+
<script>
|
49
|
+
function hereDoc(f) {
|
50
|
+
return f.toString().replace(/^[^\/]+\/\*!?\s?/, '').replace(/\*\/[^\/]+$/, '');
|
51
|
+
}
|
52
|
+
var string = hereDoc(function () {/*
|
53
|
+
|
54
|
+
|
55
|
+
_ ___ _____ _ _
|
56
|
+
| | |_ | / ___| (_) | |
|
57
|
+
| | ___ __ _ _ __ _ __ | | __ ___ ____ _\ `--. ___ _ __ _ _ __ | |_
|
58
|
+
| | / _ \/ _` | '__| '_ \ | |/ _` \ \ / / _` |`--. \/ __| '__| | '_ \| __|
|
59
|
+
| |___| __/ (_| | | | | | | /\__/ / (_| |\ V / (_| /\__/ / (__| | | | |_) | |_
|
60
|
+
\_____/\___|\__,_|_| |_| |_| \____/ \__,_| \_/ \__,_\____/ \___|_| |_| .__/ \__|
|
61
|
+
|
62
|
+
|
63
|
+
This is Tw93's front-end technology blog, Commonly used to record learning and research front-end technology, Concerned about the front-end new technology and new thinking.
|
64
|
+
*/
|
65
|
+
});
|
66
|
+
console.log(string);
|
67
|
+
</script>
|
68
|
+
{% endif %}
|
data/_includes/gallery
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
{% assign images = include.images | split:" " %}
|
2
|
+
{% assign caption = include.caption %}
|
3
|
+
{% assign cols = include.cols %}
|
4
|
+
|
5
|
+
{% case cols %}
|
6
|
+
{% when 1 %}
|
7
|
+
{% assign class = "" %}
|
8
|
+
{% when 2 %}
|
9
|
+
{% assign class = "half" %}
|
10
|
+
{% when 3 %}
|
11
|
+
{% assign class = "third" %}
|
12
|
+
{% else %}
|
13
|
+
{% assign class = "" %}
|
14
|
+
{% endcase %}
|
15
|
+
|
16
|
+
<figure {% if class != "" %}class="{{ class }}"{% endif %}>
|
17
|
+
{% for image in images %}
|
18
|
+
<a href="{{ image }}"><img src="{{ image }}" alt=""></a>
|
19
|
+
{% endfor %}
|
20
|
+
<figcaption>{{ caption }}</figcaption>
|
21
|
+
</figure>
|
data/_includes/head.html
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
<head>
|
2
|
+
<meta charset="utf-8">
|
3
|
+
<title>{% if page.layout =='post' or page.hideHomeActive or page.is404 %}{{ page.title }} - {% endif %}{{ site.title }}</title>
|
4
|
+
<meta name="description"
|
5
|
+
content="{{ site.description }}{% if page.categories %}{{ page.categories }}{% endif %}{% if page.summary %}{{ page.summary }}{% endif %}">
|
6
|
+
{% if page.tags %}
|
7
|
+
<meta name="keywords" content="{{ page.tags | join: ', ' }}">
|
8
|
+
{% endif %}
|
9
|
+
<!-- Open Graph -->
|
10
|
+
<meta property="og:locale" content="{{ site.locale }}">
|
11
|
+
<meta property="og:type" content="article">
|
12
|
+
<meta property="og:title" content="{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}">
|
13
|
+
<meta property="og:description"
|
14
|
+
content="{% if page.description %}{{ page.description }}{% else %}{{ site.description }}{% endif %}">
|
15
|
+
<meta property="og:url" content="{{ site.url }}{{ page.url }}">
|
16
|
+
<meta property="og:site_name" content="{{ site.title }}">
|
17
|
+
|
18
|
+
{% if site.baidu_verify %}
|
19
|
+
<meta name="baidu-site-verification" content="{{site.baidu_verify}}"/>
|
20
|
+
{% endif %}
|
21
|
+
|
22
|
+
{% if site.google_verify %}
|
23
|
+
<meta name="google-site-verification" content="{{ site.google_verify }}">
|
24
|
+
{% endif %}
|
25
|
+
|
26
|
+
{% if page.image.feature %}
|
27
|
+
<meta property="og:image" content="{{ site.url }}/images/{{ page.image.feature }}">
|
28
|
+
{% else %}
|
29
|
+
<meta property="og:image"
|
30
|
+
content="{% if page.image.thumb %}{{ site.url }}/images/{{ page.image.thumb }}{% else %}{{ site.url }}/images/{{ site.logo }}{% endif %}">
|
31
|
+
{% endif %}
|
32
|
+
|
33
|
+
{% capture canonical %}{{ site.url }}{% if site.permalink contains '.html' %}{{ page.url }}{% else %}{{ page.url |
|
34
|
+
remove:'index.html' | strip_slash }}{% endif %}{% endcapture %}
|
35
|
+
<link rel="canonical" href="{{ canonical }}">
|
36
|
+
<link href="{{ site.url }}/feed.xml" type="application/atom+xml" rel="alternate" title="{{ site.title }} Feed">
|
37
|
+
|
38
|
+
<!-- http://t.co/dKP3o1e -->
|
39
|
+
<meta name="HandheldFriendly" content="True">
|
40
|
+
<meta name="MobileOptimized" content="320">
|
41
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no"/>
|
42
|
+
|
43
|
+
<link rel="stylesheet" href="{{ site.url }}/css/index.css">
|
44
|
+
|
45
|
+
<meta http-equiv="cleartype" content="on">
|
46
|
+
|
47
|
+
<link rel="shortcut icon" href="{{ site.url }}/favicon.ico">
|
48
|
+
|
49
|
+
{% if page.layout == "post" %}
|
50
|
+
<script src="//gw.alipayobjects.com/os/rmsportal/PIYOQOcFoeIvZLKgqukk.js" async></script>
|
51
|
+
{% endif %}
|
52
|
+
|
53
|
+
{% if page.comments != false %}
|
54
|
+
<script src="//gw.alipayobjects.com/os/rmsportal/hLaEIutAxSUpcpcRhdtd.js" async></script>
|
55
|
+
{% endif %}
|
56
|
+
</head>
|
@@ -0,0 +1,42 @@
|
|
1
|
+
<!--[if lt IE 10]>
|
2
|
+
<div class="upgrade"><strong><a href="http://whatbrowser.org/" target="_blank">Your browser is quite old!</strong> Why
|
3
|
+
not upgrade to a different browser to better enjoy this site?</a></div>
|
4
|
+
<![endif]-->
|
5
|
+
|
6
|
+
{% assign homeActive = 'active' %}
|
7
|
+
{% if page.hideHomeActive %}
|
8
|
+
{% assign homeActive = nil %}
|
9
|
+
{% endif %}
|
10
|
+
<div class="header-menu" id="J_header">
|
11
|
+
<ul class="header-item-container">
|
12
|
+
<li class="header-item-title {{homeActive}}">
|
13
|
+
<a href="{{site.url}}/" class="title"> {{ site.title }}</a>
|
14
|
+
</li>
|
15
|
+
{% for menu in site.menu reversed %}
|
16
|
+
|
17
|
+
{% assign class = nil %}
|
18
|
+
{% if (page.url contains menu.url and menu.url != '/') %}
|
19
|
+
{% assign class = 'active' %}
|
20
|
+
{% endif %}
|
21
|
+
|
22
|
+
{% if menu.url contains 'http://' or menu.url contains 'https://' %}
|
23
|
+
<li class="header-item {{class}}"><a href="{{menu.url}}" target="_blank">{{ menu.title }}</a></li>
|
24
|
+
{% else %}
|
25
|
+
<li class="header-item {{class}}"><a href="{{site.url}}{{menu.url}}">{{ menu.title }}</a></li>
|
26
|
+
{% endif %}
|
27
|
+
{% endfor %}
|
28
|
+
</ul>
|
29
|
+
</div>
|
30
|
+
|
31
|
+
<div class="entry-header">
|
32
|
+
<svg width="100%" height="200" xmlns="http://www.w3.org/2000/svg"
|
33
|
+
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
|
34
|
+
<path id="svg-title-path">
|
35
|
+
<animate attributeName="d" from="m0,110 h0" to="m0,110 h1100" dur="2s" repeatCount="1" fill="freeze" begin="0s" />
|
36
|
+
</path>
|
37
|
+
<text font-size="36" fill='#ffffff' x="50%" y="50%" text-anchor="middle" word-spacing="4" letter-spacing="1">
|
38
|
+
<textPath xlink:href="#svg-title-path">{{ page.title }}</textPath>
|
39
|
+
</text>
|
40
|
+
</svg>
|
41
|
+
<canvas id="J_firework_canvas"></canvas>
|
42
|
+
</div>
|
@@ -0,0 +1,66 @@
|
|
1
|
+
{% if paginator.total_pages > 1 %}
|
2
|
+
<div class="pagination">
|
3
|
+
<ul class="inline-list">
|
4
|
+
{% comment %} Link for previous page {% endcomment %}
|
5
|
+
{% if paginator.previous_page %}
|
6
|
+
{% if paginator.previous_page == 1 %}
|
7
|
+
<li><a href="{{ site.url }}/" class="btn">Previous</a></li>
|
8
|
+
{% else %}
|
9
|
+
<li><a href="{{ site.url }}/page{{ paginator.previous_page }}/" class="btn">Previous</a></li>
|
10
|
+
{% endif %}
|
11
|
+
{% endif %}
|
12
|
+
|
13
|
+
{% comment %} First page {% endcomment %}
|
14
|
+
{% if paginator.page == 1 %}
|
15
|
+
<li><strong class="current-page">1</strong></li>
|
16
|
+
{% else %}
|
17
|
+
<li><a href="{{ site.url }}/">1</a></li>
|
18
|
+
{% endif %}
|
19
|
+
|
20
|
+
{% assign page_start = 2 %}
|
21
|
+
{% if paginator.page > 4 %}
|
22
|
+
{% assign page_start = paginator.page | minus: 2 %}
|
23
|
+
{% comment %} Ellipsis for truncated links {% endcomment %}
|
24
|
+
<li>…</li>
|
25
|
+
{% endif %}
|
26
|
+
|
27
|
+
{% assign page_end = paginator.total_pages | minus: 1 %}
|
28
|
+
{% assign pages_to_end = paginator.total_pages | minus: paginator.page %}
|
29
|
+
{% if pages_to_end > 4 %}
|
30
|
+
{% assign page_end = paginator.page | plus: 2 %}
|
31
|
+
{% endif %}
|
32
|
+
|
33
|
+
{% for index in (page_start..page_end) %}
|
34
|
+
{% if index == paginator.page %}
|
35
|
+
<li><strong class="current-page">{{index}}</strong></li>
|
36
|
+
{% else %}
|
37
|
+
{% comment %} Distance from current page and this link {% endcomment %}
|
38
|
+
{% assign dist = paginator.page | minus: index %}
|
39
|
+
{% if dist < 0 %}
|
40
|
+
{% comment %} Distance must be a positive value {% endcomment %}
|
41
|
+
{% assign dist = 0 | minus: dist %}
|
42
|
+
{% endif %}
|
43
|
+
<li><a href="{{ site.url }}/page{{ index }}/">{{index}}</a></li>
|
44
|
+
{% endif %}
|
45
|
+
{% endfor %}
|
46
|
+
|
47
|
+
{% comment %} Ellipsis for truncated links {% endcomment %}
|
48
|
+
{% if pages_to_end > 3 %}
|
49
|
+
<li>…</li>
|
50
|
+
{% endif %}
|
51
|
+
|
52
|
+
{% if paginator.page == paginator.total_pages %}
|
53
|
+
<li><strong class="current-page">{{ paginator.page }}</strong></li>
|
54
|
+
{% else %}
|
55
|
+
<li><a href="{{ site.url }}/page{{ paginator.total_pages }}/">{{ paginator.total_pages }}</a></li>
|
56
|
+
{% endif %}
|
57
|
+
|
58
|
+
{% comment %}
|
59
|
+
Link next page
|
60
|
+
{% endcomment %}
|
61
|
+
{% if paginator.next_page %}
|
62
|
+
<li><a href="{{ site.url }}/page{{ paginator.next_page }}/" class="btn">Next</a></li>
|
63
|
+
{% endif %}
|
64
|
+
</ul>
|
65
|
+
</div>
|
66
|
+
{% endif %}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
{% if page.previous.url and site.related_posts.size > 0 and page.previous.hide !=true%}
|
2
|
+
<a class="read-more" href="{{ site.url }}{{ page.previous.url }}" title="{{ page.previous.url.title }}">
|
3
|
+
<div class="read-more-header">
|
4
|
+
<div class="read-more-btn">Read More</div>
|
5
|
+
</div>
|
6
|
+
<div class="read-more-content">
|
7
|
+
<h3>{{ page.previous.title}}</h3>
|
8
|
+
<p>【{{ page.previous.date | date: "%Y-%m-%d" }}】{% if page.previous.summary %}{{ page.previous.summary }}{% endif %}</p>
|
9
|
+
</div>
|
10
|
+
</a>
|
11
|
+
{% endif %}
|
data/_layouts/home.html
ADDED
data/_layouts/page.html
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
<html class="no-js" lang="{{site.lang}}">
|
3
|
+
{% include head.html %}
|
4
|
+
<body id="page">
|
5
|
+
{% include header.html %}
|
6
|
+
<div id="main" role="main">
|
7
|
+
<article class="hentry">
|
8
|
+
<div class="entry-content">
|
9
|
+
{{ content }}
|
10
|
+
</div>
|
11
|
+
{% include gitalk.html %}
|
12
|
+
</article>
|
13
|
+
</div>
|
14
|
+
{% include footer.html %}
|
15
|
+
</body>
|
16
|
+
</html>
|
data/_layouts/post.html
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
<html class="no-js" lang="{{site.lang}}">
|
3
|
+
{% include head.html %}
|
4
|
+
<body id="post">
|
5
|
+
{% include header.html %}
|
6
|
+
<div id="main" role="main">
|
7
|
+
<article class="hentry">
|
8
|
+
<div class="entry-content">
|
9
|
+
<h1 class="post-title entry-title">{{ page.title }}</h1>
|
10
|
+
<h4 class="page-info">
|
11
|
+
<span>Categories: {{page.categories}}</span>
|
12
|
+
<time datetime="{{ page.date | date_to_xmlschema }}">{{ page.date | date: "%Y-%m-%d" }}</time>
|
13
|
+
<div class="qr-text" id="J_qr_text">
|
14
|
+
<div id="J_qr_code" class="qr-code" onmouseover="this.title='';"></div>
|
15
|
+
</div>
|
16
|
+
</h4>
|
17
|
+
{{ content }}
|
18
|
+
{% include buy-me-coffee.html %}
|
19
|
+
</div>
|
20
|
+
{% include gitalk.html %}
|
21
|
+
{% include read-more.html %}
|
22
|
+
</article>
|
23
|
+
</div>
|
24
|
+
{% include footer.html %}
|
25
|
+
</body>
|
26
|
+
</html>
|
data/_sass/_404.scss
ADDED
@@ -0,0 +1,215 @@
|
|
1
|
+
|
2
|
+
svg#robot {
|
3
|
+
display: block;
|
4
|
+
position: relative;
|
5
|
+
margin: 3em auto 0em auto;
|
6
|
+
padding: 10px;
|
7
|
+
transform-origin: bottom;
|
8
|
+
transform: rotate(0deg) translate3d(0px, 0px, 0px);
|
9
|
+
animation: move 2s ease infinite;
|
10
|
+
@media #{$medium} {
|
11
|
+
margin: 2.4em auto 0 auto;
|
12
|
+
}
|
13
|
+
}
|
14
|
+
|
15
|
+
@keyframes move {
|
16
|
+
0%, 100% {
|
17
|
+
transform: rotate(0deg) translate3d(0px, 0px, 0px);
|
18
|
+
}
|
19
|
+
25% {
|
20
|
+
transform: rotate(5deg) translate3d(5px, 5px, 0px);
|
21
|
+
}
|
22
|
+
75% {
|
23
|
+
transform: rotate(-6deg) translate3d(-5px, 5px, 0px);
|
24
|
+
}
|
25
|
+
}
|
26
|
+
|
27
|
+
g#head {
|
28
|
+
transform: rotate(0deg) translate3d(0px, 0px, 0px);
|
29
|
+
transform-origin: bottom center;
|
30
|
+
animation: head 1s 1s ease infinite;
|
31
|
+
#leftAntenna, #rightAntenna {
|
32
|
+
> ellipse {
|
33
|
+
animation: color 350ms linear infinite;
|
34
|
+
}
|
35
|
+
}
|
36
|
+
}
|
37
|
+
|
38
|
+
@keyframes head {
|
39
|
+
0%, 46%, 50%, 55%, 100% {
|
40
|
+
transform: rotate(0deg) translate3d(0px, 0px, 0px);
|
41
|
+
}
|
42
|
+
49% {
|
43
|
+
transform: rotate(20deg) translate3d(0px, 0px, 0px);
|
44
|
+
}
|
45
|
+
51% {
|
46
|
+
transform: rotate(-10deg) translate3d(0px, 0px, 0px);
|
47
|
+
}
|
48
|
+
}
|
49
|
+
|
50
|
+
@keyframes color {
|
51
|
+
0%, 100% {
|
52
|
+
fill: #ccc;
|
53
|
+
}
|
54
|
+
50% {
|
55
|
+
fill: rgb(255, 0, 0);
|
56
|
+
}
|
57
|
+
}
|
58
|
+
|
59
|
+
#upperTorso {
|
60
|
+
transform: rotate(0deg);
|
61
|
+
transform-origin: center;
|
62
|
+
animation: torso 600ms 1s ease infinite;
|
63
|
+
#leftArm {
|
64
|
+
transform: rotate(0deg);
|
65
|
+
transform-origin: 80% 5%;
|
66
|
+
animation: left 1s ease infinite;
|
67
|
+
.forearm {
|
68
|
+
transform: rotate(0deg);
|
69
|
+
transform-origin: 68% 10%;
|
70
|
+
animation: forearm 800ms 1s ease infinite;
|
71
|
+
}
|
72
|
+
}
|
73
|
+
#rightArm {
|
74
|
+
transform: rotate(0deg);
|
75
|
+
transform-origin: 18% 0%;
|
76
|
+
animation: right 1s ease infinite;
|
77
|
+
.forearm {
|
78
|
+
transform: rotate(0deg);
|
79
|
+
transform-origin: 68% 10%;
|
80
|
+
animation: forearm 700ms 1s ease infinite;
|
81
|
+
}
|
82
|
+
}
|
83
|
+
}
|
84
|
+
|
85
|
+
@keyframes torso {
|
86
|
+
40%, 50%, 60% {
|
87
|
+
transform: rotate(0deg);
|
88
|
+
}
|
89
|
+
45% {
|
90
|
+
transform: rotate(5deg);
|
91
|
+
}
|
92
|
+
55% {
|
93
|
+
transform: rotate(-5deg);
|
94
|
+
}
|
95
|
+
}
|
96
|
+
|
97
|
+
@keyframes left {
|
98
|
+
60% {
|
99
|
+
transform: rotate(100deg);
|
100
|
+
}
|
101
|
+
}
|
102
|
+
|
103
|
+
@keyframes right {
|
104
|
+
50% {
|
105
|
+
transform: rotate(-70deg);
|
106
|
+
}
|
107
|
+
}
|
108
|
+
|
109
|
+
@keyframes forearm {
|
110
|
+
0%, 30%, 50%, 70%, 100% {
|
111
|
+
transform: rotate(0deg);
|
112
|
+
}
|
113
|
+
40% {
|
114
|
+
transform: rotate(25deg);
|
115
|
+
}
|
116
|
+
60% {
|
117
|
+
transform: rotate(-25deg);
|
118
|
+
}
|
119
|
+
}
|
120
|
+
|
121
|
+
#lowerTrunk {
|
122
|
+
transform: rotate(0deg);
|
123
|
+
transform-origin: 60% 5%;
|
124
|
+
animation: lowerTrunk 1s ease infinite;
|
125
|
+
}
|
126
|
+
|
127
|
+
@keyframes lowerTrunk {
|
128
|
+
0%, 100% {
|
129
|
+
transform: rotate(0deg) translate3d(0px, 0px, 0px);
|
130
|
+
}
|
131
|
+
25% {
|
132
|
+
transform: rotate(2deg) translate3d(2px, 0px, 0px);
|
133
|
+
}
|
134
|
+
75% {
|
135
|
+
transform: rotate(-2deg) translate3d(-2px, 0px, 0px);
|
136
|
+
}
|
137
|
+
}
|
138
|
+
|
139
|
+
#leftFoot {
|
140
|
+
transform: rotate(0deg);
|
141
|
+
transform-origin: 60% 5%;
|
142
|
+
animation: leftFoot 2s ease infinite;
|
143
|
+
> .lowerLeg {
|
144
|
+
transform: rotate(0deg);
|
145
|
+
transform-origin: 68% 10%;
|
146
|
+
animation: lowerLeg 2s ease infinite;
|
147
|
+
}
|
148
|
+
}
|
149
|
+
|
150
|
+
@keyframes leftFoot {
|
151
|
+
0%, 50% {
|
152
|
+
transform: rotate(0deg);
|
153
|
+
}
|
154
|
+
25% {
|
155
|
+
transform: rotate(70deg);
|
156
|
+
}
|
157
|
+
}
|
158
|
+
|
159
|
+
@keyframes lowerLeg {
|
160
|
+
0%, 50% {
|
161
|
+
transform: rotate(0deg);
|
162
|
+
}
|
163
|
+
8%, 14% {
|
164
|
+
transform: rotate(-15deg);
|
165
|
+
}
|
166
|
+
11%, 18% {
|
167
|
+
transform: rotate(15deg);
|
168
|
+
}
|
169
|
+
}
|
170
|
+
|
171
|
+
#rightFoot {
|
172
|
+
transform: rotate(0deg);
|
173
|
+
transform-origin: 50% 5%;
|
174
|
+
animation: rightFoot 2s ease infinite;
|
175
|
+
> .lowerLeg {
|
176
|
+
transform: rotate(0deg);
|
177
|
+
transform-origin: 68% 10%;
|
178
|
+
animation: lowerLegIz 2s ease infinite;
|
179
|
+
}
|
180
|
+
}
|
181
|
+
|
182
|
+
@keyframes rightFoot {
|
183
|
+
75% {
|
184
|
+
transform: rotate(-60deg);
|
185
|
+
}
|
186
|
+
50%, 100% {
|
187
|
+
transform: rotate(0deg);
|
188
|
+
}
|
189
|
+
}
|
190
|
+
|
191
|
+
@keyframes lowerLegIz {
|
192
|
+
50%, 100% {
|
193
|
+
transform: rotate(0deg);
|
194
|
+
}
|
195
|
+
60%, 70% {
|
196
|
+
transform: rotate(15deg);
|
197
|
+
}
|
198
|
+
65%, 85% {
|
199
|
+
transform: rotate(-15deg);
|
200
|
+
}
|
201
|
+
}
|
202
|
+
|
203
|
+
h1.error-not-found {
|
204
|
+
width: 100%;
|
205
|
+
text-align: center;
|
206
|
+
text-shadow: 0 3px 0px #000, 0 6px 0px #333;
|
207
|
+
color: #f54f59;
|
208
|
+
font-size: 6em;
|
209
|
+
font-weight: 700;
|
210
|
+
margin-bottom: 1.2em;
|
211
|
+
margin-top: 0;
|
212
|
+
@media #{$medium} {
|
213
|
+
margin-bottom: 0.4em;
|
214
|
+
}
|
215
|
+
}
|