jekyll-theme-yat 1.4.1 → 1.5.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +35 -2
- data/_includes/sidebar/archive-list.html +1 -1
- data/_includes/sidebar/article-menu.html +50 -2
- data/_includes/sidebar/category-list.html +1 -1
- data/_includes/sidebar/common-list.html +1 -1
- data/_includes/sidebar/tag-list.html +1 -1
- data/_includes/views/banner.html +1 -1
- data/_layouts/about.html +9 -0
- data/_layouts/post.html +28 -11
- data/_sass/misc/article-menu.scss +3 -2
- data/_sass/yat/_base.scss +1 -5
- data/_sass/yat/_layout.scss +9 -0
- data/assets/images/banners/home.jpeg +0 -0
- data/assets/js/main.js +4 -6
- metadata +33 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e7798cd9d88a662d31fa6307d3e6023f1855e45a4354f4416ce2151fe3eb9cc9
|
4
|
+
data.tar.gz: ab43762bac580d9a597590120dc13b381349889343c4c3c45e76da9a6f3b1365
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c84f727863bb487ede96c9f98503ddfff7475f7703095940425134a11d42298e8850cfa8e019e0e51f085618373a5312ab6578a7254e0101b77465b03ad014e3
|
7
|
+
data.tar.gz: 8f6fe2eebc563c1d83ab715c4cb1083cb870a34d0518f5dfe00bb14dc8b24d37c31cd5888a0b0e239f7c14c4dad9a2915df75800581a14c413d78d7535e645c6
|
data/README.md
CHANGED
@@ -1,4 +1,5 @@
|
|
1
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)
|
2
3
|
[![Gem Version](https://badge.fury.io/rb/jekyll-theme-yat.svg)](http://badge.fury.io/rb/jekyll-theme-yat)
|
3
4
|
[![License: MIT](https://img.shields.io/badge/License-MIT-brightgreen.svg)](https://opensource.org/licenses/MIT)
|
4
5
|
[![Donate (Liberapay)](http://img.shields.io/liberapay/goal/jeffreytse.svg?logo=liberapay)](https://liberapay.com/jeffreytse)
|
@@ -13,10 +14,27 @@ Hey, nice to meet you, you found this Jekyll theme. Here the yet another theme i
|
|
13
14
|
|
14
15
|
<p align="center">
|
15
16
|
|
16
|
-
<img src="https://user-images.githubusercontent.com/9413601/
|
17
|
+
<img src="https://user-images.githubusercontent.com/9413601/91842897-6a840b00-ec87-11ea-95ca-52abcc1ac063.png" alt="demo-screenshot" width="780px"/>
|
17
18
|
|
18
19
|
</p>
|
19
20
|
|
21
|
+
## Features
|
22
|
+
|
23
|
+
- Full layouts `home`, `post`, `tags`, `archive` and `about`.
|
24
|
+
- Uses font awesome 5 for icons.
|
25
|
+
- Beautiful Syntax Highlight using [hilight.js][hilight-js].
|
26
|
+
- RSS support using [Jekyll Feed][jekyll-feed] gem.
|
27
|
+
- Optimized for search engines using [Jekyll Seo Tag][jekyll-seo-tag] gem.
|
28
|
+
- Sitemap support using [Jekyll Sitemap][jekyll-sitemap] gem.
|
29
|
+
- Complex and flexible table support using [Jekyll Spaceship][jekyll-spaceship] gem.
|
30
|
+
- MathJAX and LaTeX optional support using [Jekyll Spaceship][jekyll-spaceship] gem.
|
31
|
+
- Media (Youtube, Spotify, etc.) support using [Jekyll Spaceship][jekyll-spaceship] gem.
|
32
|
+
- Diagram (PlantUML, Mermaid) support using [Jekyll Spaceship][jekyll-spaceship] gem.
|
33
|
+
- Google Translation support.
|
34
|
+
- New post tag support.
|
35
|
+
|
36
|
+
Also, visit the live [demo][yat-live-demo] site for the theme.
|
37
|
+
|
20
38
|
## Installation
|
21
39
|
|
22
40
|
Add this line to your Jekyll site's `Gemfile`:
|
@@ -41,7 +59,12 @@ Or install it yourself as:
|
|
41
59
|
|
42
60
|
## Usage
|
43
61
|
|
44
|
-
|
62
|
+
Add or update your available layouts, includes, sass and/or assets.
|
63
|
+
|
64
|
+
GitHub Pages runs in `safe` mode and only allows [a set of whitelisted plugins](https://pages.github.com/versions/).
|
65
|
+
To use the third-party gem in GitHub Pages without limitation:
|
66
|
+
|
67
|
+
* Here is a GitHub Action named [jekyll-deploy-action](https://github.com/jeffreytse/jekyll-deploy-action) for Jekyll site deployment conveniently. 👍
|
45
68
|
|
46
69
|
## Development
|
47
70
|
|
@@ -61,3 +84,13 @@ You can start by [opening an issue](https://github.com/jeffreytse/jekyll-theme-y
|
|
61
84
|
## License
|
62
85
|
|
63
86
|
This theme is licensed under the [MIT license](https://opensource.org/licenses/mit-license.php) © JeffreyTse.
|
87
|
+
|
88
|
+
<!-- External links -->
|
89
|
+
[jekyll]: https://jekyllrb.com/
|
90
|
+
[yat-git-repo]: https://github.com/jeffreytse/jekyll-theme-yat/
|
91
|
+
[yat-live-demo]: https://jeffreytse.github.io/jekyll-theme-yat/
|
92
|
+
[jekyll-spaceship]: https://github.com/jeffreytse/jekyll-spaceship
|
93
|
+
[jekyll-seo-tag]: https://github.com/jekyll/jekyll-seo-tag
|
94
|
+
[jekyll-sitemap]: https://github.com/jekyll/jekyll-sitemap
|
95
|
+
[jekyll-feed]: https://github.com/jekyll/jekyll-feed
|
96
|
+
[hilight-js]: https://github.com/highlightjs/highlight.js
|
@@ -36,10 +36,54 @@
|
|
36
36
|
// The header element
|
37
37
|
var header = document.querySelector('header.site-header');
|
38
38
|
|
39
|
+
function doMenuCollapse(index, over_items=20) {
|
40
|
+
var items = menuContent.firstChild.children;
|
41
|
+
|
42
|
+
if (items.length < over_items) {
|
43
|
+
return;
|
44
|
+
}
|
45
|
+
|
46
|
+
var activeItem = items[index];
|
47
|
+
var beginItem = activeItem
|
48
|
+
var endItem = activeItem
|
49
|
+
var beginIndex = index;
|
50
|
+
var endIndex = index + 1;
|
51
|
+
while (beginIndex >= 0
|
52
|
+
&& !items[beginIndex].classList.contains('h-h2')) {
|
53
|
+
beginIndex -= 1;
|
54
|
+
}
|
55
|
+
while (endIndex < items.length
|
56
|
+
&& !items[endIndex].classList.contains('h-h2')) {
|
57
|
+
endIndex += 1;
|
58
|
+
}
|
59
|
+
for (var i = 0; i < beginIndex; i++) {
|
60
|
+
item = items[i]
|
61
|
+
if (!item.classList.contains('h-h2')) {
|
62
|
+
item.style.display = 'none';
|
63
|
+
}
|
64
|
+
}
|
65
|
+
for (var i = beginIndex + 1; i < endIndex; i++) {
|
66
|
+
item = items[i]
|
67
|
+
// if (!item.classList.contains('h-h2')) {
|
68
|
+
item.style.display = '';
|
69
|
+
// }
|
70
|
+
}
|
71
|
+
for (var i = endIndex; i < items.length; i++) {
|
72
|
+
item = items[i]
|
73
|
+
if (!item.classList.contains('h-h2')) {
|
74
|
+
item.style.display = 'none';
|
75
|
+
}
|
76
|
+
}
|
77
|
+
}
|
78
|
+
|
79
|
+
// Init menu collapsed
|
80
|
+
doMenuCollapse(-1);
|
81
|
+
|
39
82
|
// Active the menu item
|
40
83
|
window.addEventListener('scroll', function (event) {
|
41
84
|
var lastActive = menuContent.querySelector('.active');
|
42
85
|
var changed = true;
|
86
|
+
var activeIndex = -1;
|
43
87
|
for (var i = headings.length - 1; i >= 0; i--) {
|
44
88
|
var h = headings[i];
|
45
89
|
var headingRect = h.getBoundingClientRect();
|
@@ -53,6 +97,7 @@
|
|
53
97
|
var curActive = a.parentNode;
|
54
98
|
if (curActive) {
|
55
99
|
curActive.classList.add('active');
|
100
|
+
activeIndex = i;
|
56
101
|
}
|
57
102
|
if (lastActive == curActive) {
|
58
103
|
changed = false;
|
@@ -60,8 +105,11 @@
|
|
60
105
|
break;
|
61
106
|
}
|
62
107
|
}
|
63
|
-
if (
|
64
|
-
lastActive
|
108
|
+
if (changed) {
|
109
|
+
if (lastActive) {
|
110
|
+
lastActive.classList.remove('active');
|
111
|
+
}
|
112
|
+
doMenuCollapse(activeIndex);
|
65
113
|
}
|
66
114
|
event.preventDefault();
|
67
115
|
});
|
data/_includes/views/banner.html
CHANGED
@@ -21,7 +21,7 @@
|
|
21
21
|
{% if banner %}
|
22
22
|
<section class="page-banner">
|
23
23
|
<div class="page-banner-img">
|
24
|
-
<div style="background-image: url({{ banner }})"></div>
|
24
|
+
<div style="background-image: url({{ banner | relative_url }})"></div>
|
25
25
|
</div>
|
26
26
|
<div class="wrapper">
|
27
27
|
<div class="page-banner-inner">
|
data/_layouts/about.html
ADDED
data/_layouts/post.html
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
layout: framework
|
3
3
|
banner:
|
4
4
|
banner_html: post-header.html
|
5
|
+
hidden: []
|
5
6
|
sidebar:
|
6
7
|
- article-menu
|
7
8
|
---
|
@@ -13,47 +14,63 @@ sidebar:
|
|
13
14
|
{%- include functions.html func='get_value' -%}
|
14
15
|
{%- assign banner = return -%}
|
15
16
|
|
16
|
-
{%-
|
17
|
+
{%- assign name = 'hidden' -%}
|
18
|
+
{%- include functions.html func='get_value' -%}
|
19
|
+
{%- assign hidden = return -%}
|
20
|
+
|
21
|
+
{%- assign result = hidden | where_exp: "item", "item == 'header'" -%}
|
22
|
+
{%- if banner == nil and result.size == 0 -%}
|
17
23
|
{%- include views/post-header.html -%}
|
18
24
|
{%- endif -%}
|
19
25
|
|
20
26
|
{%- include views/article.html -%}
|
21
27
|
|
28
|
+
{%- assign result = hidden | where_exp: "item", "item == 'navigator'" -%}
|
29
|
+
{%- if result.size == 0 -%}
|
22
30
|
<div class="post-nav">
|
23
31
|
{%- if page.previous -%}
|
24
|
-
<a class="previous" href="{{ page.previous.url }}" title="{{
|
32
|
+
<a class="previous" href="{{ page.previous.url | relative_url }}" title="{{
|
25
33
|
page.previous.title | escape }}">{{ page.previous.title | escape | truncatewords: 6 }}</a>
|
26
34
|
{%- else -%}
|
27
35
|
<span></span>
|
28
36
|
{%- endif -%}
|
29
37
|
|
30
38
|
{%- if page.next -%}
|
31
|
-
<a class="next" href="{{ page.next.url }}" title="{{ page.next.title | escape }}">{{ page.next.title | escape | truncatewords: 6 }}</a>
|
39
|
+
<a class="next" href="{{ page.next.url | relative_url }}" title="{{ page.next.title | escape }}">{{ page.next.title | escape | truncatewords: 6 }}</a>
|
32
40
|
{%- else -%}
|
33
41
|
<span></span>
|
34
42
|
{%- endif -%}
|
35
43
|
</div>
|
44
|
+
{%- endif -%}
|
36
45
|
|
46
|
+
{%- assign result = hidden | where_exp: "item", "item == 'related_posts'" -%}
|
47
|
+
{%- if result.size == 0 -%}
|
37
48
|
<div class="post-related">
|
38
49
|
<div>Related Articles</div>
|
39
50
|
<ul>
|
40
51
|
{% assign posts = site[page.collection] | sample:4 %}
|
41
52
|
{%- for post in posts -%}
|
42
|
-
<li><a class="post-link" href="{{post.url}}" title="{{ page.next.title | escape }}">{{ post.title | escape | truncatewords: 12 }}</a></li>
|
53
|
+
<li><a class="post-link" href="{{post.url | relative_url}}" title="{{ page.next.title | escape }}">{{ post.title | escape | truncatewords: 12 }}</a></li>
|
43
54
|
{%- endfor -%}
|
44
55
|
</ul>
|
45
56
|
</div>
|
57
|
+
{%- endif -%}
|
46
58
|
|
47
|
-
{%-
|
59
|
+
{%- assign result = hidden | where_exp: "item", "item == 'comments'" -%}
|
60
|
+
{%- if result.size == 0 -%}
|
61
|
+
<div class="post-comments">
|
62
|
+
{%- if page.comments != false -%}
|
48
63
|
|
49
|
-
|
50
|
-
|
51
|
-
|
64
|
+
{%- if site.disqus.shortname -%}
|
65
|
+
{%- include extensions/comments/disqus.html -%}
|
66
|
+
{%- endif -%}
|
52
67
|
|
53
|
-
|
54
|
-
|
55
|
-
|
68
|
+
{%- if site.gitment.username -%}
|
69
|
+
{%- include extensions/comments/gitment.html -%}
|
70
|
+
{%- endif -%}
|
56
71
|
|
72
|
+
{%- endif -%}
|
73
|
+
</div>
|
57
74
|
{%- endif -%}
|
58
75
|
|
59
76
|
</section>
|
data/_sass/yat/_base.scss
CHANGED
@@ -100,8 +100,6 @@ h1, h2, h3, h4, h5, h6 {
|
|
100
100
|
font-weight: $base-font-weight * 1.5;
|
101
101
|
}
|
102
102
|
|
103
|
-
|
104
|
-
|
105
103
|
/**
|
106
104
|
* Links
|
107
105
|
*/
|
@@ -110,7 +108,6 @@ a {
|
|
110
108
|
text-decoration: none;
|
111
109
|
|
112
110
|
&:hover {
|
113
|
-
color: $text-color;
|
114
111
|
text-decoration: underline;
|
115
112
|
}
|
116
113
|
|
@@ -123,7 +120,6 @@ a {
|
|
123
120
|
}
|
124
121
|
}
|
125
122
|
|
126
|
-
|
127
123
|
/**
|
128
124
|
* Blockquotes
|
129
125
|
*/
|
@@ -155,7 +151,7 @@ code {
|
|
155
151
|
padding: 1px 5px;
|
156
152
|
border-radius: 3px;
|
157
153
|
color: #fff;
|
158
|
-
background-color:
|
154
|
+
background-color: #545454;
|
159
155
|
}
|
160
156
|
|
161
157
|
pre {
|
data/_sass/yat/_layout.scss
CHANGED
@@ -319,10 +319,15 @@ html {
|
|
319
319
|
border: 1px solid;
|
320
320
|
padding: 2px 4px;
|
321
321
|
border-radius: 2px;
|
322
|
+
transition: color 0.2s;
|
322
323
|
|
323
324
|
&:not(:first-child) {
|
324
325
|
margin-left: 8px;
|
325
326
|
}
|
327
|
+
|
328
|
+
&:hover {
|
329
|
+
color: #777;
|
330
|
+
}
|
326
331
|
}
|
327
332
|
|
328
333
|
.paginator {
|
@@ -474,6 +479,10 @@ html {
|
|
474
479
|
}
|
475
480
|
}
|
476
481
|
|
482
|
+
.post-comments {
|
483
|
+
padding-top: 25px;
|
484
|
+
}
|
485
|
+
|
477
486
|
|
478
487
|
/**
|
479
488
|
* Posts misc
|
Binary file
|
data/assets/js/main.js
CHANGED
@@ -67,16 +67,14 @@ document.addEventListener('DOMContentLoaded', function(event) {
|
|
67
67
|
break;
|
68
68
|
}
|
69
69
|
}
|
70
|
-
if (lang) {
|
71
|
-
block.
|
72
|
-
|
73
|
-
lang = block
|
74
|
-
.getAttribute('class')
|
75
|
-
.replace('hljs ', '');
|
70
|
+
if (!lang) {
|
71
|
+
cls = block.getAttribute('class');
|
72
|
+
lang = cls ? cls.replace('hljs ', '') : '';
|
76
73
|
}
|
77
74
|
if (lang.startsWith('language-')) {
|
78
75
|
lang = lang.substr(9);
|
79
76
|
}
|
77
|
+
block.setAttribute('class', 'hljs ' + lang);
|
80
78
|
block.parentNode.setAttribute('data-lang', lang);
|
81
79
|
hljs.highlightBlock(block);
|
82
80
|
});
|
metadata
CHANGED
@@ -1,57 +1,75 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-theme-yat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jeffreytse
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-09-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.6'
|
20
|
+
- - "<"
|
18
21
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
22
|
+
version: '3.0'
|
20
23
|
type: :development
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- - "
|
27
|
+
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1.
|
29
|
+
version: '1.6'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '3.0'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: rake
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
|
-
- - "
|
37
|
+
- - ">="
|
32
38
|
- !ruby/object:Gem::Version
|
33
39
|
version: '12.0'
|
40
|
+
- - "<"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '13.0'
|
34
43
|
type: :development
|
35
44
|
prerelease: false
|
36
45
|
version_requirements: !ruby/object:Gem::Requirement
|
37
46
|
requirements:
|
38
|
-
- - "
|
47
|
+
- - ">="
|
39
48
|
- !ruby/object:Gem::Version
|
40
49
|
version: '12.0'
|
50
|
+
- - "<"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '13.0'
|
41
53
|
- !ruby/object:Gem::Dependency
|
42
54
|
name: jekyll
|
43
55
|
requirement: !ruby/object:Gem::Requirement
|
44
56
|
requirements:
|
45
|
-
- - "
|
57
|
+
- - ">"
|
46
58
|
- !ruby/object:Gem::Version
|
47
|
-
version: '3.
|
59
|
+
version: '3.5'
|
60
|
+
- - "<"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '5.0'
|
48
63
|
type: :runtime
|
49
64
|
prerelease: false
|
50
65
|
version_requirements: !ruby/object:Gem::Requirement
|
51
66
|
requirements:
|
52
|
-
- - "
|
67
|
+
- - ">"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '3.5'
|
70
|
+
- - "<"
|
53
71
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
72
|
+
version: '5.0'
|
55
73
|
- !ruby/object:Gem::Dependency
|
56
74
|
name: jekyll-feed
|
57
75
|
requirement: !ruby/object:Gem::Requirement
|
@@ -166,6 +184,7 @@ files:
|
|
166
184
|
- _includes/views/segments.html
|
167
185
|
- _includes/views/site-brand.html
|
168
186
|
- _layouts/404.html
|
187
|
+
- _layouts/about.html
|
169
188
|
- _layouts/archives.html
|
170
189
|
- _layouts/articles.html
|
171
190
|
- _layouts/categories.html
|
@@ -181,6 +200,7 @@ files:
|
|
181
200
|
- _sass/yat/_base.scss
|
182
201
|
- _sass/yat/_layout.scss
|
183
202
|
- assets/css/main.scss
|
203
|
+
- assets/images/banners/home.jpeg
|
184
204
|
- assets/js/main.js
|
185
205
|
homepage: https://github.com/jeffreytse/jekyll-theme-yat
|
186
206
|
licenses:
|
@@ -202,7 +222,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
202
222
|
- !ruby/object:Gem::Version
|
203
223
|
version: '0'
|
204
224
|
requirements: []
|
205
|
-
rubygems_version: 3.
|
225
|
+
rubygems_version: 3.1.4
|
206
226
|
signing_key:
|
207
227
|
specification_version: 4
|
208
228
|
summary: Yet another theme for elegant writers with modern flat style.
|