jekyll-theme-yat 1.7.0 → 1.9.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2e64474766ce139b9a917d18a8a2fe0ff867b0bcc7c343349ab6819bd8990fbd
4
- data.tar.gz: 279eeb6dd5e6a47244ae9516824fbf157e77b92c97a6ecf19604a1e04706c3c9
3
+ metadata.gz: ac1737e727da75e5ea98d69effa7a2a6cfb67983d629ad50d7c68d53ed8e8acf
4
+ data.tar.gz: a6a0d53cd3cd7f3f8ac132124212b13e11fbb9302601cfb741788294dadaac17
5
5
  SHA512:
6
- metadata.gz: 28b59c6996eb0c3a95b8a6906c3aeb1647f77a34518f44a645a985217ce9965be55a4a5190564bceb704b8761ca4456b71fc37aad7f613d0b047be1af4c61c27
7
- data.tar.gz: c08b686b732a4f146ad9ca5ff039ad4d8ca16f95b1ffb52c6b67c3b85599690274379490cca405f8108ed4aeb399aecd519e5168868da1dc567c8e82abb51d8b
6
+ metadata.gz: d8c7650349f043503af65a144074e800dbb51b16973d23d56d432e3b777bd86919596f94cdd5e9c55de99f3de68edc302b729a860df322a21efc20fff4da9fb9
7
+ data.tar.gz: 065105e678deaf52fdef4b0f4dd89b878a84ff7e3b29ef6007d26099b5d00f079668e0fa30aaef0a2ce4258ec9823108123af80602c2b5e23088e047d52e3e0d
data/README.md CHANGED
@@ -1,41 +1,91 @@
1
- # jekyll-theme-yat
2
- [![Github Pages](https://github.com/jeffreytse/jekyll-theme-yat/workflows/Github%20Pages/badge.svg)](https://jeffreytse.github.io/jekyll-theme-yat)
3
- [![Gem Version](https://badge.fury.io/rb/jekyll-theme-yat.svg)](http://badge.fury.io/rb/jekyll-theme-yat)
4
- [![License: MIT](https://img.shields.io/badge/License-MIT-brightgreen.svg)](https://opensource.org/licenses/MIT)
5
- [![Donate (Liberapay)](http://img.shields.io/liberapay/goal/jeffreytse.svg?logo=liberapay)](https://liberapay.com/jeffreytse)
6
- [![Donate (Patreon)](https://img.shields.io/badge/support-patreon-F96854.svg?style=flat-square)](https://patreon.com/jeffreytse)
7
- <a href="https://ko-fi.com/jeffreytse">
1
+ <div align="center">
2
+ <br>
3
+
4
+ <a href="https://github.com/jeffreytse/jekyll-theme-yat">
5
+ <img alt="jekyll-theme-yat →~ jekyll" src="https://user-images.githubusercontent.com/9413601/106478481-346fdf00-64e4-11eb-9385-1ab5329c3234.png" width="600">
6
+ </a>
7
+
8
+ <h1>JEKYLL YAT THEME</h1>
9
+
10
+ </div>
11
+
12
+ <h4 align="center">
13
+ <a href="https://jekyllrb.com/" target="_blank"><code>Jekyll</code></a> theme for elegant writers.
14
+ </h4>
15
+
16
+ <p align="center">
17
+ <a href="https://jeffreytse.github.io/jekyll-theme-yat">
18
+ <img src="https://github.com/jeffreytse/jekyll-theme-yat/workflows/Github%20Pages/badge.svg"
19
+ alt="Github Pages" />
20
+ </a>
21
+
22
+ <a href="https://badge.fury.io/rb/jekyll-theme-yat">
23
+ <img src="https://badge.fury.io/rb/jekyll-theme-yat.svg"
24
+ alt="Gem Version" />
25
+ </a>
26
+
27
+ <a href="https://opensource.org/licenses/MIT">
28
+ <img src="https://img.shields.io/badge/License-MIT-brightgreen.svg"
29
+ alt="License: MIT" />
30
+ </a>
31
+
32
+ <a href="https://liberapay.com/jeffreytse">
33
+ <img src="https://img.shields.io/liberapay/goal/jeffreytse.svg?logo=liberapay"
34
+ alt="Donate (Liberapay)" />
35
+ </a>
36
+
37
+ <a href="https://patreon.com/jeffreytse">
38
+ <img src="https://img.shields.io/badge/support-patreon-F96854.svg?style=flat-square"
39
+ alt="Donate (Patreon)" />
40
+ </a>
41
+
42
+ <a href="https://ko-fi.com/jeffreytse">
8
43
  <img height="20" src="https://www.ko-fi.com/img/githubbutton_sm.svg"
9
- alt="Donate (Ko-fi)" />
10
- </a>
44
+ alt="Donate (Ko-fi)" />
45
+ </a>
46
+ </p>
47
+
48
+ <div align="center">
49
+ <sub>Built with ❤︎ by
50
+ <a href="https://jeffreytse.net">jeffreytse</a> and
51
+ <a href="https://github.com/jeffreytse/jekyll-theme-yat/graphs/contributors">contributors </a>
52
+ </sub>
53
+ </div>
54
+
55
+ <br>
11
56
 
12
57
  Hey, nice to meet you, you found this [Jekyll][jekyll] theme. Here the
13
- **Yet Another Theme** is a modern responsive theme, and it's quiet clear,
14
- clean and neat for writers and posts. **If you like the theme, give it
15
- a star!**
58
+ _YAT (Yet Another Theme)_ is a modern responsive theme. It's quite
59
+ clear, clean and neat for writers and posts. **If you are an elegant
60
+ writer and focus on content, don't miss it.**
16
61
 
62
+ <p align="center">
63
+ Like this elegant theme? You can give it a star or sponsor me!<br>
64
+ I will respect your crucial support and say THANK YOU!
65
+ </p>
17
66
 
18
67
  <p align="center">
19
68
 
20
- <img src="https://user-images.githubusercontent.com/9413601/91842897-6a840b00-ec87-11ea-95ca-52abcc1ac063.png" alt="demo-screenshot" width="780px"/>
69
+ <img src="https://user-images.githubusercontent.com/9413601/91842897-6a840b00-ec87-11ea-95ca-52abcc1ac063.png" alt="demo-screenshot" width="100%"/>
21
70
 
22
71
  </p>
23
72
 
24
- <h3 align="center">🌌 Night Mode</h3>
73
+ <h4 align="center">BANNER</h4>
25
74
 
26
75
  <p align="center">
27
76
 
28
- <img src="https://user-images.githubusercontent.com/9413601/94983351-760f6e00-0574-11eb-9494-5303ad6228dc.gif" alt="demo-screenshot" width="780px"/>
77
+ <img src="https://user-images.githubusercontent.com/9413601/123897812-ae729a00-d996-11eb-96b8-b76ba926f555.gif" alt="demo-screenshot" width="100%"/>
29
78
 
30
79
  </p>
31
80
 
32
81
  ## Features
33
82
 
34
- - Support beautiful __Night Mode__.
83
+ - Support beautiful **Night Mode**.
35
84
  - Modern responsive web design.
36
85
  - Full layouts `home`, `post`, `tags`, `archive` and `about`.
37
86
  - Uses font awesome 5 for icons.
38
- - Beautiful Syntax Highlight using [hilight.js][hilight-js].
87
+ - Beautiful page banner with image and video.
88
+ - Beautiful Syntax Highlight using [highlight.js][highlight-js].
39
89
  - RSS support using [Jekyll Feed][jekyll-feed] gem.
40
90
  - Optimized for search engines using [Jekyll Seo Tag][jekyll-seo-tag] gem.
41
91
  - Sitemap support using [Jekyll Sitemap][jekyll-sitemap] gem.
@@ -107,15 +157,14 @@ And then execute:
107
157
  $ bundle
108
158
  ```
109
159
 
110
- ## GitHub Pages without limitation
160
+ ### GitHub Pages without limitation
111
161
 
112
- GitHub Pages runs in `safe` mode and only allows [a set of whitelisted plugins/themes](https://pages.github.com/versions/). __In other words, the third-party gems will not work normally__.
162
+ GitHub Pages runs in `safe` mode and only allows [a set of whitelisted plugins/themes](https://pages.github.com/versions/). **In other words, the third-party gems will not work normally**.
113
163
 
114
164
  To use the third-party gem in GitHub Pages without limitation:
115
165
 
116
166
  Here is a GitHub Action named [jekyll-deploy-action](https://github.com/jeffreytse/jekyll-deploy-action) for Jekyll site deployment conveniently. 👍
117
167
 
118
-
119
168
  ## Usage
120
169
 
121
170
  Add or update your available layouts, includes, sass and/or assets.
@@ -140,6 +189,7 @@ You can start by [opening an issue](https://github.com/jeffreytse/jekyll-theme-y
140
189
  This theme is licensed under the [MIT license](https://opensource.org/licenses/mit-license.php) © JeffreyTse.
141
190
 
142
191
  <!-- External links -->
192
+
143
193
  [jekyll]: https://jekyllrb.com/
144
194
  [yat-git-repo]: https://github.com/jeffreytse/jekyll-theme-yat/
145
195
  [yat-live-demo]: https://jeffreytse.github.io/jekyll-theme-yat/
@@ -147,4 +197,4 @@ This theme is licensed under the [MIT license](https://opensource.org/licenses/m
147
197
  [jekyll-seo-tag]: https://github.com/jekyll/jekyll-seo-tag
148
198
  [jekyll-sitemap]: https://github.com/jekyll/jekyll-sitemap
149
199
  [jekyll-feed]: https://github.com/jekyll/jekyll-feed
150
- [hilight-js]: https://github.com/highlightjs/highlight.js
200
+ [highlight-js]: https://github.com/highlightjs/highlight.js
@@ -1,26 +1,26 @@
1
- # Translate languges
1
+ # Translate languages
2
2
  # langs refer to https://cloud.google.com/translate/docs/languages
3
3
 
4
4
  - lang: en
5
- img: https://www.countryflags.io/us/flat/64.png
5
+ img: https://cdn.countryflags.com/thumbs/united-states-of-america/flag-400.png
6
6
  text: English
7
7
 
8
8
  - lang: fr
9
- img: https://www.countryflags.io/fr/flat/64.png
10
- text: Franch
9
+ img: https://cdn.countryflags.com/thumbs/france/flag-400.png
10
+ text: French
11
11
 
12
12
  - lang: zh-CN
13
- img: https://www.countryflags.io/cn/flat/64.png
13
+ img: https://cdn.countryflags.com/thumbs/china/flag-400.png
14
14
  text: Chinese(Simple)
15
15
 
16
16
  - lang: ja
17
- img: https://www.countryflags.io/jp/flat/64.png
18
- text: Japan
17
+ img: https://cdn.countryflags.com/thumbs/japan/flag-400.png
18
+ text: Japanese
19
19
 
20
20
  - lang: ko
21
- img: https://www.countryflags.io/kr/flat/64.png
21
+ img: https://cdn.countryflags.com/thumbs/south-korea/flag-400.png
22
22
  text: Korean
23
23
 
24
24
  - lang: ru
25
- img: https://www.countryflags.io/ru/flat/64.png
26
- text: Russia
25
+ img: https://cdn.countryflags.com/thumbs/russia/flag-400.png
26
+ text: Russian
@@ -0,0 +1,6 @@
1
+ {% comment %}
2
+ Placeholder to allow defining custom head, in principle, you can add anything here, e.g. favicons:
3
+
4
+ 1. Head over to https://realfavicongenerator.net/ to add your own favicons.
5
+ 2. Customize default _includes/custom-head.html in your source directory and insert the given code snippet.
6
+ {% endcomment %}
@@ -0,0 +1,18 @@
1
+ <div id="click-to-top" class="click-to-top">
2
+ <i class="fa fa-arrow-up"></i>
3
+ </div>
4
+ <script>
5
+ (function () {
6
+ const clickToTop = document.getElementById('click-to-top');
7
+ window.addEventListener('scroll', () => {
8
+ if (window.scrollY > 100) {
9
+ clickToTop.classList.add('show')
10
+ }else {
11
+ clickToTop.classList.remove('show')
12
+ }
13
+ });
14
+ clickToTop.addEventListener('click', () => {
15
+ window.smoothScrollTo(0);
16
+ });
17
+ })();
18
+ </script>
@@ -0,0 +1,51 @@
1
+ {%- if site.utterances.follow_site_theme -%}
2
+ <div id="utterances-placeholder"></div>
3
+ <script>
4
+ const utterancesThemeFromDataTheme = () => {
5
+ const dataTheme = document.documentElement.getAttribute('data-theme');
6
+ return `github-${dataTheme}`;
7
+ };
8
+
9
+ const setUtterancesTheme = () => {
10
+ const iframe = document.querySelector('.utterances-frame');
11
+ if (iframe) {
12
+ const message = {
13
+ type: 'set-theme',
14
+ theme: utterancesThemeFromDataTheme()
15
+ };
16
+ iframe.contentWindow.postMessage(message, 'https://utteranc.es');
17
+ }
18
+ }
19
+
20
+ // dynamic change
21
+ const observer = new MutationObserver((mutationsList, observer) => {
22
+ for (let mutation of mutationsList) {
23
+ if (mutation.type === 'attributes' && mutation.attributeName === 'data-theme') {
24
+ setUtterancesTheme();
25
+ }
26
+ }
27
+ });
28
+ observer.observe(document.documentElement, { attributes: true, childList: false, subtree: false });
29
+
30
+ let utterancesScript = document.createElement('script');
31
+ utterancesScript.async = true;
32
+ utterancesScript.src = 'https://utteranc.es/client.js';
33
+ utterancesScript.crossOrigin = 'anonymous';
34
+ utterancesScript.setAttribute('issue-term', '{{ site.utterances.issue_term }}');
35
+ utterancesScript.setAttribute('label', '{{ site.utterances.label }}');
36
+ utterancesScript.setAttribute('repo', '{{ site.utterances.repo }}');
37
+ utterancesScript.setAttribute('theme', utterancesThemeFromDataTheme());
38
+
39
+ const placeholder = document.getElementById('utterances-placeholder');
40
+ placeholder.parentNode.replaceChild(utterancesScript, placeholder);
41
+ </script>
42
+ {%- else -%}
43
+ <script async
44
+ crossorigin="anonymous"
45
+ issue-term="{{ site.utterances.issue_term }}"
46
+ label="{{ site.utterances.label }}"
47
+ repo="{{ site.utterances.repo }}"
48
+ src="https://utteranc.es/client.js"
49
+ theme="{{ site.utterances.theme }}">
50
+ </script>
51
+ {%- endif -%}
@@ -14,6 +14,6 @@
14
14
  ga('send', 'pageview');
15
15
  }
16
16
  }
17
- initGoogleAnalytics();
17
+ window.addEventListener("load", initGoogleAnalytics);
18
18
  </script>
19
19
 
@@ -2,6 +2,10 @@
2
2
  {% assign translate_langs = include.translate_langs %}
3
3
  {% endif %}
4
4
 
5
+ {% if include.lang %}
6
+ {% assign lang = include.lang %}
7
+ {% endif %}
8
+
5
9
  <div id="google_translate_element" style="display: none;">
6
10
  </div>
7
11
 
@@ -24,11 +28,17 @@
24
28
  <script type="text/javascript">
25
29
  function googleTranslateElementInit() {
26
30
  new google.translate.TranslateElement({
27
- pageLanguage: '',
31
+ pageLanguage: '{{ lang }}',
28
32
  autoDisplay: false,
29
33
  layout: google.translate.TranslateElement.InlineLayout.VERTICAL
30
34
  }, 'google_translate_element');
31
35
 
36
+ // Links to cross-origin destinations are unsafe
37
+ var gll = document.getElementsByClassName('goog-logo-link')[0];
38
+ if (gll) {
39
+ gll.setAttribute('rel', 'noopener');
40
+ }
41
+
32
42
  function restoreLang() {
33
43
  var iframe = document.getElementsByClassName('goog-te-banner-frame')[0];
34
44
  if (!iframe) return;
@@ -1,6 +1,7 @@
1
1
  <script>
2
2
  function hashLocate(hashValue) {
3
3
  hashValue = hashValue.replace(/^.*#h-/, '');
4
+ hashValue = decodeURIComponent(hashValue);
4
5
  var element = document.getElementById(hashValue);
5
6
 
6
7
  if (!element) {
@@ -0,0 +1,39 @@
1
+ {% if include.params.article %}
2
+ {% assign article = include.params.article %}
3
+ {% endif %}
4
+
5
+ {% if include.params.lang %}
6
+ {% assign lang = include.params.lang %}
7
+ {% else %}
8
+ {% assign lang = lang | default: site.lang | default: "en" %}
9
+ {% endif %}
10
+
11
+ {% if include.params.excerpt_size %}
12
+ {% assign excerpt_size = include.params.excerpt_size %}
13
+ {% else %}
14
+ {% assign excerpt_size = excerpt_size
15
+ | default: site.excerpt_size
16
+ | default: 350 %}
17
+ {% endif %}
18
+
19
+ {%- include functions.html func='get_article_words' -%}
20
+ {% assign words = return %}
21
+
22
+ {% assign _article = article | strip_html %}
23
+ {% assign _words = _article | size %}
24
+
25
+ {% assign _size = excerpt_size %}
26
+
27
+ {% if lang != "en" %}
28
+ {% assign _size = words
29
+ | times: 1.0
30
+ | divided_by: _words
31
+ | times: _size
32
+ | round %}
33
+ {% endif %}
34
+
35
+ {% if _size > excerpt_size %}
36
+ {% assign _size = excerpt_size %}
37
+ {% endif %}
38
+
39
+ {% assign return = _article | truncate: _size %}
@@ -0,0 +1,26 @@
1
+ {% if include.params.article %}
2
+ {% assign article = include.params.article %}
3
+ {% endif %}
4
+
5
+ {% if include.params.lang %}
6
+ {% assign lang = include.params.lang %}
7
+ {% else %}
8
+ {% assign lang = lang | default: site.lang | default: "en" %}
9
+ {% endif %}
10
+
11
+ {% assign words = article | number_of_words %}
12
+
13
+ {% if lang != "en" %}
14
+ {% assign words = words
15
+ | times: 0.6
16
+ | round %}
17
+ {% assign words = article
18
+ | strip_html
19
+ | strip_newlines
20
+ | size
21
+ | times: 0.4
22
+ | plus: words
23
+ | round %}
24
+ {% endif %}
25
+
26
+ {% assign return = words %}
@@ -0,0 +1,68 @@
1
+ {%- include functions.html func='log' level='debug' msg='Get banner value' -%}
2
+ {% assign name = 'banner' %}
3
+ {%- include functions.html func='get_value' -%}
4
+ {% assign banner = return %}
5
+
6
+ {%- if banner.first -%}
7
+ {%- include functions.html func='log' level='debug' msg='Get banner_image value' -%}
8
+ {% assign name = 'banner.image' %}
9
+ {%- include functions.html func='get_value' -%}
10
+ {% assign banner_image = return | relative_url %}
11
+ {%- else -%}
12
+ {% assign banner_image = banner | relative_url %}
13
+ {%- endif -%}
14
+
15
+ {%- include functions.html func='log' level='debug' msg='Get banner_background value' -%}
16
+ {% assign name = 'banner.background' %}
17
+ {%- include functions.html func='get_value' -%}
18
+ {% assign banner_background = return %}
19
+
20
+ {%- include functions.html func='log' level='debug' msg='Get banner_opacity value' -%}
21
+ {% assign name = 'banner.opacity' %}
22
+ {%- include functions.html func='get_value' -%}
23
+ {% assign banner_opacity = return %}
24
+
25
+ {%- include functions.html func='log' level='debug' msg='Get banner_height value' -%}
26
+ {% assign name = 'banner.height' %}
27
+ {%- include functions.html func='get_value' -%}
28
+ {% assign banner_height = return %}
29
+
30
+ {%- include functions.html func='log' level='debug' msg='Get banner_min_height value' -%}
31
+ {% assign name = 'banner.min_height' %}
32
+ {%- include functions.html func='get_value' -%}
33
+ {% assign banner_min_height = return %}
34
+
35
+ {%- include functions.html func='log' level='debug' msg='Get banner_heading_style value' -%}
36
+ {% assign name = 'banner.heading_style' %}
37
+ {%- include functions.html func='get_value' -%}
38
+ {% assign banner_heading_style = return %}
39
+
40
+ {%- include functions.html func='log' level='debug' msg='Get banner_subheading_style value' -%}
41
+ {% assign name = 'banner.subheading_style' %}
42
+ {%- include functions.html func='get_value' -%}
43
+ {% assign banner_subheading_style = return %}
44
+
45
+ {%- include functions.html func='log' level='debug' msg='Get banner_video value' -%}
46
+ {% assign name = 'banner.video' %}
47
+ {%- include functions.html func='get_value' -%}
48
+ {% assign banner_video = return %}
49
+
50
+ {%- include functions.html func='log' level='debug' msg='Get banner_loop value' -%}
51
+ {% assign name = 'banner.loop' %}
52
+ {%- include functions.html func='get_value' default=true -%}
53
+ {% assign banner_loop = return %}
54
+
55
+ {%- include functions.html func='log' level='debug' msg='Get banner_volume value' -%}
56
+ {% assign name = 'banner.volume' %}
57
+ {%- include functions.html func='get_value' default=0 -%}
58
+ {% assign banner_volume = return %}
59
+
60
+ {%- include functions.html func='log' level='debug' msg='Get banner_start_at value' -%}
61
+ {% assign name = 'banner.start_at' %}
62
+ {%- include functions.html func='get_value' default=0 -%}
63
+ {% assign banner_start_at = return %}
64
+
65
+ {% if banner_image or banner_video %}
66
+ {% assign has_banner = true %}
67
+ {% endif %}
68
+
@@ -2,14 +2,22 @@
2
2
  {% assign article = include.params.article %}
3
3
  {% endif %}
4
4
 
5
+ {% if include.params.lang %}
6
+ {% assign lang = include.params.lang %}
7
+ {% else %}
8
+ {% assign lang = lang | default: site.lang | default: "en" %}
9
+ {% endif %}
10
+
5
11
  {% if include.params.speed %}
6
12
  {% assign speed = include.params.speed %}
7
13
  {% else %}
8
14
  {% assign speed = 160 %}
9
15
  {% endif %}
10
16
 
11
- {% assign total_mins = article
12
- | number_of_words
17
+ {%- include functions.html func='get_article_words' -%}
18
+ {% assign words = return %}
19
+
20
+ {% assign total_mins = words
13
21
  | divided_by: speed
14
22
  | at_least: 1 %}
15
23
 
@@ -2,31 +2,41 @@
2
2
  {%- assign name = include.params.name -%}
3
3
  {%- endif -%}
4
4
 
5
- {%- assign keys = name | split:'.'- %}
5
+ {%- assign return = nil -%}
6
+
7
+ {%- assign keys = name | split:'.' -%}
6
8
  {%- assign name = keys.first -%}
9
+ {%- assign keys = keys | shift -%}
7
10
 
8
- {%- if page[name] != nil -%}
9
- {%- assign return = page[name] -%}
10
- {%- elsif site[name] != nil -%}
11
- {%- assign return = site[name] -%}
12
- {%- elsif site.data[name] != nil -%}
13
- {%- assign return = site.data[name] -%}
14
- {%- elsif site.defaults[page.layout][name] != nil -%}
15
- {%- assign return = site.defaults[page.layout][name] -%}
16
- {%- elsif site.data.defaults[page.layout][name] != nil -%}
17
- {%- assign return = site.data.defaults[page.layout][name] -%}
18
- {%- elsif layout[name] != nil -%}
19
- {%- assign return = layout[name] -%}
20
- {%- else -%}
21
- {%- assign return = include.params.default -%}
22
- {%- endif -%}
11
+ {%- for step in (1..7) -%}
23
12
 
24
- {%- assign keys = keys | shift -%}
25
- {%- for key in keys -%}
26
- {%- assign return = return[key] -%}
27
- {%- if return == nil -%}
28
- {%- assign return = include.params.default -%}
13
+ {%- case step -%}
14
+ {%- when 1 -%}
15
+ {%- assign return = page[name] -%}
16
+ {%- when 2 -%}
17
+ {%- assign return = site[name] -%}
18
+ {%- when 3 -%}
19
+ {%- assign return = site.data[name] -%}
20
+ {%- when 4 -%}
21
+ {%- assign return = site.defaults[page.layout][name] -%}
22
+ {%- when 5 -%}
23
+ {%- assign return = site.data.defaults[page.layout][name] -%}
24
+ {%- when 6 -%}
25
+ {%- assign return = layout[name] -%}
26
+ {%- else -%}
27
+ {%- assign return = include.params.default -%}
28
+ {%- endcase -%}
29
+
30
+ {%- for key in keys -%}
31
+ {%- assign return = return[key] -%}
32
+ {%- if return == nil -%}
33
+ {%- break -%}
34
+ {%- endif -%}
35
+ {%- endfor -%}
36
+
37
+ {%- if return != nil -%}
29
38
  {%- break -%}
30
39
  {%- endif -%}
40
+
31
41
  {%- endfor -%}
32
42
 
@@ -16,6 +16,10 @@
16
16
  {%- include {{ include_path }} params=params-%}
17
17
  {%- endif -%}
18
18
 
19
+ {%- if return == nil -%}
20
+ {%- assign return = include.default -%}
21
+ {%- endif -%}
22
+
19
23
  {%- if func != 'log' -%}
20
24
  {%- assign msg = '[function]['
21
25
  | append: {{func}}
data/_includes/head.html CHANGED
@@ -2,9 +2,9 @@
2
2
  <meta charset="utf-8">
3
3
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
4
4
  <meta name="viewport" content="width=device-width, initial-scale=1">
5
- <meta name="google-translate-customization" content="108d9124921d80c3-80e20d618ff053c8-g4f02ec6f3dba68b7-c"></meta>
5
+ <meta name="google-translate-customization" content="108d9124921d80c3-80e20d618ff053c8-g4f02ec6f3dba68b7-c">
6
6
  {%- seo -%}
7
- <link rel="shortcut icon" href="{{ site.favicon }}">
7
+ <link rel="icon" href="{{ site.favicon }}">
8
8
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
9
9
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/typeface-noto-sans@0.0.72/index.min.css">
10
10
  <link rel="stylesheet" href="{{ "/assets/css/main.css" | relative_url }}">
@@ -14,4 +14,5 @@
14
14
  {%- include extensions/google-analytics.html -%}
15
15
  {%- endif -%}
16
16
  {%- include extensions/code-highlight.html -%}
17
+ {%- include custom-head.html -%}
17
18
  </head>
@@ -3,11 +3,6 @@
3
3
  {%- include functions.html func='get_value' -%}
4
4
  {% assign banner_html = return %}
5
5
 
6
- {%- include functions.html func='log' level='debug' msg='Get banner value' -%}
7
- {% assign name = 'banner' %}
8
- {%- include functions.html func='get_value' -%}
9
- {% assign banner = return %}
10
-
11
6
  {%- include functions.html func='log' level='debug' msg='Get heading value' -%}
12
7
  {% assign name = 'heading' %}
13
8
  {%- include functions.html func='get_value' -%}
@@ -18,10 +13,96 @@
18
13
  {%- include functions.html func='get_value' -%}
19
14
  {% assign subheading = return %}
20
15
 
21
- {% if banner %}
16
+ {%- include functions.html func='get_banner' -%}
17
+
18
+ {%- if has_banner -%}
19
+ {%- if banner_background -%}
20
+ <style>
21
+ html .page-banner {
22
+ background: {{ banner_background }};
23
+ }
24
+ </style>
25
+ {%- endif -%}
26
+ {%- if banner_height -%}
27
+ <style>
28
+ {%- assign num = banner_height | times: 1 -%}
29
+ {%- assign unit = banner_height | replace_first: num -%}
30
+ {%- assign banner_min_height = banner_min_height | default: banner_height -%}
31
+ html .page-banner {
32
+ height: {{ banner_height | times: 0.368 | append: unit }};
33
+ min-height: {{ banner_min_height }};
34
+ }
35
+ html[data-scroll-status="top"] .page-banner {
36
+ height: {{ banner_height }};
37
+ }
38
+ </style>
39
+ {%- endif -%}
40
+
41
+ {%- if banner_opacity -%}
42
+ <style>
43
+ html .page-banner .page-banner-img > *:first-child {
44
+ opacity: {{ banner_opacity }};
45
+ }
46
+
47
+ html[data-theme="dark"] .page-banner .page-banner-img > *:first-child {
48
+ opacity: {{ banner_opacity | times: 0.718 }};
49
+ }
50
+ </style>
51
+ {%- endif -%}
52
+ {%- if banner_heading_style -%}
53
+ <style>
54
+ html .page-banner .page-banner-inner > *:first-child > *:nth-child(1) {
55
+ {{ banner_heading_style }}
56
+ }
57
+ </style>
58
+ {%- endif -%}
59
+ {%- if banner_subheading_style -%}
60
+ <style>
61
+ html .page-banner .page-banner-inner > *:first-child > *:nth-child(2) {
62
+ {{ banner_subheading_style }}
63
+ }
64
+ </style>
65
+ {%- endif -%}
22
66
  <section class="page-banner">
23
67
  <div class="page-banner-img">
24
- <div style="background-image: url({{ banner | relative_url }})"></div>
68
+ {%- if banner_video -%}
69
+ <video
70
+ autoplay=""
71
+ poster="{{ banner_image }}"
72
+ playsinline
73
+ >
74
+ <source src="{{ banner_video }}">
75
+ </video>
76
+ <script>
77
+ (function() {
78
+ var video = document.querySelector('.page-banner .page-banner-img > video');
79
+ var videoPlay = function() {
80
+ video.play().catch (function() {
81
+ video.muted = true;
82
+ video.play();
83
+ });
84
+ }
85
+
86
+ video.onloadstart = function() {
87
+ video.currentTime = {{ banner_start_at }};
88
+ video.volume = {{ banner_volume }};
89
+ video.muted = (video.volume == 0);
90
+ videoPlay();
91
+ }
92
+
93
+ video.onended = function() {
94
+ video.currentTime = {{ banner_start_at }};
95
+ video.volume = 0;
96
+ {%- if banner_loop -%}
97
+ video.play();
98
+ {%- endif -%}
99
+ }
100
+ })();
101
+ </script>
102
+ {%- else -%}
103
+ <div style="background-image: url({{ banner_image }})"></div>
104
+ <img class="img-placeholder" src="{{ banner_image }}">
105
+ {%- endif -%}
25
106
  </div>
26
107
  <div class="wrapper">
27
108
  <div class="page-banner-inner">
@@ -3,9 +3,17 @@
3
3
 
4
4
  <div class="wrapper">
5
5
  <div class="site-footer-inner">
6
- <div>{{ site.copyright }} {% if site.author %}@{{ site.author | escape }}{% endif %}</div>
6
+ {%- assign currentYear = 'now' | date: "%Y" -%}
7
+ {%- assign copyright = site.copyright
8
+ | replace: '{currentYear}', currentYear
9
+ | replace: '{author}', site.author
10
+ | replace: '(c)', '&copy;'
11
+ | replace: '(p)', '℗'
12
+ | replace: '(cleft)', '<span class="copyleft">&copy;</span>'
13
+ -%}
14
+ <div>{{ copyright }}</div>
7
15
  <div>Powered by <a title="Jekyll is a simple, blog-aware, static site
8
- generator." href="http://jekyllrb.com/">Jekyll</a> &amp; <a title="Yat, yet
16
+ generator." href="https://jekyllrb.com/">Jekyll</a> &amp; <a title="Yat, yet
9
17
  another theme." href="https://github.com/jeffreytse/jekyll-theme-yat">Yat Theme</a>.</div>
10
18
  <div class="footer-col rss-subscribe">Subscribe <a href="{{ "/feed.xml" | relative_url }}">via RSS</a></div>
11
19
  </div>
@@ -1,15 +1,12 @@
1
1
 
2
- {%- include functions.html func='log' level='debug' msg='Get banner value' -%}
3
- {%- assign name = 'banner' -%}
4
- {%- include functions.html func='get_value' -%}
5
- {% assign banner = return %}
2
+ {%- include functions.html func='get_banner' -%}
6
3
 
7
4
  {%- include functions.html func='log' level='debug' msg='Get header_transparent value' -%}
8
5
  {%- assign name = 'header_transparent' -%}
9
6
  {%- include functions.html func='get_value' default=true -%}
10
7
  {%- assign header_transparent = return -%}
11
8
 
12
- {%- if banner and header_transparent -%}
9
+ {%- if has_banner and header_transparent -%}
13
10
  {%- assign header_transparent_class = "site-header-transparent" -%}
14
11
  {%- endif -%}
15
12
 
@@ -47,6 +44,9 @@
47
44
  {%- include functions.html func='get_value' -%}
48
45
  {%- assign translate_langs = return -%}
49
46
  {%- if translate_langs.size > 0 -%}
47
+ {%- assign name = 'lang' -%}
48
+ {%- include functions.html func='get_value' default='en' -%}
49
+ {%- assign lang = return -%}
50
50
  <span class="page-link">
51
51
  {%- include extensions/google-translate.html -%}
52
52
  </span>
@@ -59,7 +59,7 @@
59
59
  </header>
60
60
 
61
61
  <script>
62
- (function() {
62
+ function initHeader() {
63
63
  var lastScrollY = getScrollPos().y;
64
64
  var documentElement = document.documentElement;
65
65
 
@@ -90,5 +90,6 @@
90
90
  });
91
91
 
92
92
  storeScrollData();
93
- })();
93
+ }
94
+ document.addEventListener('DOMContentLoaded', initHeader);
94
95
  </script>
@@ -13,11 +13,14 @@
13
13
  {%- assign date_format = site.yat.date_format | default: "%b %-d, %Y" -%}
14
14
 
15
15
  {% assign article = post.content %}
16
+ {% assign lang = post.lang %}
16
17
  {%- include functions.html func='get_reading_time' -%}
17
18
  {% assign reading_time = return %}
19
+ {%- include functions.html func='get_article_excerpt' -%}
20
+ {% assign excerpt = return %}
21
+ {%- assign post_url = post.url | relative_url -%}
18
22
 
19
23
  <h2 class="post-title">
20
- {%- assign post_url = post.url | relative_url -%}
21
24
  <a class="post-link" href="{{ post_url }}">
22
25
  {{ post.title | escape }}
23
26
  </a>
@@ -26,12 +29,14 @@
26
29
  <span class="post-date"><i class="fa fa-calendar"></i> {{ post.date | date: date_format }}</span>
27
30
  <span class="post-reading-time left-vsplit"><i class="fa fa-clock-o"></i> {{ reading_time }}</span>
28
31
  </div>
29
- <p class="post-excerpt">
30
- {{ post.content | strip_html | truncatewords: 50 }}
31
- </p>
32
+ <a class="post-excerpt" href="{{ post_url }}">
33
+ <p>
34
+ {{ excerpt }} <span class="read_more">Read More</span>
35
+ </p>
36
+ </a>
32
37
  <div class="post-tags">
33
38
  {%- for tag in post.tags -%}
34
- <a class="post-tag" href="/tags.html#{{tag}}">#{{tag}}</a>
39
+ <a class="post-tag" href="{{ '/tags.html ' | relative_url }}#{{tag}}">#{{tag}}</a>
35
40
  {%- endfor -%}
36
41
  </div>
37
42
  </li>
@@ -1,6 +1,6 @@
1
1
  <header class="post-header">
2
2
  <h1 class="post-title p-name" itemprop="name headline">{{ heading | default: page.title | escape }}</h1>
3
- <h3 class="post-subtitle">{{ subheading | default: page.subtitle | escape }}</h3>
3
+ <h2 class="post-subtitle">{{ subheading | default: page.subtitle | escape }}</h2>
4
4
 
5
5
  <p class="post-meta">
6
6
  <time class="dt-published" datetime="{{ page.date | date_to_xmlschema }}" itemprop="datePublished">
@@ -9,6 +9,7 @@
9
9
  </time>
10
10
 
11
11
  {% assign article = page.content %}
12
+ {% assign lang = page.lang %}
12
13
  {%- include functions.html func='get_reading_time' -%}
13
14
  {% assign reading_time = return %}
14
15
  <span class="post-reading-time left-vsplit"><i class="fa fa-clock-o"></i> {{ reading_time }}</span>
@@ -13,6 +13,8 @@
13
13
 
14
14
  {%- include extensions/theme-toggle.html -%}
15
15
 
16
+ {%- include extensions/click-to-top.html -%}
17
+
16
18
  <main class="page-content" aria-label="Content">
17
19
  <div class="wrapper">
18
20
  {{ content }}
data/_layouts/post.html CHANGED
@@ -69,6 +69,10 @@ sidebar:
69
69
  {%- include extensions/comments/gitment.html -%}
70
70
  {%- endif -%}
71
71
 
72
+ {%- if site.utterances.repo -%}
73
+ {%- include extensions/comments/utterances.html -%}
74
+ {%- endif -%}
75
+
72
76
  {%- endif -%}
73
77
  </div>
74
78
  {%- endif -%}
@@ -23,7 +23,7 @@
23
23
  @for $i from 2 to 7 {
24
24
  .h-h#{$i} {
25
25
  padding-inline-start: $indent + ($i - 2) * $base-font-size * 1.3;
26
- font-size: $base-font-size * 1.2;
26
+ font-size: $base-font-size * 1.1;
27
27
  line-height: 1.4;
28
28
  }
29
29
  }
@@ -0,0 +1,46 @@
1
+ .click-to-top {
2
+ transition: 0.3s;
3
+ display: flex;
4
+ align-items: center;
5
+ justify-content: center;
6
+ position: fixed;
7
+ width: 64px;
8
+ height: 64px;
9
+ border-radius: 32px;
10
+ right: 60px;
11
+ bottom: 48px;
12
+ background: white;
13
+ cursor: pointer;
14
+ opacity: 0;
15
+ transform: translateY(10px);
16
+ box-shadow: 0 2px 15px rgba(0, 0, 0, 0.15);
17
+ font-size: 24px;
18
+ user-select: none;
19
+
20
+ @include media-query(1024px) {
21
+ width: 48px;
22
+ height: 48px;
23
+ border-radius: 24px;
24
+ right: 35px;
25
+ font-size: 20px;
26
+ }
27
+
28
+ @include media-query($on-palm) {
29
+ width: 36px;
30
+ height: 36px;
31
+ border-radius: 18px;
32
+ right: 20px;
33
+ font-size: 16px;
34
+ }
35
+ }
36
+
37
+ .click-to-top.show {
38
+ opacity: 1;
39
+ transform: translateY(0);
40
+ }
41
+
42
+ html[data-theme="dark"] {
43
+ .click-to-top {
44
+ background: #34323D;
45
+ }
46
+ }
@@ -2,6 +2,10 @@
2
2
  color: #787878 !important;
3
3
  }
4
4
 
5
+ .gitment-editor-header {
6
+ background-color: #fefefe;
7
+ }
8
+
5
9
  .gitment-comment-main, .gitment-editor-main {
6
10
  background-color: #fff;
7
11
  border-radius: 3px !important;
@@ -96,7 +96,7 @@ div#google_translate_element {
96
96
  }
97
97
 
98
98
  /* HIDE the google translate toolbar */
99
- .goog-te-banner-frame.skiptranslate {
99
+ .skiptranslate {
100
100
  display: none !important;
101
101
  border: none;
102
102
  box-shadow: 0 0;
data/_sass/yat/_base.scss CHANGED
@@ -17,6 +17,7 @@ body {
17
17
  font-family: $base-font-family;
18
18
  font-weight: $base-font-weight;
19
19
  font-size: #{$base-font-size};
20
+ font-display: swap;
20
21
  line-height: #{$base-line-height};
21
22
  color: $text-color;
22
23
  background-color: $background-color;
data/_sass/yat/_dark.scss CHANGED
@@ -2,11 +2,22 @@ $dark-background-color: #0e0e0e !default;
2
2
  $dark-text-color: #bbb !default;
3
3
 
4
4
  html[data-theme="dark"] {
5
-
6
5
  &[data-scroll-status='top'] {
7
- .site-footer-inner {
8
- border-top: solid 1px #2f2f2f !important;
9
- transition: 0s;
6
+ header.site-header-transparent {
7
+ &.site-header {
8
+ @include media-query($on-laptop) {
9
+ .page-link {
10
+ color: #f8f8f8;
11
+ }
12
+ }
13
+ }
14
+ }
15
+
16
+ footer.site-footer {
17
+ .site-footer-inner {
18
+ border-top: solid 1px #2f2f2f !important;
19
+ transition: 0s;
20
+ }
10
21
  }
11
22
  }
12
23
 
@@ -20,6 +31,10 @@ html[data-theme="dark"] {
20
31
  background-color: #454545;
21
32
  }
22
33
 
34
+ blockquote {
35
+ border-left: 4px solid #484848;
36
+ }
37
+
23
38
  table {
24
39
  color: #9d9d9d;
25
40
 
@@ -80,7 +95,7 @@ html[data-theme="dark"] {
80
95
  .page-banner {
81
96
  .page-banner-img {
82
97
  & > *:first-child {
83
- opacity: 0.8;
98
+ opacity: 0.718;
84
99
  }
85
100
  }
86
101
  }
@@ -127,9 +142,15 @@ html[data-theme="dark"] {
127
142
  }
128
143
  }
129
144
 
130
- .post .post-content {
131
- img:not([raw]) {
132
- background-color: #ffffff33;
145
+ .post {
146
+ .post-header {
147
+ border-bottom: 1px solid #555;
148
+ }
149
+
150
+ .post-content {
151
+ img:not(.emoji):not([raw]) {
152
+ background-color: #ffffff33;
153
+ }
133
154
  }
134
155
  }
135
156
 
@@ -23,7 +23,7 @@ html {
23
23
 
24
24
  @include media-query($on-laptop) {
25
25
  .page-link {
26
- color: unset;
26
+ color: $header-text-color;
27
27
  }
28
28
 
29
29
  .menu-icon {
@@ -36,6 +36,7 @@ html {
36
36
  }
37
37
 
38
38
  footer.site-footer {
39
+ color: unset;
39
40
  background-color: transparent;
40
41
 
41
42
  .site-footer-inner {
@@ -209,6 +210,11 @@ html {
209
210
  }
210
211
  }
211
212
 
213
+ .copyleft {
214
+ display: inline-block;
215
+ transform: rotate(180deg);
216
+ }
217
+
212
218
  /**
213
219
  * Post header
214
220
  */
@@ -274,7 +280,7 @@ html {
274
280
  }
275
281
 
276
282
  .post-title {
277
- margin-bottom: 2px;
283
+ margin-bottom: $spacing-unit * 0.2;
278
284
  transition: 0.2s all;
279
285
 
280
286
  a {
@@ -306,24 +312,28 @@ html {
306
312
  }
307
313
 
308
314
  .post-link {
309
- @include relative-font-size(1.5);
315
+ @include relative-font-size(1.65);
310
316
  font-weight: $base-font-weight * 1.5;
311
- color: #15171a;
317
+ color: #333;
312
318
  }
313
319
 
314
320
  .post-excerpt {
315
321
  color: #777;
322
+ word-break: break-word;
323
+ overflow-wrap: break-word;
316
324
  }
317
325
 
318
326
  .post-tags .post-tag {
327
+ display: inline-block;
319
328
  text-decoration: none;
320
329
  border: 1px solid;
321
330
  padding: 2px 4px;
322
331
  border-radius: 2px;
323
332
  transition: color 0.2s;
333
+ margin-bottom: 8px;
324
334
 
325
- &:not(:first-child) {
326
- margin-left: 8px;
335
+ &:not(:last-child) {
336
+ margin-right: 8px;
327
337
  }
328
338
 
329
339
  &:hover {
@@ -379,7 +389,11 @@ html {
379
389
  border-bottom: 1px solid #ebebeb;
380
390
 
381
391
  .post-title {
382
- margin-bottom: 2px;
392
+ margin-bottom: 6px;
393
+ }
394
+
395
+ .post-subtitle {
396
+ font-weight: lighter;
383
397
  }
384
398
 
385
399
  .post-meta {
@@ -420,6 +434,9 @@ html {
420
434
  img, svg, iframe {
421
435
  margin-left: auto;
422
436
  margin-right: auto;
437
+ }
438
+
439
+ img:not(.emoji), svg, iframe {
423
440
  display: block;
424
441
  }
425
442
 
@@ -569,6 +586,15 @@ html {
569
586
  @include center-image;
570
587
  transition: 0.1s all ease-in-out;
571
588
  }
589
+
590
+ & > video {
591
+ width: 100vw;
592
+ object-fit: cover;
593
+ }
594
+
595
+ & > img.img-placeholder {
596
+ display: none;
597
+ }
572
598
  }
573
599
 
574
600
  .wrapper {
@@ -588,18 +614,23 @@ html {
588
614
  > :nth-child(1) {
589
615
  @include relative-font-size(3.9);
590
616
  letter-spacing: -1px;
591
- margin-bottom: 16px;
617
+ margin-bottom: 0.1em;
592
618
  font-weight: normal;
593
619
  transition: 0.2s all;
594
620
 
595
621
  @include media-query($on-palm) {
596
- @include relative-font-size(2.425);
622
+ @include relative-font-size(1.975);
597
623
  }
598
624
  }
599
625
 
600
626
  > :nth-child(2) {
601
- font-weight: normal;
602
- margin-bottom: 0;
627
+ font-weight: lighter;
628
+ margin-bottom: 0.8em;
629
+ transition: 0.2s all;
630
+
631
+ @include media-query($on-palm) {
632
+ @include relative-font-size(1.175);
633
+ }
603
634
  }
604
635
 
605
636
  > :last-child {
data/_sass/yat.scss CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  // Define defaults for each variable.
4
4
 
5
- $base-font-family: "Noto Sans Light", AppleSDGothicNeo-Regular, "Malgun Gothic", "Apple Color Emoji", Helvetica, Arial, Oswald, sans-serif, !default;
5
+ $base-font-family: Helvetica, Arial, Oswald, sans-serif, !default;
6
6
  $base-font-size: 14px !default;
7
7
  $base-font-weight: 400 !default;
8
8
  $small-font-size: $base-font-size * 0.875 !default;
@@ -12,7 +12,6 @@ $spacing-unit: 30px !default;
12
12
 
13
13
  $text-color: #454545 !default;
14
14
  $background-color: #fff !default;
15
- $brand-color: #ff5100 !default;
16
15
 
17
16
  $grey-color: #828282 !default;
18
17
  $grey-color-light: lighten($grey-color, 40%) !default;
@@ -35,7 +34,7 @@ $banner-text-color: lighten($white-color, 0%) !default;
35
34
  $banner-background: rgba(0,0,0,0.8) !default;
36
35
 
37
36
  // Width of the content area
38
- $content-width: 920px !default;
37
+ // $content-width: 920px !default;
39
38
 
40
39
  $on-palm: 600px !default;
41
40
  $on-laptop: 800px !default;
@@ -66,5 +65,6 @@ $on-laptop: 800px !default;
66
65
  "misc/article-menu",
67
66
  "misc/common-list",
68
67
  "misc/google-translate",
69
- "misc/gitment"
68
+ "misc/gitment",
69
+ "misc/click-to-top"
70
70
  ;
data/assets/css/main.scss CHANGED
@@ -4,13 +4,22 @@
4
4
 
5
5
  // Default theme colors
6
6
  $theme-colors: (
7
- coolblack: #090a0b,
8
- spacegrey: #353535,
9
- snowwhite: #ffffff,
7
+ "coolblack": #090a0b,
8
+ "spacegrey": #353535,
9
+ "snowwhite": #ffffff,
10
+ );
11
+
12
+ // Default brand colors
13
+ $brand-colors: (
14
+ "orangered": #ff5100,
15
+ "greatgold": #f2cb05,
16
+ "greenblue": #389092,
10
17
  );
11
18
 
12
19
  $theme-name: "{{ site.theme_color }}";
20
+ $brand-name: "{{ site.brand_color }}";
13
21
  $theme-color: map-get($theme-colors, "snowwhite");
22
+ $brand-color: map-get($brand-colors, "orangered");
14
23
 
15
24
  @if map-has-key($theme-colors, $theme-name) {
16
25
  $theme-color: map-get($theme-colors, $theme-name);
@@ -18,4 +27,12 @@ $theme-color: map-get($theme-colors, "snowwhite");
18
27
  $theme-color: {{ site.theme_color | default: '#ffffff' }};
19
28
  }
20
29
 
30
+ @if map-has-key($brand-colors, $brand-name) {
31
+ $brand-color: map-get($brand-colors, $brand-name);
32
+ } @else if str-index($brand-name, "#") == 1 {
33
+ $brand-color: {{ site.brand_color | default: '#ff5100' }};
34
+ }
35
+
36
+ $content-width: {{ site.content_width | default: '920px' }};
37
+
21
38
  @import "yat";
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-theme-yat
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 1.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - jeffreytse
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-08 00:00:00.000000000 Z
11
+ date: 2023-02-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -140,9 +140,9 @@ dependencies:
140
140
  - - "~>"
141
141
  - !ruby/object:Gem::Version
142
142
  version: '0.2'
143
- description:
143
+ description:
144
144
  email:
145
- - jeffreytse.mail@gmail.com
145
+ - hello@jeffreytse.net
146
146
  executables: []
147
147
  extensions: []
148
148
  extra_rdoc_files: []
@@ -151,9 +151,12 @@ files:
151
151
  - README.md
152
152
  - _data/defaults.yml
153
153
  - _data/translate_langs.yml
154
+ - _includes/custom-head.html
155
+ - _includes/extensions/click-to-top.html
154
156
  - _includes/extensions/code-highlight.html
155
157
  - _includes/extensions/comments/disqus.html
156
158
  - _includes/extensions/comments/gitment.html
159
+ - _includes/extensions/comments/utterances.html
157
160
  - _includes/extensions/geopattern.html
158
161
  - _includes/extensions/google-analytics.html
159
162
  - _includes/extensions/google-translate.html
@@ -162,6 +165,9 @@ files:
162
165
  - _includes/extensions/theme-toggle.html
163
166
  - _includes/extensions/trianglify.html
164
167
  - _includes/functions.html
168
+ - _includes/functions/get_article_excerpt.html
169
+ - _includes/functions/get_article_words.html
170
+ - _includes/functions/get_banner.html
165
171
  - _includes/functions/get_categories.html
166
172
  - _includes/functions/get_datetimes.html
167
173
  - _includes/functions/get_reading_time.html
@@ -196,6 +202,7 @@ files:
196
202
  - _layouts/post.html
197
203
  - _layouts/tags.html
198
204
  - _sass/misc/article-menu.scss
205
+ - _sass/misc/click-to-top.scss
199
206
  - _sass/misc/common-list.scss
200
207
  - _sass/misc/gitment.scss
201
208
  - _sass/misc/google-translate.scss
@@ -212,7 +219,7 @@ licenses:
212
219
  - MIT
213
220
  metadata:
214
221
  plugin_type: theme
215
- post_install_message:
222
+ post_install_message:
216
223
  rdoc_options: []
217
224
  require_paths:
218
225
  - lib
@@ -227,8 +234,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
227
234
  - !ruby/object:Gem::Version
228
235
  version: '0'
229
236
  requirements: []
230
- rubygems_version: 3.0.8
231
- signing_key:
237
+ rubygems_version: 3.0.3.1
238
+ signing_key:
232
239
  specification_version: 4
233
240
  summary: Yet another theme for elegant writers with modern flat style and beautiful
234
241
  night/dark mode.