jekyll-theme-chirpy 6.1.0 → 6.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +24 -23
- data/_data/locales/tr-TR.yml +4 -4
- data/_data/origin/cors.yml +11 -11
- data/_includes/comments/disqus.html +2 -1
- data/_includes/datetime.html +5 -4
- data/_includes/footer.html +30 -28
- data/_includes/head.html +1 -1
- data/_includes/notification.html +24 -0
- data/_includes/post-nav.html +9 -12
- data/_includes/post-paginator.html +77 -75
- data/_includes/post-sharing.html +6 -4
- data/_includes/related-posts.html +31 -39
- data/_includes/search-loader.html +10 -8
- data/_includes/search-results.html +1 -1
- data/_includes/sidebar.html +63 -60
- data/_includes/toc.html +3 -3
- data/_includes/topbar.html +17 -10
- data/_includes/trending-tags.html +3 -3
- data/_includes/update-list.html +4 -4
- data/_layouts/archives.html +18 -19
- data/_layouts/category.html +2 -2
- data/_layouts/default.html +51 -32
- data/_layouts/home.html +12 -11
- data/_layouts/page.html +21 -63
- data/_layouts/post.html +72 -70
- data/_layouts/tag.html +2 -2
- data/_sass/addon/commons.scss +118 -149
- data/_sass/addon/module.scss +12 -3
- data/_sass/addon/syntax.scss +51 -29
- data/_sass/addon/variables.scss +10 -5
- data/_sass/colors/syntax-dark.scss +138 -0
- data/_sass/colors/syntax-light.scss +179 -0
- data/_sass/colors/{dark-typography.scss → typography-dark.scss} +18 -19
- data/_sass/colors/{light-typography.scss → typography-light.scss} +17 -16
- data/_sass/layout/category-tag.scss +0 -5
- data/_sass/layout/home.scss +18 -35
- data/_sass/layout/post.scss +46 -51
- data/_sass/{jekyll-theme-chirpy.scss → main.scss} +2 -8
- data/assets/404.html +1 -3
- data/assets/css/{style.scss → jekyll-theme-chirpy.scss} +1 -1
- data/assets/js/data/swcache.js +32 -33
- data/assets/js/dist/categories.min.js +2 -4
- data/assets/js/dist/commons.min.js +2 -4
- data/assets/js/dist/home.min.js +2 -4
- data/assets/js/dist/misc.min.js +2 -4
- data/assets/js/dist/page.min.js +2 -4
- data/assets/js/dist/post.min.js +2 -4
- data/assets/js/pwa/sw.js +56 -57
- metadata +9 -11
- data/_data/authors.yml +0 -17
- data/_data/contact.yml +0 -28
- data/_data/share.yml +0 -25
- data/_sass/colors/dark-syntax.scss +0 -91
- data/_sass/colors/light-syntax.scss +0 -83
@@ -1,7 +1,4 @@
|
|
1
|
-
<!--
|
2
|
-
Recommend the other 3 posts according to the tags and categories of the current post,
|
3
|
-
if the number is not enough, use the other latest posts to supplement.
|
4
|
-
-->
|
1
|
+
<!-- Recommend the other 3 posts according to the tags and categories of the current post. -->
|
5
2
|
|
6
3
|
<!-- The total size of related posts -->
|
7
4
|
{% assign TOTAL_SIZE = 3 %}
|
@@ -14,11 +11,21 @@
|
|
14
11
|
|
15
12
|
{% assign SEPARATOR = ':' %}
|
16
13
|
|
14
|
+
{% assign match_posts = '' | split: '' %}
|
15
|
+
|
16
|
+
{% for category in page.categories %}
|
17
|
+
{% assign match_posts = match_posts | push: site.categories[category] | uniq %}
|
18
|
+
{% endfor %}
|
19
|
+
|
20
|
+
{% for tag in page.tags %}
|
21
|
+
{% assign match_posts = match_posts | push: site.tags[tag] | uniq %}
|
22
|
+
{% endfor %}
|
23
|
+
|
24
|
+
{% assign last_index = match_posts.size | minus: 1 %}
|
17
25
|
{% assign score_list = '' | split: '' %}
|
18
|
-
{% assign last_index = site.posts.size | minus: 1 %}
|
19
26
|
|
20
27
|
{% for i in (0..last_index) %}
|
21
|
-
{% assign post =
|
28
|
+
{% assign post = match_posts[i] %}
|
22
29
|
|
23
30
|
{% if post.url == page.url %}
|
24
31
|
{% continue %}
|
@@ -54,39 +61,25 @@
|
|
54
61
|
{% endfor %}
|
55
62
|
{% endif %}
|
56
63
|
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
{%
|
61
|
-
{%
|
62
|
-
|
63
|
-
{% if post.url != page.url %}
|
64
|
-
{% capture cur_index %}{{ i }}{% endcapture %}
|
65
|
-
{% unless index_list contains cur_index %}
|
66
|
-
{% assign index_list = index_list | push: cur_index %}
|
67
|
-
{% assign less = less | minus: 1 %}
|
68
|
-
{% if less <= 0 %}
|
69
|
-
{% break %}
|
70
|
-
{% endif %}
|
71
|
-
{% endunless %}
|
72
|
-
{% endif %}
|
73
|
-
{% endfor %}
|
74
|
-
{% endif %}
|
64
|
+
{% assign relate_posts = '' | split: '' %}
|
65
|
+
|
66
|
+
{% for index in index_list %}
|
67
|
+
{% assign i = index | to_integer %}
|
68
|
+
{% assign relate_posts = relate_posts | push: match_posts[i] %}
|
69
|
+
{% endfor %}
|
75
70
|
|
76
|
-
{% if
|
77
|
-
<
|
78
|
-
<h3 class="
|
79
|
-
{{ site.data.locales[include.lang].post.relate_posts }}
|
71
|
+
{% if relate_posts.size > 0 %}
|
72
|
+
<aside id="related-posts" aria-labelledby="related-label">
|
73
|
+
<h3 class="mb-4" id="related-label">
|
74
|
+
{{- site.data.locales[include.lang].post.relate_posts -}}
|
80
75
|
</h3>
|
81
|
-
<
|
82
|
-
{% for
|
83
|
-
|
84
|
-
|
85
|
-
<div class="col">
|
86
|
-
<a href="{{ post.url | relative_url }}" class="card post-preview h-100">
|
76
|
+
<nav class="row row-cols-1 row-cols-md-2 row-cols-xl-3 g-4 mb-4">
|
77
|
+
{% for post in relate_posts %}
|
78
|
+
<article class="col">
|
79
|
+
<a href="{{ post.url | relative_url }}" class="post-preview card h-100">
|
87
80
|
<div class="card-body">
|
88
81
|
{% include datetime.html date=post.date class="small" lang=include.lang %}
|
89
|
-
<h4 class="pt-0 my-2"
|
82
|
+
<h4 class="pt-0 my-2">{{ post.title }}</h4>
|
90
83
|
<div class="text-muted small">
|
91
84
|
<p>
|
92
85
|
{% include no-linenos.html content=post.content %}
|
@@ -95,10 +88,9 @@
|
|
95
88
|
</div>
|
96
89
|
</div>
|
97
90
|
</a>
|
98
|
-
</
|
91
|
+
</article>
|
99
92
|
{% endfor %}
|
100
|
-
</
|
101
|
-
|
102
|
-
</div>
|
93
|
+
</nav>
|
94
|
+
</aside>
|
103
95
|
<!-- #related-posts -->
|
104
96
|
{% endif %}
|
@@ -4,14 +4,16 @@
|
|
4
4
|
-->
|
5
5
|
|
6
6
|
{% capture result_elem %}
|
7
|
-
<
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
</
|
7
|
+
<article class="px-1 px-sm-2 px-lg-4 px-xl-0">
|
8
|
+
<header>
|
9
|
+
<h2><a href="{url}">{title}</a></h2>
|
10
|
+
<div class="post-meta d-flex flex-column flex-sm-row text-muted mt-1 mb-1">
|
11
|
+
{categories}
|
12
|
+
{tags}
|
13
|
+
</div>
|
14
|
+
</header>
|
15
|
+
<p>{snippet}</p>
|
16
|
+
</article>
|
15
17
|
{% endcapture %}
|
16
18
|
|
17
19
|
{% capture not_found %}<p class="mt-5">{{ site.data.locales[include.lang].search.no_results }}</p>{% endcapture %}
|
data/_includes/sidebar.html
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
<!-- The Side Bar -->
|
2
2
|
|
3
|
-
<
|
4
|
-
<
|
3
|
+
<aside aria-label="Sidebar" id="sidebar" class="d-flex flex-column align-items-end">
|
4
|
+
<header class="profile-wrapper">
|
5
5
|
<a href="{{ '/' | relative_url }}" id="avatar" class="rounded-circle">
|
6
6
|
{% if site.avatar != empty and site.avatar %}
|
7
7
|
{% capture avatar_url %}
|
@@ -17,39 +17,40 @@
|
|
17
17
|
{% endif %}
|
18
18
|
</a>
|
19
19
|
|
20
|
-
<
|
20
|
+
<h1 class="site-title">
|
21
21
|
<a href="{{ '/' | relative_url }}">{{ site.title }}</a>
|
22
|
-
</
|
23
|
-
<
|
24
|
-
</
|
22
|
+
</h1>
|
23
|
+
<p class="site-subtitle fst-italic mb-0">{{ site.tagline }}</p>
|
24
|
+
</header>
|
25
25
|
<!-- .profile-wrapper -->
|
26
26
|
|
27
|
-
<
|
28
|
-
|
29
|
-
|
30
|
-
<
|
31
|
-
<
|
32
|
-
|
33
|
-
|
34
|
-
</li>
|
35
|
-
<!-- the real tabs -->
|
36
|
-
{% for tab in site.tabs %}
|
37
|
-
<li class="nav-item{% if tab.url == page.url %}{{ " active" }}{% endif %}">
|
38
|
-
<a href="{{ tab.url | relative_url }}" class="nav-link">
|
39
|
-
<i class="fa-fw {{ tab.icon }}"></i>
|
40
|
-
{% capture tab_name %}{{ tab.url | split: '/' }}{% endcapture %}
|
41
|
-
|
42
|
-
<span>{{ site.data.locales[include.lang].tabs.[tab_name] | default: tab.title | upcase }}</span>
|
27
|
+
<nav class="flex-column flex-grow-1 w-100 ps-0">
|
28
|
+
<ul class="nav">
|
29
|
+
<!-- home -->
|
30
|
+
<li class="nav-item{% if page.layout == 'home' %}{{ " active" }}{% endif %}">
|
31
|
+
<a href="{{ '/' | relative_url }}" class="nav-link">
|
32
|
+
<i class="fa-fw fas fa-home"></i>
|
33
|
+
<span>{{ site.data.locales[include.lang].tabs.home | upcase }}</span>
|
43
34
|
</a>
|
44
35
|
</li>
|
45
|
-
<!--
|
46
|
-
|
47
|
-
|
48
|
-
|
36
|
+
<!-- the real tabs -->
|
37
|
+
{% for tab in site.tabs %}
|
38
|
+
<li class="nav-item{% if tab.url == page.url %}{{ " active" }}{% endif %}">
|
39
|
+
<a href="{{ tab.url | relative_url }}" class="nav-link">
|
40
|
+
<i class="fa-fw {{ tab.icon }}"></i>
|
41
|
+
{% capture tab_name %}{{ tab.url | split: '/' }}{% endcapture %}
|
42
|
+
|
43
|
+
<span>{{ site.data.locales[include.lang].tabs.[tab_name] | default: tab.title | upcase }}</span>
|
44
|
+
</a>
|
45
|
+
</li>
|
46
|
+
<!-- .nav-item -->
|
47
|
+
{% endfor %}
|
48
|
+
</ul>
|
49
|
+
</nav>
|
49
50
|
|
50
51
|
<div class="sidebar-bottom d-flex flex-wrap align-items-center w-100">
|
51
52
|
{% unless site.theme_mode %}
|
52
|
-
<button class="mode-toggle btn" aria-label="Switch Mode">
|
53
|
+
<button type="button" class="mode-toggle btn" aria-label="Switch Mode">
|
53
54
|
<i class="fas fa-adjust"></i>
|
54
55
|
</button>
|
55
56
|
|
@@ -58,47 +59,49 @@
|
|
58
59
|
{% endif %}
|
59
60
|
{% endunless %}
|
60
61
|
|
61
|
-
|
62
|
-
{%
|
63
|
-
{%
|
64
|
-
{
|
62
|
+
<address class="d-flex mb-0">
|
63
|
+
{% for entry in site.data.contact %}
|
64
|
+
{% case entry.type %}
|
65
|
+
{% when 'github', 'twitter' %}
|
66
|
+
{%- capture url -%}
|
65
67
|
https://{{ entry.type }}.com/{{ site[entry.type].username }}
|
66
68
|
{%- endcapture -%}
|
67
|
-
|
68
|
-
|
69
|
-
|
69
|
+
{% when 'email' %}
|
70
|
+
{% assign email = site.social.email | split: '@' %}
|
71
|
+
{%- capture url -%}
|
70
72
|
javascript:location.href = 'mailto:' + ['{{ email[0] }}','{{ email[1] }}'].join('@')
|
71
73
|
{%- endcapture -%}
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
74
|
+
{% when 'rss' %}
|
75
|
+
{% assign url = '/feed.xml' | relative_url %}
|
76
|
+
{% else %}
|
77
|
+
{% assign url = entry.url %}
|
78
|
+
{% endcase %}
|
77
79
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
80
|
+
{% if url %}
|
81
|
+
<a
|
82
|
+
href="{{ url }}"
|
83
|
+
aria-label="{{ entry.type }}"
|
84
|
+
{% assign link_types = '' %}
|
83
85
|
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
86
|
+
{% unless entry.noblank %}
|
87
|
+
target="_blank"
|
88
|
+
{% assign link_types = 'noopener noreferrer' %}
|
89
|
+
{% endunless %}
|
88
90
|
|
89
|
-
|
90
|
-
|
91
|
-
|
91
|
+
{% if entry.type == 'mastodon' %}
|
92
|
+
{% assign link_types = link_types | append: ' me' | strip %}
|
93
|
+
{% endif %}
|
92
94
|
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
95
|
+
{% unless link_types == empty %}
|
96
|
+
rel="{{ link_types }}"
|
97
|
+
{% endunless %}
|
98
|
+
>
|
99
|
+
<i class="{{ entry.icon }}"></i>
|
100
|
+
</a>
|
101
|
+
{% endif %}
|
102
|
+
{% endfor %}
|
103
|
+
</address>
|
101
104
|
</div>
|
102
105
|
<!-- .sidebar-bottom -->
|
103
|
-
</
|
106
|
+
</aside>
|
104
107
|
<!-- #sidebar -->
|
data/_includes/toc.html
CHANGED
@@ -6,8 +6,8 @@
|
|
6
6
|
{% endif %}
|
7
7
|
|
8
8
|
{% if enable_toc %}
|
9
|
-
<
|
10
|
-
<
|
9
|
+
<section id="toc-wrapper" class="ps-0 pe-4 mb-5">
|
10
|
+
<h2 class="panel-heading ps-3 pt-2 mb-2">{{- site.data.locales[include.lang].panel.toc -}}</h2>
|
11
11
|
<nav id="toc"></nav>
|
12
|
-
</
|
12
|
+
</section>
|
13
13
|
{% endif %}
|
data/_includes/topbar.html
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
<!-- The Top Bar -->
|
2
2
|
|
3
|
-
<
|
3
|
+
<header id="topbar-wrapper" aria-label="Top Bar">
|
4
4
|
<div
|
5
5
|
id="topbar"
|
6
|
-
class="
|
6
|
+
class="d-flex align-items-center justify-content-between px-lg-3 h-100"
|
7
7
|
>
|
8
|
-
<
|
8
|
+
<nav id="breadcrumb" aria-label="Breadcrumb">
|
9
9
|
{% assign paths = page.url | split: '/' %}
|
10
10
|
|
11
11
|
{% if paths.size == 0 or page.layout == 'home' %}
|
@@ -37,10 +37,12 @@
|
|
37
37
|
{% endif %}
|
38
38
|
{% endfor %}
|
39
39
|
{% endif %}
|
40
|
-
</
|
40
|
+
</nav>
|
41
41
|
<!-- endof #breadcrumb -->
|
42
42
|
|
43
|
-
<
|
43
|
+
<button type="button" id="sidebar-trigger" class="btn btn-link">
|
44
|
+
<i class="fas fa-bars fa-fw"></i>
|
45
|
+
</button>
|
44
46
|
|
45
47
|
<div id="topbar-title">
|
46
48
|
{% if page.layout == 'home' %}
|
@@ -53,8 +55,11 @@
|
|
53
55
|
{% endif %}
|
54
56
|
</div>
|
55
57
|
|
56
|
-
<
|
57
|
-
|
58
|
+
<button type="button" id="search-trigger" class="btn btn-link">
|
59
|
+
<i class="fas fa-search fa-fw"></i>
|
60
|
+
</button>
|
61
|
+
|
62
|
+
<search class="align-items-center ms-3 ms-lg-0">
|
58
63
|
<i class="fas fa-search fa-fw"></i>
|
59
64
|
<input
|
60
65
|
class="form-control"
|
@@ -64,7 +69,9 @@
|
|
64
69
|
autocomplete="off"
|
65
70
|
placeholder="{{ site.data.locales[include.lang].search.hint | capitalize }}..."
|
66
71
|
>
|
67
|
-
</
|
68
|
-
<
|
72
|
+
</search>
|
73
|
+
<button type="button" class="btn btn-link text-decoration-none" id="search-cancel">
|
74
|
+
{{- site.data.locales[include.lang].search.cancel -}}
|
75
|
+
</button>
|
69
76
|
</div>
|
70
|
-
</
|
77
|
+
</header>
|
@@ -34,13 +34,13 @@
|
|
34
34
|
{% endfor %}
|
35
35
|
|
36
36
|
{% if trending_tags.size > 0 %}
|
37
|
-
<
|
38
|
-
<
|
37
|
+
<section>
|
38
|
+
<h2 class="panel-heading">{{- site.data.locales[include.lang].panel.trending_tags -}}</h2>
|
39
39
|
<div class="d-flex flex-wrap mt-3 mb-1 me-3">
|
40
40
|
{% for tag_name in trending_tags %}
|
41
41
|
{% assign url = tag_name | slugify | url_encode | prepend: '/tags/' | append: '/' %}
|
42
42
|
<a class="post-tag btn btn-outline-primary" href="{{ url | relative_url }}">{{ tag_name }}</a>
|
43
43
|
{% endfor %}
|
44
44
|
</div>
|
45
|
-
</
|
45
|
+
</section>
|
46
46
|
{% endif %}
|
data/_includes/update-list.html
CHANGED
@@ -22,9 +22,9 @@
|
|
22
22
|
{% endfor %}
|
23
23
|
|
24
24
|
{% if update_list.size > 0 %}
|
25
|
-
<
|
26
|
-
<
|
27
|
-
<ul class="
|
25
|
+
<section id="access-lastmod">
|
26
|
+
<h2 class="panel-heading">{{- site.data.locales[include.lang].panel.lastmod -}}</h2>
|
27
|
+
<ul class="content list-unstyled ps-0 pb-1 ms-1 mt-2">
|
28
28
|
{% for item in update_list %}
|
29
29
|
{% assign index = item | split: '::' | last | plus: 0 %}
|
30
30
|
{% assign post = site.posts[index] %}
|
@@ -34,6 +34,6 @@
|
|
34
34
|
</li>
|
35
35
|
{% endfor %}
|
36
36
|
</ul>
|
37
|
-
</
|
37
|
+
</section>
|
38
38
|
<!-- #access-lastmod -->
|
39
39
|
{% endif %}
|
data/_layouts/archives.html
CHANGED
@@ -9,28 +9,27 @@ layout: page
|
|
9
9
|
{% assign df_dayjs_m = site.data.locales[lang].df.archives.dayjs | default: '/ MM' %}
|
10
10
|
|
11
11
|
<div id="archives" class="pl-xl-3">
|
12
|
+
{% for post in site.posts %}
|
13
|
+
{% assign cur_year = post.date | date: '%Y' %}
|
12
14
|
|
13
|
-
{%
|
14
|
-
|
15
|
+
{% if cur_year != last_year %}
|
16
|
+
{% unless forloop.first %}</ul>{% endunless %}
|
15
17
|
|
16
|
-
|
17
|
-
|
18
|
-
<div class="year lead">{{ cur_year }}</div>
|
19
|
-
<ul class="list-unstyled">
|
20
|
-
{% assign last_year = cur_year %}
|
21
|
-
{% endif %}
|
18
|
+
<time class="year lead d-block">{{ cur_year }}</time>
|
19
|
+
{{ '<ul class="list-unstyled">' }}
|
22
20
|
|
23
|
-
|
24
|
-
|
25
|
-
<span class="date day" data-ts="{{ ts }}" data-df="DD">{{ post.date | date: "%d" }}</span>
|
26
|
-
<span class="date month small text-muted ms-1" data-ts="{{ ts }}" data-df="{{ df_dayjs_m }}">
|
27
|
-
{{ post.date | date: df_strftime_m }}
|
28
|
-
</span>
|
29
|
-
<a href="{{ post.url | relative_url }}">{{ post.title }}</a>
|
30
|
-
</li>
|
21
|
+
{% assign last_year = cur_year %}
|
22
|
+
{% endif %}
|
31
23
|
|
32
|
-
|
33
|
-
|
34
|
-
{
|
24
|
+
<li>
|
25
|
+
{% assign ts = post.date | date: '%s' %}
|
26
|
+
<span class="date day" data-ts="{{ ts }}" data-df="DD">{{ post.date | date: '%d' }}</span>
|
27
|
+
<span class="date month small text-muted ms-1" data-ts="{{ ts }}" data-df="{{ df_dayjs_m }}">
|
28
|
+
{{ post.date | date: df_strftime_m }}
|
29
|
+
</span>
|
30
|
+
<a href="{{ post.url | relative_url }}">{{ post.title }}</a>
|
31
|
+
</li>
|
35
32
|
|
33
|
+
{% if forloop.last %}</ul>{% endif %}
|
34
|
+
{% endfor %}
|
36
35
|
</div>
|
data/_layouts/category.html
CHANGED
@@ -12,12 +12,12 @@ layout: page
|
|
12
12
|
<span class="lead text-muted ps-2">{{ page.posts | size }}</span>
|
13
13
|
</h1>
|
14
14
|
|
15
|
-
<ul class="
|
15
|
+
<ul class="content ps-0">
|
16
16
|
{% for post in page.posts %}
|
17
17
|
<li class="d-flex justify-content-between px-md-3">
|
18
18
|
<a href="{{ post.url | relative_url }}">{{ post.title }}</a>
|
19
19
|
<span class="dash flex-grow-1"></span>
|
20
|
-
{% include datetime.html date=post.date
|
20
|
+
{% include datetime.html date=post.date class='text-muted small text-nowrap' lang=lang %}
|
21
21
|
</li>
|
22
22
|
{% endfor %}
|
23
23
|
</ul>
|
data/_layouts/default.html
CHANGED
@@ -15,6 +15,10 @@ layout: compress
|
|
15
15
|
{% endif %}
|
16
16
|
{% endcapture %}
|
17
17
|
|
18
|
+
{% if layout.tail_includes %}
|
19
|
+
{% assign has_tail = true %}
|
20
|
+
{% endif %}
|
21
|
+
|
18
22
|
<!-- `site.alt_lang` can specify a language different from the UI -->
|
19
23
|
<html lang="{{ site.alt_lang | default: site.lang }}" {{ prefer_mode }}>
|
20
24
|
{% include head.html %}
|
@@ -23,48 +27,63 @@ layout: compress
|
|
23
27
|
{% include sidebar.html lang=lang %}
|
24
28
|
|
25
29
|
<div id="main-wrapper" class="d-flex justify-content-center">
|
26
|
-
<div
|
30
|
+
<div class="container px-xxl-5">
|
27
31
|
{% include topbar.html lang=lang %}
|
28
|
-
|
32
|
+
|
33
|
+
<div class="row">
|
34
|
+
<main
|
35
|
+
aria-label="Main Content"
|
36
|
+
class="col-12 col-lg-11 col-xl-9 px-md-4{% unless has_tail %} pb-5{% endunless %}"
|
37
|
+
>
|
38
|
+
{{ content }}
|
39
|
+
</main>
|
40
|
+
|
41
|
+
<!-- panel -->
|
42
|
+
<aside aria-label="Panel" id="panel-wrapper" class="col-xl-3 ps-2 text-muted">
|
43
|
+
<div class="access">
|
44
|
+
{% include_cached update-list.html lang=lang %}
|
45
|
+
{% include_cached trending-tags.html lang=lang %}
|
46
|
+
</div>
|
47
|
+
|
48
|
+
{% for _include in layout.panel_includes %}
|
49
|
+
{% assign _include_path = _include | append: '.html' %}
|
50
|
+
{% include {{ _include_path }} lang=lang %}
|
51
|
+
{% endfor %}
|
52
|
+
</aside>
|
53
|
+
</div>
|
54
|
+
|
55
|
+
<div class="row">
|
56
|
+
<!-- tail -->
|
57
|
+
<div id="tail-wrapper" class="col-12 col-lg-11 col-xl-9 px-md-4">
|
58
|
+
{% if has_tail %}
|
59
|
+
{% for _include in layout.tail_includes %}
|
60
|
+
{% assign _include_path = _include | append: '.html' %}
|
61
|
+
{% include {{ _include_path }} lang=lang %}
|
62
|
+
{% endfor %}
|
63
|
+
{% endif %}
|
64
|
+
|
65
|
+
{% include_cached footer.html lang=lang %}
|
66
|
+
</div>
|
67
|
+
</div>
|
68
|
+
|
29
69
|
{% include_cached search-results.html lang=lang %}
|
30
70
|
</div>
|
31
|
-
</div>
|
32
71
|
|
33
|
-
|
72
|
+
<aside aria-label="Scroll to Top">
|
73
|
+
<button id="back-to-top" type="button" class="btn btn-lg btn-box-shadow">
|
74
|
+
<i class="fas fa-angle-up"></i>
|
75
|
+
</button>
|
76
|
+
</aside>
|
77
|
+
</div>
|
34
78
|
|
35
79
|
<div id="mask"></div>
|
36
80
|
|
37
|
-
<button id="back-to-top" aria-label="back-to-top" class="btn btn-lg btn-box-shadow">
|
38
|
-
<i class="fas fa-angle-up"></i>
|
39
|
-
</button>
|
40
|
-
|
41
81
|
{% if site.pwa.enabled %}
|
42
|
-
|
43
|
-
id="notification"
|
44
|
-
class="toast"
|
45
|
-
role="alert"
|
46
|
-
aria-live="assertive"
|
47
|
-
aria-atomic="true"
|
48
|
-
data-bs-animation="true"
|
49
|
-
data-bs-autohide="false"
|
50
|
-
>
|
51
|
-
<div class="toast-header">
|
52
|
-
<button
|
53
|
-
type="button"
|
54
|
-
class="btn-close ms-auto"
|
55
|
-
data-bs-dismiss="toast"
|
56
|
-
aria-label="Close"
|
57
|
-
></button>
|
58
|
-
</div>
|
59
|
-
<div class="toast-body text-center pt-0">
|
60
|
-
<p class="px-2 mb-3">{{ site.data.locales[lang].notification.update_found }}</p>
|
61
|
-
<button type="button" class="btn btn-primary" aria-label="Update">
|
62
|
-
{{ site.data.locales[lang].notification.update }}
|
63
|
-
</button>
|
64
|
-
</div>
|
65
|
-
</div>
|
82
|
+
{% include_cached notification.html lang=lang %}
|
66
83
|
{% endif %}
|
67
84
|
|
85
|
+
<!-- JavaScripts -->
|
86
|
+
|
68
87
|
{% include js-selector.html %}
|
69
88
|
|
70
89
|
{% if page.mermaid %}
|
data/_layouts/home.html
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
---
|
2
|
-
layout:
|
3
|
-
refactor: true
|
2
|
+
layout: default
|
4
3
|
---
|
5
4
|
|
6
5
|
{% include lang.html %}
|
@@ -40,10 +39,10 @@ refactor: true
|
|
40
39
|
{% endfor %}
|
41
40
|
{% endif %}
|
42
41
|
|
43
|
-
|
42
|
+
{% capture content %}
|
44
43
|
{% for post in posts %}
|
45
|
-
<
|
46
|
-
<
|
44
|
+
<article class="card-wrapper">
|
45
|
+
<a href="{{ post.url | relative_url }}" class="card post-preview flex-md-row-reverse">
|
47
46
|
{% if post.image %}
|
48
47
|
{% if post.image.lqip %}
|
49
48
|
{% capture lqip %}lqip="{{ post.image.lqip }}"{% endcapture %}
|
@@ -60,11 +59,9 @@ refactor: true
|
|
60
59
|
{% endif %}
|
61
60
|
|
62
61
|
<div class="card-body d-flex flex-column">
|
63
|
-
<h1 class="card-title my-2 mt-md-0">
|
64
|
-
{{ post.title }}
|
65
|
-
</h1>
|
62
|
+
<h1 class="card-title my-2 mt-md-0">{{ post.title }}</h1>
|
66
63
|
|
67
|
-
<div class="card-text
|
64
|
+
<div class="card-text content mt-0 mb-2">
|
68
65
|
<p>
|
69
66
|
{% include no-linenos.html content=post.content %}
|
70
67
|
{{ content | markdownify | strip_html | truncate: 200 | escape }}
|
@@ -99,9 +96,13 @@ refactor: true
|
|
99
96
|
<!-- .post-meta -->
|
100
97
|
</div>
|
101
98
|
<!-- .card-body -->
|
102
|
-
</
|
103
|
-
</
|
99
|
+
</a>
|
100
|
+
</article>
|
104
101
|
{% endfor %}
|
102
|
+
{% endcapture %}
|
103
|
+
|
104
|
+
<div id="post-list" class="flex-grow-1 pe-xl-2">
|
105
|
+
{% include refactor-content.html content=content lang=lang %}
|
105
106
|
</div>
|
106
107
|
<!-- #post-list -->
|
107
108
|
|