jekyll-theme-chirpy 6.1.0 → 6.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +24 -23
  3. data/_data/locales/tr-TR.yml +4 -4
  4. data/_data/origin/cors.yml +11 -11
  5. data/_includes/comments/disqus.html +2 -1
  6. data/_includes/datetime.html +5 -4
  7. data/_includes/footer.html +30 -28
  8. data/_includes/head.html +1 -1
  9. data/_includes/notification.html +24 -0
  10. data/_includes/post-nav.html +9 -12
  11. data/_includes/post-paginator.html +77 -75
  12. data/_includes/post-sharing.html +6 -4
  13. data/_includes/related-posts.html +31 -39
  14. data/_includes/search-loader.html +10 -8
  15. data/_includes/search-results.html +1 -1
  16. data/_includes/sidebar.html +63 -60
  17. data/_includes/toc.html +3 -3
  18. data/_includes/topbar.html +17 -10
  19. data/_includes/trending-tags.html +3 -3
  20. data/_includes/update-list.html +4 -4
  21. data/_layouts/archives.html +18 -19
  22. data/_layouts/category.html +2 -2
  23. data/_layouts/default.html +51 -32
  24. data/_layouts/home.html +12 -11
  25. data/_layouts/page.html +21 -63
  26. data/_layouts/post.html +72 -70
  27. data/_layouts/tag.html +2 -2
  28. data/_sass/addon/commons.scss +118 -149
  29. data/_sass/addon/module.scss +12 -3
  30. data/_sass/addon/syntax.scss +51 -29
  31. data/_sass/addon/variables.scss +10 -5
  32. data/_sass/colors/syntax-dark.scss +138 -0
  33. data/_sass/colors/syntax-light.scss +179 -0
  34. data/_sass/colors/{dark-typography.scss → typography-dark.scss} +18 -19
  35. data/_sass/colors/{light-typography.scss → typography-light.scss} +17 -16
  36. data/_sass/layout/category-tag.scss +0 -5
  37. data/_sass/layout/home.scss +18 -35
  38. data/_sass/layout/post.scss +46 -51
  39. data/_sass/{jekyll-theme-chirpy.scss → main.scss} +2 -8
  40. data/assets/404.html +1 -3
  41. data/assets/css/{style.scss → jekyll-theme-chirpy.scss} +1 -1
  42. data/assets/js/dist/categories.min.js +2 -4
  43. data/assets/js/dist/commons.min.js +2 -4
  44. data/assets/js/dist/home.min.js +2 -4
  45. data/assets/js/dist/misc.min.js +2 -4
  46. data/assets/js/dist/page.min.js +2 -4
  47. data/assets/js/dist/post.min.js +2 -4
  48. metadata +9 -11
  49. data/_data/authors.yml +0 -17
  50. data/_data/contact.yml +0 -28
  51. data/_data/share.yml +0 -25
  52. data/_sass/colors/dark-syntax.scss +0 -91
  53. 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 = site.posts[i] %}
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
- <!-- Fill with the other newlest posts -->
58
- {% assign less = TOTAL_SIZE | minus: index_list.size %}
59
-
60
- {% if less > 0 %}
61
- {% for i in (0..last_index) %}
62
- {% assign post = site.posts[i] %}
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 index_list.size > 0 %}
77
- <div id="related-posts" class="mb-2 mb-sm-4">
78
- <h3 class="pt-2 mb-4 ms-1" data-toc-skip>
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
- <div class="row row-cols-1 row-cols-md-2 row-cols-xl-3 g-4 mb-4">
82
- {% for entry in index_list %}
83
- {% assign index = entry | plus: 0 %}
84
- {% assign post = site.posts[index] %}
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" data-toc-skip>{{ post.title }}</h4>
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
- </div>
91
+ </article>
99
92
  {% endfor %}
100
- </div>
101
- <!-- .card-deck -->
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
- <div class="px-1 px-sm-2 px-lg-4 px-xl-0">
8
- <a href="{url}">{title}</a>
9
- <div class="post-meta d-flex flex-column flex-sm-row text-muted mt-1 mb-1">
10
- {categories}
11
- {tags}
12
- </div>
13
- <p>{snippet}</p>
14
- </div>
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 %}
@@ -1,7 +1,7 @@
1
1
  <!-- The Search results -->
2
2
 
3
3
  <div id="search-result-wrapper" class="d-flex justify-content-center unloaded">
4
- <div class="col-11 post-content">
4
+ <div class="col-11 content">
5
5
  <div id="search-hints">
6
6
  {% include_cached trending-tags.html %}
7
7
  </div>
@@ -1,7 +1,7 @@
1
1
  <!-- The Side Bar -->
2
2
 
3
- <div id="sidebar" class="d-flex flex-column align-items-end">
4
- <div class="profile-wrapper">
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
- <div class="site-title">
20
+ <h1 class="site-title">
21
21
  <a href="{{ '/' | relative_url }}">{{ site.title }}</a>
22
- </div>
23
- <div class="site-subtitle fst-italic">{{ site.tagline }}</div>
24
- </div>
22
+ </h1>
23
+ <p class="site-subtitle fst-italic mb-0">{{ site.tagline }}</p>
24
+ </header>
25
25
  <!-- .profile-wrapper -->
26
26
 
27
- <ul class="nav flex-column flex-grow-1 w-100 ps-0">
28
- <!-- home -->
29
- <li class="nav-item{% if page.layout == 'home' %}{{ " active" }}{% endif %}">
30
- <a href="{{ '/' | relative_url }}" class="nav-link">
31
- <i class="fa-fw fas fa-home"></i>
32
- <span>{{ site.data.locales[include.lang].tabs.home | upcase }}</span>
33
- </a>
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
- <!-- .nav-item -->
46
- {% endfor %}
47
- </ul>
48
- <!-- ul.nav.flex-column -->
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
- {% for entry in site.data.contact %}
62
- {% case entry.type %}
63
- {% when 'github', 'twitter' %}
64
- {%- capture url -%}
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
- {% when 'email' %}
68
- {% assign email = site.social.email | split: '@' %}
69
- {%- capture url -%}
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
- {% when 'rss' %}
73
- {% assign url = '/feed.xml' | relative_url %}
74
- {% else %}
75
- {% assign url = entry.url %}
76
- {% endcase %}
74
+ {% when 'rss' %}
75
+ {% assign url = '/feed.xml' | relative_url %}
76
+ {% else %}
77
+ {% assign url = entry.url %}
78
+ {% endcase %}
77
79
 
78
- {% if url %}
79
- <a
80
- href="{{ url }}"
81
- aria-label="{{ entry.type }}"
82
- {% assign link_types = '' %}
80
+ {% if url %}
81
+ <a
82
+ href="{{ url }}"
83
+ aria-label="{{ entry.type }}"
84
+ {% assign link_types = '' %}
83
85
 
84
- {% unless entry.noblank %}
85
- target="_blank"
86
- {% assign link_types = 'noopener noreferrer' %}
87
- {% endunless %}
86
+ {% unless entry.noblank %}
87
+ target="_blank"
88
+ {% assign link_types = 'noopener noreferrer' %}
89
+ {% endunless %}
88
90
 
89
- {% if entry.type == 'mastodon' %}
90
- {% assign link_types = link_types | append: ' me' | strip %}
91
- {% endif %}
91
+ {% if entry.type == 'mastodon' %}
92
+ {% assign link_types = link_types | append: ' me' | strip %}
93
+ {% endif %}
92
94
 
93
- {% unless link_types == empty %}
94
- rel="{{ link_types }}"
95
- {% endunless %}
96
- >
97
- <i class="{{ entry.icon }}"></i>
98
- </a>
99
- {% endif %}
100
- {% endfor %}
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
- </div>
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
- <div id="toc-wrapper" class="ps-0 pe-4 mb-5">
10
- <div class="panel-heading ps-3 pt-2 mb-2">{{- site.data.locales[include.lang].panel.toc -}}</div>
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
- </div>
12
+ </section>
13
13
  {% endif %}
@@ -1,11 +1,11 @@
1
1
  <!-- The Top Bar -->
2
2
 
3
- <div id="topbar-wrapper">
3
+ <header id="topbar-wrapper" aria-label="Top Bar">
4
4
  <div
5
5
  id="topbar"
6
- class="container d-flex align-items-center justify-content-between h-100"
6
+ class="d-flex align-items-center justify-content-between px-lg-3 h-100"
7
7
  >
8
- <span id="breadcrumb">
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
- </span>
40
+ </nav>
41
41
  <!-- endof #breadcrumb -->
42
42
 
43
- <i id="sidebar-trigger" class="fas fa-bars fa-fw"></i>
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
- <i id="search-trigger" class="fas fa-search fa-fw"></i>
57
- <span id="search-wrapper" class="align-items-center">
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
- </span>
68
- <span id="search-cancel">{{ site.data.locales[include.lang].search.cancel }}</span>
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
- </div>
77
+ </header>
@@ -34,13 +34,13 @@
34
34
  {% endfor %}
35
35
 
36
36
  {% if trending_tags.size > 0 %}
37
- <div id="access-tags">
38
- <div class="panel-heading">{{- site.data.locales[include.lang].panel.trending_tags -}}</div>
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
- </div>
45
+ </section>
46
46
  {% endif %}
@@ -22,9 +22,9 @@
22
22
  {% endfor %}
23
23
 
24
24
  {% if update_list.size > 0 %}
25
- <div id="access-lastmod" class="post">
26
- <div class="panel-heading">{{- site.data.locales[include.lang].panel.lastmod -}}</div>
27
- <ul class="post-content list-unstyled ps-0 pb-1 ms-1 mt-2">
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
- </div>
37
+ </section>
38
38
  <!-- #access-lastmod -->
39
39
  {% endif %}
@@ -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
- {% for post in site.posts %}
14
- {% capture cur_year %}{{ post.date | date: "%Y" }}{% endcapture %}
15
+ {% if cur_year != last_year %}
16
+ {% unless forloop.first %}</ul>{% endunless %}
15
17
 
16
- {% if cur_year != last_year %}
17
- {% unless forloop.first %}</ul>{% endunless %}
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
- <li>
24
- {% assign ts = post.date | date: '%s' %}
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
- {% if forloop.last %}</ul>{% endif %}
33
-
34
- {% endfor %}
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>
@@ -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="post-content ps-0">
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 wrap='span' class='text-muted small' lang=lang %}
20
+ {% include datetime.html date=post.date class='text-muted small text-nowrap' lang=lang %}
21
21
  </li>
22
22
  {% endfor %}
23
23
  </ul>
@@ -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 id="main" class="container px-xxl-5">
30
+ <div class="container px-xxl-5">
27
31
  {% include topbar.html lang=lang %}
28
- {{ content }}
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
- {% include_cached footer.html lang=lang %}
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
- <div
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: page
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
- <div id="post-list">
42
+ {% capture content %}
44
43
  {% for post in posts %}
45
- <a href="{{ post.url | relative_url }}" class="card-wrapper">
46
- <div class="card post-preview flex-md-row-reverse">
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 post-content mt-0 mb-2">
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
- </div>
103
- </a>
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