jekyll-text-theme 1.5.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (187) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +41 -153
  3. data/_data/authors.yml +0 -0
  4. data/_data/licenses.yml +16 -0
  5. data/_data/locale.yml +4 -10
  6. data/_data/navigation.yml +13 -0
  7. data/_data/variables.yml +22 -6
  8. data/_includes/analytics-providers/custom.html +0 -0
  9. data/_includes/analytics-providers/google.html +16 -0
  10. data/_includes/analytics.html +7 -0
  11. data/_includes/article-footer/custom.html +1 -0
  12. data/_includes/article-footer/license.html +24 -0
  13. data/_includes/article-info.html +90 -0
  14. data/_includes/aside/toc.html +1 -0
  15. data/_includes/author-profile.html +50 -0
  16. data/_includes/comments-providers/custom.html +0 -0
  17. data/_includes/comments-providers/disqus.html +22 -0
  18. data/_includes/comments-providers/gitalk.html +32 -0
  19. data/_includes/comments.html +9 -0
  20. data/_includes/follow-me.html +84 -0
  21. data/_includes/footer.html +39 -0
  22. data/_includes/head.html +54 -0
  23. data/_includes/header.html +33 -0
  24. data/_includes/markdown-enhancements.html +32 -0
  25. data/_includes/{utils → markdown-enhancements}/chart.html +1 -3
  26. data/_includes/{utils → markdown-enhancements}/mathjax.html +11 -4
  27. data/_includes/{utils → markdown-enhancements}/mermaid.html +1 -3
  28. data/_includes/pageview-providers/custom.html +0 -0
  29. data/_includes/pageview-providers/custom/home.html +0 -0
  30. data/_includes/pageview-providers/custom/post.html +0 -0
  31. data/_includes/pageview-providers/leancloud/home.html +35 -0
  32. data/_includes/pageview-providers/leancloud/leancloud.js +71 -0
  33. data/_includes/pageview-providers/leancloud/post.html +31 -0
  34. data/_includes/pageview.html +31 -0
  35. data/_includes/scripts/archieve.js +238 -0
  36. data/_includes/scripts/article-list.html +27 -0
  37. data/_includes/scripts/article.js +24 -0
  38. data/_includes/scripts/aside/affix.js +26 -0
  39. data/_includes/scripts/aside/toc.js +37 -0
  40. data/_includes/scripts/common.js +3 -0
  41. data/_includes/scripts/home.js +3 -0
  42. data/_includes/scripts/lib/affix.js +103 -0
  43. data/_includes/scripts/{utils.html → lib/lazyload.js} +55 -92
  44. data/_includes/scripts/lib/scroll.js +13 -0
  45. data/_includes/scripts/lib/throttle.js +28 -0
  46. data/_includes/scripts/lib/toc.js +106 -0
  47. data/_includes/scripts/page.js +3 -0
  48. data/_includes/scripts/sidebar.js +14 -0
  49. data/_includes/scripts/utils.js +38 -0
  50. data/_includes/scripts/variables.html +27 -0
  51. data/_includes/sidebar/toc.html +27 -0
  52. data/_includes/snippets/assign.html +5 -0
  53. data/_includes/snippets/get-nav-url.html +3 -2
  54. data/_includes/snippets/page-title.html +11 -6
  55. data/_includes/snippets/page-url.html +3 -1
  56. data/_includes/snippets/to-boolean.html +7 -0
  57. data/_includes/{icon → svg/icon}/social/behance.svg +0 -0
  58. data/_includes/{icon → svg/icon}/social/douban.svg +0 -0
  59. data/_includes/{icon → svg/icon}/social/facebook.svg +0 -0
  60. data/_includes/{icon → svg/icon}/social/flicker.svg +0 -0
  61. data/_includes/{icon → svg/icon}/social/github.svg +0 -0
  62. data/_includes/{icon → svg/icon}/social/googleplus.svg +0 -0
  63. data/_includes/{icon → svg/icon}/social/linkedin.svg +0 -0
  64. data/_includes/{icon → svg/icon}/social/mail.svg +0 -0
  65. data/_includes/{icon → svg/icon}/social/pinterest.svg +0 -0
  66. data/_includes/{icon → svg/icon}/social/qq.svg +0 -0
  67. data/_includes/{icon → svg/icon}/social/twitter.svg +0 -0
  68. data/_includes/{icon → svg/icon}/social/weibo.svg +0 -0
  69. data/_includes/{icon → svg/icon}/social/weixin.svg +0 -0
  70. data/_includes/{icon → svg/icon}/social/zhihu.svg +0 -0
  71. data/_includes/{logo → svg}/logo.svg +1 -1
  72. data/_includes/tags.html +52 -0
  73. data/_layouts/404.html +12 -0
  74. data/_layouts/archive.html +25 -0
  75. data/_layouts/article.html +78 -0
  76. data/_layouts/base.html +13 -33
  77. data/_layouts/home.html +135 -121
  78. data/_layouts/landing.html +164 -0
  79. data/_layouts/page.html +157 -9
  80. data/_sass/additional/_alert.scss +25 -0
  81. data/_sass/additional/_photo-frame.scss +17 -0
  82. data/_sass/animate/_fade-in-down.scss +1 -1
  83. data/_sass/animate/_fade-in.scss +1 -1
  84. data/_sass/common/_classes.scss +5 -2
  85. data/_sass/common/_reset.scss +32 -22
  86. data/_sass/common/_variables.scss +87 -31
  87. data/_sass/common/classes/_animation.scss +9 -0
  88. data/_sass/common/classes/_clearfix.scss +8 -0
  89. data/_sass/common/classes/_grid.scss +48 -0
  90. data/_sass/common/classes/_horizontal-rules.scss +14 -0
  91. data/_sass/common/classes/_link.scss +18 -145
  92. data/_sass/common/classes/_media.scss +1 -2
  93. data/_sass/common/classes/_overflow.scss +8 -0
  94. data/_sass/common/classes/_pseudo.scss +26 -0
  95. data/_sass/common/classes/_shadow.scss +13 -5
  96. data/_sass/common/classes/_spacing.scss +52 -0
  97. data/_sass/common/components/_button.scss +179 -47
  98. data/_sass/common/components/_card.scss +18 -0
  99. data/_sass/common/components/_menu.scss +43 -0
  100. data/_sass/common/components/_toc.scss +125 -0
  101. data/_sass/components/_article.content.scss +37 -45
  102. data/_sass/components/_article.info.scss +25 -0
  103. data/_sass/components/_author-profile.scss +43 -0
  104. data/_sass/components/_follow-me.scss +16 -19
  105. data/_sass/components/_footer.scss +16 -6
  106. data/_sass/components/_header.scss +26 -18
  107. data/_sass/components/_license.scss +1 -25
  108. data/_sass/components/_main.scss +13 -11
  109. data/_sass/components/_tags.scss +17 -36
  110. data/_sass/layout/{_error-404.scss → _404.scss} +2 -2
  111. data/_sass/layout/_all.scss +72 -63
  112. data/_sass/layout/_article.scss +44 -0
  113. data/_sass/layout/_home.scss +61 -52
  114. data/_sass/layout/_landing.scss +104 -0
  115. data/_sass/layout/_page.scss +155 -0
  116. data/_sass/{colors → skins}/_chocolate.scss +17 -6
  117. data/_sass/skins/_dark.scss +56 -0
  118. data/_sass/{colors → skins}/_default.scss +16 -5
  119. data/_sass/{colors → skins}/_forest.scss +16 -5
  120. data/_sass/{colors → skins}/_ocean.scss +16 -5
  121. data/_sass/{colors → skins}/_orange.scss +20 -9
  122. data/assets/android-chrome-192x192.png +0 -0
  123. data/assets/android-chrome-512x512.png +0 -0
  124. data/assets/apple-touch-icon.png +0 -0
  125. data/assets/browserconfig.xml +9 -0
  126. data/assets/css/main.scss +46 -0
  127. data/assets/favicon-16x16.png +0 -0
  128. data/assets/favicon-32x32.png +0 -0
  129. data/assets/favicon.ico +0 -0
  130. data/assets/images/logo/logo.svg +1 -1
  131. data/assets/mstile-144x144.png +0 -0
  132. data/assets/mstile-150x150.png +0 -0
  133. data/assets/mstile-310x150.png +0 -0
  134. data/assets/mstile-310x310.png +0 -0
  135. data/assets/mstile-70x70.png +0 -0
  136. data/assets/safari-pinned-tab.svg +38 -0
  137. data/assets/site.webmanifest +19 -0
  138. metadata +108 -76
  139. data/_includes/common-head.html +0 -10
  140. data/_includes/components/article-data.html +0 -55
  141. data/_includes/components/follow-me.html +0 -78
  142. data/_includes/components/footer.html +0 -10
  143. data/_includes/components/header.html +0 -42
  144. data/_includes/components/license.html +0 -26
  145. data/_includes/components/tags.html +0 -52
  146. data/_includes/head-icons-rel.html +0 -38
  147. data/_includes/icon/clear.svg +0 -3
  148. data/_includes/icon/link.svg +0 -1
  149. data/_includes/icon/menu.svg +0 -3
  150. data/_includes/icon/next.svg +0 -3
  151. data/_includes/icon/omit.svg +0 -1
  152. data/_includes/icon/previous.svg +0 -3
  153. data/_includes/icon/search.svg +0 -3
  154. data/_includes/scripts/all.html +0 -244
  155. data/_includes/scripts/common.html +0 -30
  156. data/_includes/scripts/data.html +0 -27
  157. data/_includes/scripts/home.html +0 -26
  158. data/_includes/scripts/page-post.html +0 -32
  159. data/_includes/scripts/post.html +0 -183
  160. data/_includes/utils/comment-disqus.html +0 -19
  161. data/_includes/utils/comment-gitalk.html +0 -25
  162. data/_includes/utils/google-analytics.html +0 -11
  163. data/_layouts/all.html +0 -20
  164. data/_layouts/error-404.html +0 -9
  165. data/_layouts/post.html +0 -60
  166. data/_sass/colors/_dark.scss +0 -45
  167. data/_sass/common/classes/_shape.scss +0 -19
  168. data/_sass/common/classes/_space.scss +0 -40
  169. data/_sass/components/_article.content.extra.scss +0 -41
  170. data/_sass/components/_article.data.scss +0 -36
  171. data/_sass/components/_pagination.scss +0 -19
  172. data/_sass/components/_toc.scss +0 -72
  173. data/_sass/layout/_default.scss +0 -19
  174. data/_sass/layout/_post.scss +0 -80
  175. data/assets/css/blog.scss +0 -41
  176. data/assets/images/logo/icon-120x120.png +0 -0
  177. data/assets/images/logo/icon-128x128.png +0 -0
  178. data/assets/images/logo/icon-150x150.png +0 -0
  179. data/assets/images/logo/icon-152x152.png +0 -0
  180. data/assets/images/logo/icon-167x167.png +0 -0
  181. data/assets/images/logo/icon-16x16.png +0 -0
  182. data/assets/images/logo/icon-180x180.png +0 -0
  183. data/assets/images/logo/icon-192x192.png +0 -0
  184. data/assets/images/logo/icon-310x150.png +0 -0
  185. data/assets/images/logo/icon-310x310.png +0 -0
  186. data/assets/images/logo/icon-48x48.png +0 -0
  187. data/assets/images/logo/icon-70x70.png +0 -0
@@ -1,78 +0,0 @@
1
- <div class="follow-me">
2
- {%- assign __locale = site.data.locale.FOLLOW_ME -%}
3
- {%- include snippets/locale-to-string.html -%}
4
- <ul itemscope itemtype="http://schema.org/Person">
5
- <meta itemprop="name" content="{{ site.author.name }}">
6
- <link itemprop="url" href="{{ '/' | prepend: site.url }}">
7
- {%- if site.author.weibo -%}
8
- <li title="{{ __return | replace: '[NAME]', 'Weibo' }}">
9
- <div class="floating-action-round-button weibo">
10
- <a itemprop="sameAs" href="https://weibo.com/{{ site.author.weibo }}" target="_blank">
11
- <div class="icon">{%- include icon/social/weibo.svg -%}</div>
12
- </a>
13
- </div>
14
- </li>
15
- {%- endif -%}
16
- {%- if site.author.facebook -%}
17
- <li title="{{ __return | replace: '[NAME]', 'Facebook' }}">
18
- <div class="floating-action-round-button facebook">
19
- <a itemprop="sameAs" href="https://www.facebook.com/{{ site.author.facebook }}" target="_blank">
20
- <div class="icon">{%- include icon/social/facebook.svg -%}</div>
21
- </a>
22
- </div>
23
- </li>
24
- {%- endif -%}
25
- {%- if site.author.twitter -%}
26
- <li title="{{ __return | replace: '[NAME]', 'Twitter' }}">
27
- <div class="floating-action-round-button twitter">
28
- <a itemprop="sameAs" href="https://twitter.com/{{ site.author.twitter }}" target="_blank">
29
- <div class="icon">{%- include icon/social/twitter.svg -%}</div>
30
- </a>
31
- </div>
32
- </li>
33
- {%- endif -%}
34
- {%- if site.author.googleplus -%}
35
- <li title="{{ __return | replace: '[NAME]', 'Google+' }}">
36
- <div class="floating-action-round-button googlepluse">
37
- <a itemprop="sameAs" href="https://plus.google.com/u/0/{{ site.author.googleplus }}" target="_blank">
38
- <div class="icon">{%- include icon/social/googleplus.svg -%}</div>
39
- </a>
40
- </div>
41
- </li>
42
- {%- endif -%}
43
- {%- if site.author.github -%}
44
- <li title="{{ __return | replace: '[NAME]', 'Github' }}">
45
- <div class="floating-action-round-button github">
46
- <a itemprop="sameAs" href="https://github.com/{{ site.author.github }}" target="_blank">
47
- <div class="icon">{%- include icon/social/github.svg -%}</div>
48
- </a>
49
- </div>
50
- </li>
51
- {%- endif -%}
52
- {%- if site.author.linkedin -%}
53
- <li title="{{ __return | replace: '[NAME]', 'Linkedin' }}">
54
- <div class="floating-action-round-button linkedin">
55
- <a itemprop="sameAs" href="https://www.linkedin.com/in/{{ site.author.linkedin }}" target="_blank">
56
- <div class="icon">{%- include icon/social/linkedin.svg -%}</div>
57
- </a>
58
- </div>
59
- </li>
60
- {%- endif -%}
61
- {%- if site.author.douban -%}
62
- <li title="{{ __return | replace: '[NAME]', 'Douban' }}">
63
- <div class="floating-action-round-button douban">
64
- <a itemprop="sameAs" href="https://www.douban.com/people/{{ site.author.douban }}" target="_blank">
65
- <div class="icon">{%- include icon/social/douban.svg -%}</div>
66
- </a>
67
- </div>
68
- </li>
69
- {%- endif -%}
70
- </ul>
71
- {%- if site.author.email -%}
72
- {%- assign __locale = site.data.locale.EMAIL_ME -%}
73
- {%- include snippets/locale-to-string.html -%}
74
- <p class="email">
75
- <a title="{{ __return }}" href="mailto:{{ site.author.email }}" target="_self">{{ site.author.email }}</a>
76
- </p>
77
- {%- endif -%}
78
- </div>
@@ -1,10 +0,0 @@
1
- <div class="m-page-footer js-page-footer">
2
- <div class="main">
3
- <aside> {%- include components/follow-me.html -%} </aside>
4
- <footer class="site-info">
5
- <p>© {{ site.title }} {{ site.data.locale.COPYRIGHT_DATES }}</p>
6
- <p>Powered by <a title="Jekyll is a simple, blog-aware, static site generator." href="http://jekyllrb.com/">Jekyll</a> & <a
7
- title="TeXt is a succinct theme for blogging." href="https://github.com/kitian616/jekyll-TeXt-theme">TeXt Theme</a>.</p>
8
- </footer>
9
- </div>
10
- </div>
@@ -1,42 +0,0 @@
1
- <header class="m-page-header">
2
- <div class="main clearfix">
3
- <div class='site-logo'>
4
- {%- include logo/logo.svg -%}
5
- {%- assign __path = site.paths.base | default: site.data.variables.default.paths.base -%}
6
- {%- include snippets/get-nav-url.html -%}
7
- {%- if site.title -%}
8
- <a title="{%- if site.description -%}{{ site.description }}{%- endif -%}" href="{{ __return }}">{{ site.title }}</a>
9
- {%- endif -%}
10
- </div>
11
- <nav>
12
- <ul>
13
- {%- assign __path = site.paths.home | default: site.data.variables.default.paths.home -%}
14
- {%- include snippets/get-nav-url.html -%}
15
- {%- assign href = __return -%}
16
- {%- assign __locale = site.data.locale.NAV.HOME -%}
17
- {%- include snippets/locale-to-string.html -%}
18
- <li><a href="{{ href }}">{{ __return }}</a></li>
19
- {%- assign __path = site.paths.all | default: site.data.variables.default.paths.all -%}
20
- {%- include snippets/get-nav-url.html -%}
21
- {%- assign href = __return -%}
22
- {%- assign __locale = site.data.locale.NAV.ALL -%}
23
- {%- include snippets/locale-to-string.html -%}
24
- <li><a href="{{ href }}">{{ __return }}</a></li>
25
- {%- for list in site.nav_lists -%}
26
- {%- assign __path = list.url -%}
27
- {%- include snippets/get-nav-url.html -%}
28
- {%- assign href = __return -%}
29
- {%- assign __locale = list.titles -%}
30
- {%- include snippets/locale-to-string.html -%}
31
- <li><a href="{{ href }}">{%- if list.title -%}{{ list.title }}{%- else -%}{{ __return }}{%- endif -%}</a></li>
32
- {%- endfor -%}
33
- {%- assign __path = site.paths.rss | default: site.data.variables.default.paths.rss -%}
34
- {%- include snippets/get-nav-url.html -%}
35
- {%- assign href = __return -%}
36
- {%- assign __locale = site.data.locale.NAV.RSS -%}
37
- {%- include snippets/locale-to-string.html -%}
38
- <li><a type="application/rss+xml" href="{{ href }}">{{ __return }}</a></li>
39
- </ul>
40
- </nav>
41
- </div>
42
- </header>
@@ -1,26 +0,0 @@
1
- <div class="m-license">
2
- {%- assign locale = site.data.locale -%}
3
- <div class="clearfix">
4
- {%- if site.repository and site.repository_tree -%}
5
- {%- assign __path = '/assets/images/octocat.jpg' -%}
6
- {%- include snippets/prepend-baseurl.html -%}
7
- <a class="octocat" href="https://github.com/{{ site.repository }}/tree/{{ site.repository_tree }}/{{ page.path }}">
8
- <img alt="View on Github" src="{{ __return }}" />
9
- </a>
10
- {%- assign __locale = locale.POST_ON_GITHUB -%}
11
- {%- include snippets/locale-to-string.html -%}
12
- <p><a href="https://github.com/{{ site.repository }}/tree/{{ site.repository_tree }}/{{ page.path }}">{{ __return }}</a></p>
13
- {%- endif -%}
14
- {%- assign __locale = locale.LICENSE_ANNOUNCE -%}
15
- {%- include snippets/locale-to-string.html -%}
16
- <p>{{ __return | replace: "[LICENSE]", '<a rel="license" href="http://creativecommons.org/licenses/by-nc/4.0/">CC-BY-NC-4.0</a>' }}</p>
17
- {%- assign __path = '/assets/images/license-cc4.png' -%}
18
- {%- include snippets/prepend-baseurl.html -%}
19
- <a class="license" rel="license" href="http://creativecommons.org/licenses/by-nc/4.0/">
20
- <img alt="Creative Commons License" src="{{ __return }}" />
21
- </a>
22
- {%- assign __locale = locale.LICENSE_INTRO -%}
23
- {%- include snippets/locale-to-string.html -%}
24
- <p>{{ __return }}</p>
25
- </div>
26
- </div>
@@ -1,52 +0,0 @@
1
- {%- assign max_size = 1 -%}
2
- {%- assign min_size = 1 -%}
3
- {%- assign cur_size = 1 -%}
4
- {%- assign _tags = site.tags | sort -%}
5
- {%- for tag in _tags -%}
6
- {%- assign cur_size = tag[1].size -%}
7
- {%- if cur_size > max_size -%}
8
- {%- assign max_size = cur_size -%}
9
- {%- endif -%}
10
- {%- if cur_size < min_size -%}
11
- {%- assign min_size = cur_size -%}
12
- {%- endif -%}
13
- {%- endfor -%}
14
- {%- assign gap_size = max_size | minus: min_size | plus: 1 | divided_by: 4 -%}
15
- {%- if gap_size < 1 -%}
16
- {%- assign gap_size = 1 -%}
17
- {%- endif -%}
18
- <div class="m-tags js-tags">
19
- <ul>
20
- <li>
21
- <button type="button" class="js-article-tag js-tag-show-all all pill-button inactive" data-encode="">
22
- Show All<div class="tag-count">{{ site.posts | size }}</div>
23
- </button>
24
- </li>
25
- {%- for tag in _tags -%}
26
- {%- assign cur_size = tag[1].size -%}
27
- {%- assign m1 = min_size -%}
28
- {%- assign n1 = m1 | plus: gap_size -%}
29
- {%- assign m2 = n1 -%}
30
- {%- assign n2 = m2 | plus: gap_size -%}
31
- {%- assign m3 = n2 -%}
32
- {%- assign n3 = m3 | plus: gap_size -%}
33
- {%- assign m4 = n3 -%}
34
- {%- assign n4 = m4 | plus: gap_size -%}
35
- {%- if cur_size >= m1 and cur_size < n1 -%}
36
- {%- assign c_index = 1 -%}
37
- {%- elsif cur_size >= m2 and cur_size < n2 -%}
38
- {%- assign c_index = 2 -%}
39
- {%- elsif cur_size >= m3 and cur_size < n3 -%}
40
- {%- assign c_index = 3 -%}
41
- {%- elsif cur_size >= m4 and cur_size < n4 -%}
42
- {%- assign c_index = 4 -%}
43
- {%- else -%}
44
- {%- assign c_index = 4 -%}
45
- {%- endif -%}
46
- <li><button type="button" class="js-article-tag tag-{{ c_index }} pill-button inactive" data-encode="{{ tag[0] | strip | url_encode }}">
47
- <span>{{ tag[0] | strip }}</span><div class="tag-count">{{ tag[1].size }}</div>
48
- </button>
49
- </li>
50
- {%- endfor -%}
51
- </ul>
52
- </div>
@@ -1,38 +0,0 @@
1
- <!-- for Safari on iOS https://developer.apple.com/ios/human-interface-guidelines/icons-and-images/app-icon/ -->
2
- {%- assign __path = '/assets/images/logo/icon-180x180.png' -%}
3
- {%- include snippets/prepend-baseurl.html -%}
4
- <link rel="apple-touch-icon" sizes="180x180" href="{{ __return }}">
5
- {%- assign __path = '/assets/images/logo/icon-167x167.png' -%}
6
- {%- include snippets/prepend-baseurl.html -%}
7
- <link rel="apple-touch-icon" sizes="167x167" href="{{ __return }}">
8
- {%- assign __path = '/assets/images/logo/icon-152x152.png' -%}
9
- {%- include snippets/prepend-baseurl.html -%}
10
- <link rel="apple-touch-icon" sizes="152x152" href="{{ __return }}">
11
- {%- assign __path = '/assets/images/logo/icon-120x120.png' -%}
12
- {%- include snippets/prepend-baseurl.html -%}
13
- <link rel="apple-touch-icon" sizes="120x120" href="{{ __return }}">
14
- {%- assign __path = '/assets/images/logo/icon-120x120.png' -%}
15
- {%- include snippets/prepend-baseurl.html -%}
16
- <link rel="shortcut icon" href="{{ __return }}">
17
- <!-- for Chrome on Android https://developer.chrome.com/multidevice/android/installtohomescreen -->
18
- <meta name="mobile-web-app-capable" content="yes">
19
- {%- assign __path = '/assets/images/logo/icon-192x192.png' -%}
20
- {%- include snippets/prepend-baseurl.html -%}
21
- <link rel="icon" sizes="192x192" href="{{ __return }}">
22
- <!-- for Edge on Windows 10 https://msdn.microsoft.com/en-us/library/dn255024(v=vs.85).aspx -->
23
- {%- assign __path = '/assets/images/logo/icon-144x144.png' -%}
24
- {%- include snippets/prepend-baseurl.html -%}
25
- <meta name="msapplication-TileImage" content="{{ __return }}">
26
- {%- assign __path = '/assets/images/logo/icon-310x310.png' -%}
27
- {%- include snippets/prepend-baseurl.html -%}
28
- <meta name="msapplication-square310x310logo" content="{{ __return }}">
29
- {%- assign __path = '/assets/images/logo/icon-310x150.png' -%}
30
- {%- include snippets/prepend-baseurl.html -%}
31
- <meta name="msapplication-wide310x150logo" content="{{ __return }}">
32
- {%- assign __path = '/assets/images/logo/icon-150x150.png' -%}
33
- {%- include snippets/prepend-baseurl.html -%}
34
- <meta name="msapplication-square150x150logo" content="{{ __return }}">
35
- {%- assign __path = '/assets/images/logo/icon-70x70.png' -%}
36
- {%- include snippets/prepend-baseurl.html -%}
37
- <meta name="msapplication-square70x70logo" content="{{ __return }}">
38
- <meta name="msapplication-TileColor" content="#eeeeee">
@@ -1,3 +0,0 @@
1
- <svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/>
3
- </svg>
@@ -1 +0,0 @@
1
- <svg fill="#000000" width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg>
@@ -1,3 +0,0 @@
1
- <svg fill="#000000" width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/>
3
- </svg>
@@ -1,3 +0,0 @@
1
- <svg fill="#000000" width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/>
3
- </svg>
@@ -1 +0,0 @@
1
- <svg fill="#000000" width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></svg>
@@ -1,3 +0,0 @@
1
- <svg fill="#000000" width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"/>
3
- </svg>
@@ -1,3 +0,0 @@
1
- <svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>
3
- </svg>
@@ -1,244 +0,0 @@
1
- {%- include snippets/page-title.html -%}
2
- {%- assign _title = __return -%}
3
- {%- include snippets/get-sources.html -%}
4
- {%- assign _sources = __return -%}
5
- {%- assign __path = '/search.json' -%}
6
- {%- include snippets/prepend-baseurl.html -%}
7
- {%- assign _search_path = __return -%}
8
- <script>
9
- (function() {
10
- function queryString() {
11
- // This function is anonymous, is executed immediately and
12
- // the return value is assigned to QueryString!
13
- var i = 0,
14
- queryObj = {},
15
- pair;
16
- var queryStr = window.location.search.substring(1);
17
- var queryArr = queryStr.split('&');
18
- for (i = 0; i < queryArr.length; i++) {
19
- pair = queryArr[i].split('=');
20
- // If first entry with this name
21
- if (typeof queryObj[pair[0]] === 'undefined') {
22
- queryObj[pair[0]] = pair[1];
23
- // If second entry with this name
24
- } else if (typeof queryObj[pair[0]] === 'string') {
25
- queryObj[pair[0]] = [queryObj[pair[0]], pair[1]];
26
- // If third or later entry with this name
27
- } else {
28
- queryObj[pair[0]].push(pair[1]);
29
- }
30
- }
31
- return queryObj;
32
- }
33
-
34
- function decodeUrl(str) {
35
- return str ? decodeURIComponent(str.replace(/\+/g, '%20')) : '';
36
- }
37
-
38
- function memorize(f) {
39
- var cache = {};
40
- return function () {
41
- var key = Array.prototype.join.call(arguments, ',');
42
- if (key in cache) return cache[key];
43
- else return cache[key] = f.apply(this, arguments);
44
- };
45
- };
46
- function initData(json) {
47
- var _data = JSON.parse(json), i, j, cur, _tags;
48
- Object.keys(_data).forEach(function(year) {
49
- for (i = 0; i < _data[year].length; i++) {
50
- cur = _data[year][i], _tags = cur.tags;
51
- cur.title = decodeUrl(cur.title);
52
- if (_tags && _tags.length > 0) {
53
- for (j = 0; j < _tags.length; j++) {
54
- _tags[j] = decodeUrl(_tags[j]);
55
- }
56
- }
57
- }
58
- });
59
- return _data;
60
- }
61
-
62
- var setUrlQuery = (function() {
63
- var baseUrl = window.location.href.split('?')[0];
64
- return function(query) {
65
- if (typeof query === 'string') {
66
- window.history.replaceState(null, '', baseUrl + query);
67
- } else {
68
- window.history.replaceState(null, '', baseUrl);
69
- }
70
- }
71
- })();
72
-
73
- var data = initData('{%- include scripts/data.html -%}');
74
-
75
- var searchByTag = memorize(function(tag) {
76
- var i, j, cur, _tags, _tag, _data = {};
77
- Object.keys(data).forEach(function(year) {
78
- for (i = 0; i < data[year].length; i++) {
79
- cur = data[year][i], _tags = cur.tags;
80
- if (_tags && _tags.length > 0) {
81
- for (j = 0; j < _tags.length; j++) {
82
- _tag = _tags[j];
83
- if (_tag === tag) {
84
- if (!_data[year]) {
85
- _data[year] = []
86
- }
87
- _data[year].push(cur);
88
- break;
89
- }
90
- }
91
- }
92
- }
93
- });
94
- return _data;
95
- });
96
-
97
- var searchByQuery = function(query) {
98
- var i, j, cur, _title, _data = { _: [] };
99
- Object.keys(data).forEach(function(year) {
100
- for (i = 0; i < data[year].length; i++) {
101
- cur = data[year][i], _title = cur.title;
102
- if (_title.toLowerCase().indexOf(query.toLowerCase()) >= 0) {
103
- _data._.push(cur);
104
- }
105
- }
106
- });
107
- return _data;
108
- };
109
-
110
- window.Lazyload.js('{{ _sources.jquery }}', function() {
111
- var $root = $('.js-all');
112
- var $searchBox = $('.js-search-box');
113
- var $searchInput = $searchBox.children('input');
114
- var $searchClear = $searchBox.children('.icon-clear');
115
- var $tags = $('.js-tags');
116
- var $articleTags = $('.js-article-tag');
117
- var $tagShowAll = $('.js-tag-show-all');
118
- var $result = $('.js-result');
119
- var $lastFocusButton = null;
120
-
121
- function addClass(dom, className) {
122
- dom.hasClass(className) || dom.addClass(className);
123
- }
124
- function removeClass(dom, className) {
125
- dom.hasClass(className) && dom.removeClass(className);
126
- }
127
-
128
- var renderHeading = memorize(function (year) {
129
- return $('<h2 class="year">' + year + '</h2>');
130
- });
131
- var renderItem = memorize(function (key, title, date, url, tags) {
132
- return $('<li><span class="date">' + date + '</span><a class="link" href="' + url + '">' + title + '</a></li>');
133
- });
134
- function render(data) {
135
- var $dom = $('<div></div>'), $section, $ul, i, cur, date;
136
- Object.keys(data).sort(function(a, b) {
137
- return b.localeCompare(a);
138
- }).forEach(function(year) {
139
- $section = $('<section></section>'), $ul = $('<ul></ul>');
140
- (year === '_') || $section.append(renderHeading(year));
141
- for (i = 0; i < data[year].length; i++) {
142
- cur = data[year][i];
143
- $ul.append(renderItem(cur.key, cur.title, cur.date, cur.url, cur.tags));
144
- }
145
- $dom.append($section.append($ul));
146
- })
147
- return $dom;
148
- }
149
-
150
- function searchButtonsByTag(_tag/*raw tag*/) {
151
- if (!_tag) {
152
- return $tagShowAll;
153
- }
154
- var _buttons = $articleTags.filter('[data-encode="' + _tag + '"]');
155
- if (_buttons.length === 0) {
156
- return $tagShowAll;
157
- }
158
- return _buttons;
159
- }
160
- function buttonFoucs(target) {
161
- if (target) {
162
- addClass(target, 'focus');
163
- $lastFocusButton && !$lastFocusButton.is(target) && removeClass($lastFocusButton, 'focus');
164
- $lastFocusButton = target;
165
- }
166
- }
167
-
168
- function setIsSearch() {
169
- addClass($root, 'search');
170
- }
171
- function setNotSearch() {
172
- removeClass($root, 'search');
173
- }
174
- function setIsEmpty() {
175
- removeClass($searchBox, 'not-empty');
176
- }
177
- function setNotEmpty() {
178
- addClass($searchBox, 'not-empty');
179
- }
180
- function setSearchBoxVal(val) {
181
- ($searchInput.val() === val) || $searchInput.val(val);
182
- }
183
- function clearSearchBox() {
184
- setSearchBoxVal(''); queryInput('');
185
- }
186
-
187
- function showAll() {
188
- setNotSearch(); setIsEmpty(); buttonFoucs($tagShowAll); setUrlQuery();
189
- $result.html(render(data));
190
- }
191
- function tagSelect(tag/*decode tag*/, target) {
192
- var _data, _tag;
193
- if (tag === '' || tag === undefined) {
194
- showAll();
195
- } else {
196
- $result.html(render(searchByTag(tag)));
197
- }
198
- if (target) {
199
- buttonFoucs(target);
200
- _tag = target.data('encode');
201
- if (_tag === '' || typeof _tag !== 'string') {
202
- setUrlQuery();
203
- } else {
204
- setUrlQuery('?tag=' + _tag)
205
- }
206
- }
207
- }
208
- function queryInput(query) {
209
- var _data;
210
- if (query === '' || typeof query !== 'string') {
211
- showAll();
212
- } else {
213
- $result.html(render(searchByQuery(query))); setIsSearch(); setNotEmpty(); setUrlQuery('?q=' + query);
214
-
215
- }
216
- }
217
-
218
- (function() {
219
- $articleTags.removeClass('inactive');
220
- var query = queryString(), _tag = query.tag, _q = query.q;
221
- if (_tag !== undefined) {
222
- query.tag === undefined || (_tag = query.tag);
223
- tagSelect(decodeUrl(_tag));
224
- buttonFoucs(searchButtonsByTag(_tag));
225
- } else if (_q !== undefined) {
226
- queryInput(_q); setSearchBoxVal(_q);
227
- } else {
228
- showAll();
229
- }
230
- })();
231
-
232
- $tags.on('click', 'button', function() {
233
- tagSelect($(this).children('span').text(), $(this));
234
- });
235
-
236
- $searchInput.on('input', window.throttle(function() {
237
- queryInput($(this).val());
238
- }, 400));
239
- $searchClear.on('click', function() {
240
- clearSearchBox();
241
- });
242
- });
243
- })();
244
- </script>