jekyll-text-theme 1.4.3 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +7 -6
- data/_data/locale.yml +21 -3
- data/_data/variables.yml +31 -0
- data/_includes/{blog → components}/article-data.html +4 -2
- data/_includes/{info → components}/follow-me.html +1 -1
- data/_includes/{blog → components}/footer.html +1 -1
- data/_includes/components/header.html +42 -0
- data/_includes/{blog → components}/license.html +0 -0
- data/_includes/{blog → components}/tags.html +5 -6
- data/_includes/icon/clear.svg +3 -0
- data/_includes/icon/link.svg +1 -0
- data/_includes/icon/omit.svg +1 -0
- data/_includes/icon/search.svg +3 -0
- data/_includes/icon/{mail.svg → social/mail.svg} +0 -0
- data/_includes/scripts/all.html +244 -0
- data/_includes/scripts/common.html +30 -0
- data/_includes/scripts/data.html +27 -0
- data/_includes/scripts/home.html +26 -0
- data/_includes/scripts/page-post.html +32 -0
- data/_includes/scripts/post.html +183 -0
- data/_includes/scripts/utils.html +180 -0
- data/_includes/snippets/get-lang.html +2 -2
- data/_includes/snippets/get-sources.html +5 -0
- data/_includes/utils/chart.html +17 -0
- data/_includes/utils/comment-disqus.html +0 -3
- data/_includes/utils/comment-gitalk.html +15 -12
- data/_includes/utils/google-analytics.html +6 -8
- data/_includes/utils/mathjax.html +10 -4
- data/_includes/utils/mermaid.html +5 -4
- data/_layouts/all.html +10 -131
- data/_layouts/base.html +38 -0
- data/_layouts/error-404.html +1 -1
- data/_layouts/home.html +81 -68
- data/_layouts/page.html +3 -3
- data/_layouts/post.html +32 -172
- data/_sass/animate/_fade-in-down.scss +10 -0
- data/_sass/animate/_fade-in.scss +8 -0
- data/_sass/colors/{_colors.chocolate.scss → _chocolate.scss} +9 -3
- data/_sass/colors/{_colors.dark.scss → _dark.scss} +10 -3
- data/_sass/colors/{_colors.default.scss → _default.scss} +10 -4
- data/_sass/colors/{_colors.forest.scss → _forest.scss} +9 -3
- data/_sass/colors/{_colors.ocean.scss → _ocean.scss} +9 -3
- data/_sass/colors/{_colors.orange.scss → _orange.scss} +9 -3
- data/_sass/common/_classes.scss +15 -0
- data/_sass/{settings → common}/_highlighting.scss +0 -12
- data/_sass/common/_reset.scss +171 -0
- data/_sass/common/_variables.scss +64 -0
- data/_sass/common/classes/_animation.scss +4 -0
- data/_sass/common/classes/_clearfix.scss +7 -0
- data/_sass/{mixins → common/classes}/_flex.scss +0 -0
- data/_sass/common/classes/_link.scss +161 -0
- data/_sass/common/classes/_media.scss +18 -0
- data/_sass/common/classes/_shadow.scss +14 -0
- data/_sass/common/classes/_shape.scss +19 -0
- data/_sass/common/classes/_space.scss +40 -0
- data/_sass/common/classes/_split-line.scss +24 -0
- data/_sass/common/classes/_transform.scss +4 -0
- data/_sass/common/classes/_transition.scss +4 -0
- data/_sass/common/classes/_user-select.scss +6 -0
- data/_sass/common/components/_button.scss +72 -0
- data/_sass/components/_article.content.extra.scss +41 -0
- data/_sass/components/_article.content.scss +127 -69
- data/_sass/components/_article.data.scss +11 -11
- data/_sass/components/_follow-me.scss +27 -34
- data/_sass/components/_footer.scss +4 -4
- data/_sass/components/_header.scss +35 -22
- data/_sass/components/_license.scss +7 -7
- data/_sass/components/_main.scss +23 -0
- data/_sass/components/_pagination.scss +12 -0
- data/_sass/components/_tags.scss +30 -15
- data/_sass/components/_toc.scss +32 -19
- data/_sass/layout/_all.scss +82 -0
- data/_sass/layout/_default.scss +19 -0
- data/_sass/{blog/_page.error-404.scss → layout/_error-404.scss} +1 -1
- data/_sass/layout/_home.scss +61 -0
- data/_sass/layout/_post.scss +80 -0
- data/assets/css/blog.scss +29 -34
- data/assets/images/logo/logo.svg +1 -1
- metadata +56 -38
- data/_includes/blog/header.html +0 -56
- data/_layouts/blog-base.html +0 -36
- data/_layouts/blog-default.html +0 -7
- data/_sass/base/_animate.scss +0 -19
- data/_sass/base/_base.scss +0 -83
- data/_sass/base/_image&icon.scss +0 -23
- data/_sass/base/_links.scss +0 -73
- data/_sass/base/_text.scss +0 -56
- data/_sass/blog/_layout.base.scss +0 -3
- data/_sass/blog/_layout.default.scss +0 -21
- data/_sass/blog/_layout.post.scss +0 -68
- data/_sass/blog/_page.all.scss +0 -35
- data/_sass/blog/_page.index.scss +0 -50
- data/_sass/components/_wrapper.scss +0 -29
- data/_sass/mixins/_link.scss +0 -67
- data/_sass/mixins/_media.scss +0 -12
- data/_sass/mixins/_prefix.scss +0 -14
- data/_sass/mixins/_shape.scss +0 -19
- data/_sass/settings/_base.scss +0 -12
- data/_sass/settings/_colors.scss +0 -9
- data/_sass/settings/_font.scss +0 -32
@@ -0,0 +1,17 @@
|
|
1
|
+
{%- if site.chart == true or page.chart == true -%}
|
2
|
+
{%- include snippets/get-sources.html -%}
|
3
|
+
{%- assign _sources = __return -%}
|
4
|
+
<script>
|
5
|
+
window.Lazyload.js(['{{ _sources.jquery }}', '{{ _sources.chart }}'], function() {
|
6
|
+
var $canvas = null, $this = null, _ctx = null, _text = '';
|
7
|
+
$('.language-chart').each(function(){
|
8
|
+
$this = $(this);
|
9
|
+
$canvas = $('<canvas></canvas>');
|
10
|
+
_text = $this.text();
|
11
|
+
$this.text('').append($canvas);
|
12
|
+
_ctx = $canvas.get(0).getContext('2d');
|
13
|
+
(_ctx && _text) && (new Chart(_ctx, JSON.parse(_text)) && $this.attr('data-processed', true));
|
14
|
+
});
|
15
|
+
});
|
16
|
+
</script>
|
17
|
+
{%- endif -%}
|
@@ -1,16 +1,13 @@
|
|
1
1
|
{%- if site.disqus.shortname and page.key -%}
|
2
2
|
<div id="disqus_thread"></div>
|
3
3
|
<script>
|
4
|
-
|
5
4
|
/**
|
6
5
|
* RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
|
7
6
|
* LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables*/
|
8
|
-
|
9
7
|
var disqus_config = function () {
|
10
8
|
this.page.url = '{%- include snippets/page-url.html -%}';
|
11
9
|
this.page.identifier = '{{ page.key }}';
|
12
10
|
};
|
13
|
-
|
14
11
|
(function() { // DON'T EDIT BELOW THIS LINE
|
15
12
|
var d = document, s = d.createElement('script');
|
16
13
|
s.src = 'https://{{ site.disqus.shortname }}.disqus.com/embed.js';
|
@@ -1,22 +1,25 @@
|
|
1
1
|
{%- if site.disqus.shortname == nil and site.gitalk.clientID and site.gitalk.clientSecret and site.gitalk.repository and site.gitalk.owner and site.gitalk.admin and page.key -%}
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
2
|
+
{%- include snippets/get-sources.html -%}
|
3
|
+
{%- assign _sources = __return -%}
|
4
|
+
<div id="js-gitalk-container"></div>
|
5
|
+
{%- assign admin = '' -%}
|
6
|
+
{%- for adminId in site.gitalk.admin -%}
|
7
|
+
{%- assign admin = admin | append: ", '" | append: adminId | append: "'" -%}
|
8
|
+
{%- endfor -%}
|
9
|
+
{%- assign last = admin | size | minus: 1 -%}
|
10
|
+
{%- assign admin = admin | slice: 2, last -%}
|
11
|
+
<script>
|
12
|
+
window.Lazyload.css('{{ _sources.gitalk.css }}');
|
13
|
+
window.Lazyload.js('{{ _sources.gitalk.js }}', function() {
|
12
14
|
var gitalk = new Gitalk({
|
13
15
|
clientID: '{{ site.gitalk.clientID }}',
|
14
16
|
clientSecret: '{{ site.gitalk.clientSecret }}',
|
15
17
|
repo: '{{ site.gitalk.repository }}',
|
16
18
|
owner: '{{ site.gitalk.owner }}',
|
17
19
|
admin: [{{ admin }}],
|
18
|
-
|
20
|
+
id: '{{ page.key }}'
|
19
21
|
});
|
20
22
|
gitalk.render('js-gitalk-container');
|
21
|
-
|
23
|
+
});
|
24
|
+
</script>
|
22
25
|
{%- endif -%}
|
@@ -1,13 +1,11 @@
|
|
1
1
|
{%- if site.ga_tracking_id -%}
|
2
|
-
<!-- Google Analytics -->
|
3
2
|
<script>
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
3
|
+
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
4
|
+
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
5
|
+
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
6
|
+
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
8
7
|
|
9
|
-
|
10
|
-
|
8
|
+
ga('create', '{{ site.ga_tracking_id }}', 'auto');
|
9
|
+
ga('send', 'pageview');
|
11
10
|
</script>
|
12
|
-
<!-- End Google Analytics -->
|
13
11
|
{%- endif -%}
|
@@ -1,8 +1,14 @@
|
|
1
1
|
{%- if site.mathjax == true or page.mathjax == true -%}
|
2
|
+
{%- include snippets/get-sources.html -%}
|
3
|
+
{%- assign _sources = __return -%}
|
2
4
|
<script type="text/x-mathjax-config">
|
3
|
-
|
4
|
-
|
5
|
-
|
5
|
+
var _config = { tex2jax: {
|
6
|
+
inlineMath: [['$','$'], ['\\(','\\)']]
|
7
|
+
}};
|
8
|
+
{%- if site.mathjax_autoNumber == true or page.mathjax_autoNumber == true -%}
|
9
|
+
_config.TeX = { equationNumbers: { autoNumber: "all" } };
|
10
|
+
{%- endif -%}
|
11
|
+
MathJax.Hub.Config(_config);
|
6
12
|
</script>
|
7
|
-
<script type="text/javascript"
|
13
|
+
<script type="text/javascript" src="{{ _sources.mathjax }}" async></script>
|
8
14
|
{%- endif -%}
|
@@ -1,9 +1,10 @@
|
|
1
1
|
{%- if site.mermaid == true or page.mermaid == true -%}
|
2
|
-
|
2
|
+
{%- include snippets/get-sources.html -%}
|
3
|
+
{%- assign _sources = __return -%}
|
3
4
|
<script>
|
4
|
-
|
5
|
-
|
6
|
-
|
5
|
+
window.Lazyload.js('{{ _sources.mermaid }}', function() {
|
6
|
+
mermaid.init(undefined, '.language-mermaid');
|
7
|
+
mermaid.initialize({ startOnLoad: true });
|
7
8
|
});
|
8
9
|
</script>
|
9
10
|
{%- endif -%}
|
data/_layouts/all.html
CHANGED
@@ -1,141 +1,20 @@
|
|
1
1
|
---
|
2
|
-
layout:
|
2
|
+
layout: base
|
3
3
|
titles:
|
4
4
|
en: All Posts
|
5
5
|
zh: 归档
|
6
6
|
zh-Hans: 归档
|
7
7
|
zh-Hant: 歸檔
|
8
8
|
---
|
9
|
-
<div class="m-all">
|
9
|
+
<div class="m-all js-all">
|
10
10
|
<div class="main">
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
<div class="m-search-box js-search-box">
|
12
|
+
<div class="icon-search">{%- include icon/search.svg -%}</div>
|
13
|
+
<input type="text" />
|
14
|
+
<div class="icon-clear">{%- include icon/clear.svg -%}</div>
|
15
|
+
</div>
|
16
|
+
{%- include components/tags.html -%}
|
14
17
|
<!--group by year: http://stackoverflow.com/questions/19086284/jekyll-liquid-templating-how-to-group-blog-posts-by-year-->
|
15
|
-
<
|
16
|
-
{%- for post in site.posts -%}
|
17
|
-
{%- assign currentdate = post.date | date: '%Y' -%}
|
18
|
-
{%- if currentdate != date -%}
|
19
|
-
{%- unless forloop.first -%}</ul></section>{%- endunless -%}
|
20
|
-
<section id="{{ post.date | date: "%Y" }}">
|
21
|
-
<h2 class="year-title" id="year-{{ post.date | date: "%Y" }}">{{ currentdate }}</h2>
|
22
|
-
<ul class="year-list">
|
23
|
-
{%- assign date = currentdate -%}
|
24
|
-
{%- endif -%}
|
25
|
-
{%- assign _tags = '' -%}
|
26
|
-
{%- for tag in post.tags -%}
|
27
|
-
{%- assign _tag = tag | strip | url_encode -%}
|
28
|
-
{%- assign _tags = _tags | append: ',' | append: _tag -%}
|
29
|
-
{%- endfor -%}
|
30
|
-
{%- assign last = _tags | size | minus: 1 -%}
|
31
|
-
{%- assign _tags = _tags | slice: 1, last -%}
|
32
|
-
{%- assign __path = post.url -%}
|
33
|
-
{%- include snippets/prepend-baseurl.html -%}
|
34
|
-
{%- assign href = __return -%}
|
35
|
-
{%- assign __locale = site.data.locale.ARTICLE_LIST_DATE_FORMAT -%}
|
36
|
-
{%- include snippets/locale-to-string.html -%}
|
37
|
-
<li class="js-post-block" data-tag="{{ _tags }}">
|
38
|
-
<span class="post-date">{{ post.date | date: __return }}</span>
|
39
|
-
<a class="post-link" href="{{ href }}">{{ post.title }}</a>
|
40
|
-
</li>
|
41
|
-
{%- if forloop.last -%}</ul></section>{%- endif -%}
|
42
|
-
{%- endfor -%}
|
43
|
-
</section>
|
18
|
+
<div class="js-result m-result"></div>
|
44
19
|
</div>
|
45
|
-
</div>
|
46
|
-
{%- include snippets/page-title.html -%}
|
47
|
-
<script type="text/javascript">
|
48
|
-
// function queryString is copied from
|
49
|
-
// http://stackoverflow.com/questions/979975/how-to-get-the-value-from-url-parameter#answer-979995
|
50
|
-
function queryString() {
|
51
|
-
// This function is anonymous, is executed immediately and
|
52
|
-
// the return value is assigned to QueryString!
|
53
|
-
var i = 0,
|
54
|
-
queryObj = {},
|
55
|
-
pair;
|
56
|
-
var queryStr = window.location.search.substring(1);
|
57
|
-
var queryArr = queryStr.split('&');
|
58
|
-
for (i = 0; i < queryArr.length; i++) {
|
59
|
-
pair = queryArr[i].split('=');
|
60
|
-
// If first entry with this name
|
61
|
-
if (typeof queryObj[pair[0]] === 'undefined') {
|
62
|
-
queryObj[pair[0]] = pair[1];
|
63
|
-
// If second entry with this name
|
64
|
-
} else if (typeof queryObj[pair[0]] === 'string') {
|
65
|
-
queryObj[pair[0]] = [queryObj[pair[0]], pair[1]];
|
66
|
-
// If third or later entry with this name
|
67
|
-
} else {
|
68
|
-
queryObj[pair[0]].push(pair[1]);
|
69
|
-
}
|
70
|
-
}
|
71
|
-
return queryObj;
|
72
|
-
}
|
73
|
-
|
74
|
-
$(function() {
|
75
|
-
var $pageHeading = $('.js-page-heading');
|
76
|
-
var $articleTag = $('.js-article-tag');
|
77
|
-
var $tagShowAll = $('.js-tag-show-all');
|
78
|
-
var $postBlock = $('.js-post-block');
|
79
|
-
var $yearSection = $('.js-year-wrapper section');
|
80
|
-
|
81
|
-
window.tagSelect = function(tag) {
|
82
|
-
var i = 0,
|
83
|
-
flag = false,
|
84
|
-
cur, tagStr = '',
|
85
|
-
tags = [],
|
86
|
-
_tag = '',
|
87
|
-
lis = [];
|
88
|
-
if (tag === undefined || tag === '') {
|
89
|
-
$pageHeading.text('{{ __return }}');
|
90
|
-
$tagShowAll.focus();
|
91
|
-
$postBlock.show();
|
92
|
-
} else {
|
93
|
-
tag = tag.trim();
|
94
|
-
// $articleTag.filter('.tag-' + tag).focus();
|
95
|
-
for (i = 0; i < $articleTag.length; i++) {
|
96
|
-
cur = $articleTag.eq(i);
|
97
|
-
_tag = cur.data('tag');
|
98
|
-
if (typeof _tag === 'string' && _tag.trim() === tag) {
|
99
|
-
cur.focus();
|
100
|
-
tagStr = cur.children('span').text();
|
101
|
-
(typeof tagStr === 'string') && (tagStr = tagStr.trim());
|
102
|
-
$pageHeading.text('Tag: ' + tagStr);
|
103
|
-
break;
|
104
|
-
}
|
105
|
-
}
|
106
|
-
$postBlock.each(function() {
|
107
|
-
flag = false;
|
108
|
-
cur = $(this);
|
109
|
-
tags = cur.data('tag').split(',');
|
110
|
-
for (i = 0; i < tags.length; i++) {
|
111
|
-
_tag = tags[i].trim();
|
112
|
-
if (_tag === tag) {
|
113
|
-
flag = true;
|
114
|
-
cur.show();
|
115
|
-
break;
|
116
|
-
}
|
117
|
-
}
|
118
|
-
flag || (cur.hide());
|
119
|
-
});
|
120
|
-
}
|
121
|
-
$yearSection.each(function() {
|
122
|
-
flag = false;
|
123
|
-
cur = $(this);
|
124
|
-
lis = cur.find('li');
|
125
|
-
for (i = 0; i < lis.length; i++) {
|
126
|
-
if (lis.eq(i).css('display') !== 'none') {
|
127
|
-
flag = true;
|
128
|
-
break;
|
129
|
-
}
|
130
|
-
}
|
131
|
-
flag ? cur.show() : cur.hide();
|
132
|
-
});
|
133
|
-
tag === undefined || window.history.replaceState(null, '', window.location.href.split('?')[0] + '?tag=' + tag);
|
134
|
-
}
|
135
|
-
|
136
|
-
var query = queryString(),
|
137
|
-
tag = undefined;
|
138
|
-
query.tag === undefined || (tag = query.tag);
|
139
|
-
tagSelect(tag);
|
140
|
-
});
|
141
|
-
</script>
|
20
|
+
</div>
|
data/_layouts/base.html
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
{%- include snippets/get-lang.html -%}
|
3
|
+
<html lang="{{ __return }}">
|
4
|
+
<head>
|
5
|
+
{%- include common-head.html -%}
|
6
|
+
{%- include head-icons-rel.html -%}
|
7
|
+
{%- assign __path = '/assets/css/blog.css' -%}
|
8
|
+
{%- include snippets/prepend-baseurl.html -%}
|
9
|
+
<link rel="stylesheet" href="{{ __return }}">
|
10
|
+
{%- include scripts/utils.html -%}
|
11
|
+
</head>
|
12
|
+
<body>
|
13
|
+
<div class="m-page-stage js-page-stage">
|
14
|
+
<div class="m-page-content">
|
15
|
+
{%- include components/header.html -%}
|
16
|
+
<div class="m-page-main">{{ content }}</div>
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
{%- include components/footer.html -%}
|
20
|
+
{%- include scripts/common.html -%}
|
21
|
+
{%- if page.layout == "home" -%}
|
22
|
+
{%- include scripts/home.html -%}
|
23
|
+
{%- elsif page.layout == "page" -%}
|
24
|
+
{%- include scripts/page-post.html -%}
|
25
|
+
{%- elsif page.layout == "post" -%}
|
26
|
+
{%- include scripts/page-post.html -%}
|
27
|
+
{%- include scripts/post.html -%}
|
28
|
+
{%- elsif page.layout == "all" -%}
|
29
|
+
{%- include scripts/all.html -%}
|
30
|
+
{%- endif -%}
|
31
|
+
{%- include utils/mathjax.html -%}
|
32
|
+
{%- include utils/mermaid.html -%}
|
33
|
+
{%- include utils/chart.html -%}
|
34
|
+
{%- if jekyll.environment != "development" -%}
|
35
|
+
{%- include utils/google-analytics.html -%}
|
36
|
+
{%- endif -%}
|
37
|
+
</body>
|
38
|
+
</html>
|
data/_layouts/error-404.html
CHANGED
data/_layouts/home.html
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
---
|
2
|
-
layout:
|
2
|
+
layout: base
|
3
3
|
titles:
|
4
4
|
en: Blog
|
5
5
|
zh: 博客
|
@@ -27,7 +27,7 @@ titles:
|
|
27
27
|
{%- assign __locale = site.data.locale.READMORE -%}
|
28
28
|
{%- include snippets/locale-to-string.html -%}
|
29
29
|
<a href="{{ href }}">{{ __return }}</a>
|
30
|
-
{%- include
|
30
|
+
{%- include components/article-data.html -%}
|
31
31
|
</article>
|
32
32
|
{%- endfor -%}
|
33
33
|
</div>
|
@@ -38,85 +38,98 @@ titles:
|
|
38
38
|
{%- assign post_count = site.posts | size -%}
|
39
39
|
{%- assign page_count = paginator.total_pages -%}
|
40
40
|
<p>{{ __return | replace: '[POST_COUNT]', post_count | replace: '[PAGE_COUNT]', page_count }}</p>
|
41
|
-
<ul
|
42
|
-
|
43
|
-
{%- assign
|
44
|
-
{%-
|
45
|
-
{%- assign
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
</li>
|
59
|
-
{%- elsif page == 1 -%}
|
60
|
-
{%- if site.paths.base -%}
|
61
|
-
{%- assign __path = site.paths.base -%}
|
41
|
+
<ul>
|
42
|
+
{%- assign _max_show = 5 -%}
|
43
|
+
{%- assign _max_show_modulo_two = _max_show | modulo: 2 -%}
|
44
|
+
{%- assign _length = paginator.total_pages -%}
|
45
|
+
{%- assign _length_mimus_one = _length | minus: 1 -%}
|
46
|
+
{%- assign _cur = paginator.page -%}
|
47
|
+
{%- assign _extra = _max_show | minus: 3 -%}
|
48
|
+
{%- assign _extra_half = _extra | divided_by: 2 -%}
|
49
|
+
{%- if _max_show > 4 and _max_show_modulo_two == 1 and paginator.total_pages > _max_show -%}
|
50
|
+
{%- assign _condition0 = _extra | divided_by: 2 | plus: 1 -%}
|
51
|
+
{%- assign _condition1 = _length | minus: _extra_half -%}
|
52
|
+
{%- if _cur <= _condition0 -%}
|
53
|
+
{%- assign _n0 = 2 -%}
|
54
|
+
{%- assign _n1 = _extra | plus: 2 -%}
|
55
|
+
{%- elsif _cur >= _condition1 -%}
|
56
|
+
{%- assign _n0 = _length | minus: _extra | minus: 1 -%}
|
57
|
+
{%- assign _n1 = _length | minus: 1 -%}
|
62
58
|
{%- else -%}
|
63
|
-
{%- assign
|
59
|
+
{%- assign _n0 = _cur | minus: _extra_half -%}
|
60
|
+
{%- assign _n1 = _cur | plus: _extra_half -%}
|
64
61
|
{%- endif -%}
|
62
|
+
{%- endif -%}
|
63
|
+
{%- if paginator.previous_page -%}
|
64
|
+
{%- assign __path = paginator.previous_page_path -%}
|
65
65
|
{%- include snippets/prepend-baseurl.html -%}
|
66
66
|
{%- assign href = __return -%}
|
67
|
-
<li>
|
68
|
-
<
|
67
|
+
<li><a class="round-button" href="{{ href }}">
|
68
|
+
<div class="icon icon--previous">{%- include icon/previous.svg -%}</div></a>
|
69
69
|
</li>
|
70
70
|
{%- else -%}
|
71
|
-
|
71
|
+
<li><div class="round-button inactive">
|
72
|
+
<div class="icon icon--prrevious">{%- include icon/previous.svg -%}</div></div>
|
73
|
+
</li>
|
74
|
+
{%- endif -%}
|
75
|
+
|
76
|
+
{%- for page in (1.._length) -%}
|
77
|
+
{%- if page == _cur -%}
|
78
|
+
<li>
|
79
|
+
<div class="round-button cur"><span>{{ page }}</span></div>
|
80
|
+
</li>
|
81
|
+
{%- elsif page == 1 -%}
|
82
|
+
{%- if site.paths.base -%}
|
83
|
+
{%- assign __path = site.paths.base -%}
|
84
|
+
{%- else -%}
|
85
|
+
{%- assign __path = '/' -%}
|
86
|
+
{%- endif -%}
|
87
|
+
{%- include snippets/prepend-baseurl.html -%}
|
88
|
+
{%- assign href = __return -%}
|
89
|
+
<li>
|
90
|
+
<a class="round-button" href="{{ href }}"><span>{{ page }}</span></a>
|
91
|
+
</li>
|
92
|
+
{%- else -%}
|
93
|
+
{%- if _n0 and _n1 -%}
|
94
|
+
{%- if page > 1 and page < _n0 -%}
|
95
|
+
{%- if page == 2 -%}<li><span class="omit">{%- include icon/omit.svg -%}</span></li>{%- endif -%}
|
96
|
+
{%- elsif page > _n1 and page < _length -%}
|
97
|
+
{%- if page == _length_mimus_one -%}<li><span class="omit">{%- include icon/omit.svg -%}</span></li>{%- endif -%}
|
98
|
+
{%- else -%}
|
99
|
+
{%- assign __path = site.paginate_path -%}
|
100
|
+
{%- include snippets/prepend-baseurl.html -%}
|
101
|
+
{%- assign href = __return -%}
|
102
|
+
<li>
|
103
|
+
<a class="round-button" href="{{ href | replace: ':num', page }}"><span>{{ page }}</span></a>
|
104
|
+
</li>
|
105
|
+
{%- endif -%}
|
106
|
+
{%- else -%}
|
107
|
+
{%- assign __path = site.paginate_path -%}
|
108
|
+
{%- include snippets/prepend-baseurl.html -%}
|
109
|
+
{%- assign href = __return -%}
|
110
|
+
<li>
|
111
|
+
<a class="round-button" href="{{ href | replace: ':num', page }}"><span>{{ page }}</span></a>
|
112
|
+
</li>
|
113
|
+
{%- endif -%}
|
114
|
+
{%- endif -%}
|
115
|
+
{%- endfor -%}
|
116
|
+
{%- if paginator.next_page -%}
|
117
|
+
{%- assign __path = paginator.next_page_path -%}
|
72
118
|
{%- include snippets/prepend-baseurl.html -%}
|
73
119
|
{%- assign href = __return -%}
|
74
120
|
<li>
|
75
|
-
<a class="round-button" href="{{ href
|
121
|
+
<a class="round-button" href="{{ href }}">
|
122
|
+
<div class="icon icon--next">{%- include icon/next.svg -%}</div>
|
123
|
+
</a>
|
76
124
|
</li>
|
125
|
+
{%- else -%}
|
126
|
+
<li><div class="round-button inactive">
|
127
|
+
<div class="icon icon--next">{%- include icon/next.svg -%}</div>
|
128
|
+
</div>
|
129
|
+
</li>
|
77
130
|
{%- endif -%}
|
78
|
-
{%- endfor -%}
|
79
|
-
{%- if paginator.next_page -%}
|
80
|
-
{%- assign __path = paginator.next_page_path -%}
|
81
|
-
{%- include snippets/prepend-baseurl.html -%}
|
82
|
-
{%- assign href = __return -%}
|
83
|
-
<li>
|
84
|
-
<a class="round-button" href="{{ href }}">
|
85
|
-
<div class="icon icon--next">{%- include icon/next.svg -%}</div>
|
86
|
-
</a>
|
87
|
-
</li>
|
88
|
-
{%- else -%}
|
89
|
-
<li><div class="round-button inactive">
|
90
|
-
<div class="icon icon--next">{%- include icon/next.svg -%}</div>
|
91
|
-
</div></li>
|
92
|
-
{%- endif -%}
|
93
131
|
</ul>
|
94
132
|
</nav>
|
95
133
|
{%- endif -%}
|
96
134
|
</div>
|
97
135
|
</div>
|
98
|
-
{%- if site.leancloud.app_id and site.leancloud.app_key and site.leancloud.app_class and site.isdebug == false -%}
|
99
|
-
<script src="//cdn1.lncld.net/static/js/3.4.1/av-min.js"></script>
|
100
|
-
<script>
|
101
|
-
$(function() {
|
102
|
-
AV.init({
|
103
|
-
appId: '{{ site.leancloud.app_id }}',
|
104
|
-
appKey: '{{ site.leancloud.app_key }}'
|
105
|
-
});
|
106
|
-
$(".article-view").each(function() {
|
107
|
-
var curId = this.id;
|
108
|
-
var query = new AV.Query('{{ site.leancloud.app_class }}');
|
109
|
-
query.equalTo('key', curId.substr(9));
|
110
|
-
query.first().then(function(result) {
|
111
|
-
if (result) {
|
112
|
-
$('#' + curId).text(result.attributes.views);
|
113
|
-
}
|
114
|
-
}, function(error) {
|
115
|
-
if (error) {
|
116
|
-
throw error;
|
117
|
-
}
|
118
|
-
});
|
119
|
-
});
|
120
|
-
});
|
121
|
-
</script>
|
122
|
-
{%- endif -%}
|