jekyll-theme-chirpy 5.0.2 → 6.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (114) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +64 -74
  3. data/_data/locales/ar.yml +91 -0
  4. data/_data/locales/bg-BG.yml +81 -0
  5. data/_data/locales/cs-CZ.yml +89 -0
  6. data/_data/locales/de-DE.yml +80 -0
  7. data/_data/locales/el-GR.yml +91 -0
  8. data/_data/locales/en.yml +23 -23
  9. data/_data/locales/es-ES.yml +77 -0
  10. data/_data/locales/fi-FI.yml +90 -0
  11. data/_data/locales/fr-FR.yml +77 -0
  12. data/_data/locales/hu-HU.yml +79 -0
  13. data/_data/locales/id-ID.yml +5 -19
  14. data/_data/locales/it-IT.yml +90 -0
  15. data/_data/locales/ko-KR.yml +12 -19
  16. data/_data/locales/my-MM.yml +77 -0
  17. data/_data/locales/pt-BR.yml +77 -0
  18. data/_data/locales/ru-RU.yml +77 -0
  19. data/_data/locales/sl-SI.yml +91 -0
  20. data/_data/locales/sv-SE.yml +91 -0
  21. data/_data/locales/th.yml +91 -0
  22. data/_data/locales/tr-TR.yml +77 -0
  23. data/_data/locales/uk-UA.yml +77 -0
  24. data/_data/locales/vi-VN.yml +76 -0
  25. data/_data/locales/zh-CN.yml +13 -20
  26. data/_data/locales/zh-TW.yml +83 -0
  27. data/_data/origin/basic.yml +48 -0
  28. data/_data/origin/cors.yml +59 -0
  29. data/_includes/comments/disqus.html +27 -31
  30. data/_includes/comments/giscus.html +64 -0
  31. data/_includes/comments/utterances.html +2 -2
  32. data/_includes/datetime.html +20 -0
  33. data/_includes/embed/twitch.html +4 -0
  34. data/_includes/embed/youtube.html +6 -0
  35. data/_includes/footer.html +31 -32
  36. data/_includes/head.html +66 -46
  37. data/_includes/js-selector.html +83 -45
  38. data/_includes/jsdelivr-combine.html +26 -0
  39. data/_includes/lang.html +1 -1
  40. data/_includes/mermaid.html +30 -29
  41. data/_includes/metadata-hook.html +1 -0
  42. data/_includes/mode-toggle.html +66 -51
  43. data/_includes/notification.html +24 -0
  44. data/_includes/origin-type.html +13 -0
  45. data/_includes/post-nav.html +26 -22
  46. data/_includes/post-paginator.html +79 -76
  47. data/_includes/post-sharing.html +27 -16
  48. data/_includes/read-time.html +17 -10
  49. data/_includes/refactor-content.html +129 -73
  50. data/_includes/related-posts.html +48 -58
  51. data/_includes/search-loader.html +32 -31
  52. data/_includes/search-results.html +4 -5
  53. data/_includes/sidebar.html +79 -67
  54. data/_includes/toc.html +4 -7
  55. data/_includes/topbar.html +62 -56
  56. data/_includes/trending-tags.html +15 -19
  57. data/_includes/update-list.html +14 -15
  58. data/_layouts/archives.html +25 -29
  59. data/_layouts/categories.html +97 -58
  60. data/_layouts/category.html +8 -10
  61. data/_layouts/default.html +67 -31
  62. data/_layouts/home.html +67 -56
  63. data/_layouts/page.html +20 -58
  64. data/_layouts/post.html +85 -94
  65. data/_layouts/tag.html +8 -10
  66. data/_layouts/tags.html +6 -5
  67. data/_sass/addon/commons.scss +679 -878
  68. data/_sass/addon/module.scss +70 -23
  69. data/_sass/addon/syntax.scss +127 -110
  70. data/_sass/addon/variables.scss +16 -18
  71. data/_sass/colors/syntax-dark.scss +138 -0
  72. data/_sass/colors/syntax-light.scss +179 -0
  73. data/_sass/colors/{dark-typography.scss → typography-dark.scss} +58 -56
  74. data/_sass/colors/typography-light.scss +110 -0
  75. data/_sass/layout/archives.scss +86 -89
  76. data/_sass/layout/categories.scss +29 -13
  77. data/_sass/layout/category-tag.scss +9 -10
  78. data/_sass/layout/home.scss +132 -114
  79. data/_sass/layout/post.scss +213 -173
  80. data/_sass/layout/tags.scss +1 -1
  81. data/_sass/main.scss +13 -0
  82. data/assets/404.html +1 -20
  83. data/assets/css/jekyll-theme-chirpy.scss +6 -0
  84. data/assets/feed.xml +2 -2
  85. data/assets/js/data/search.json +8 -5
  86. data/assets/js/data/swcache.js +14 -29
  87. data/assets/js/dist/categories.min.js +2 -4
  88. data/assets/js/dist/commons.min.js +2 -4
  89. data/assets/js/dist/home.min.js +2 -4
  90. data/assets/js/dist/misc.min.js +4 -0
  91. data/assets/js/dist/page.min.js +2 -4
  92. data/assets/js/dist/post.min.js +2 -4
  93. data/assets/js/pwa/app.js +42 -4
  94. data/assets/js/pwa/sw.js +46 -44
  95. data/assets/js/pwa/unregister.js +12 -0
  96. metadata +64 -32
  97. data/_config.yml +0 -175
  98. data/_data/contact.yml +0 -30
  99. data/_data/share.yml +0 -27
  100. data/_includes/css-selector.html +0 -15
  101. data/_includes/no-zero-date.html +0 -13
  102. data/_includes/timeago.html +0 -26
  103. data/_plugins/posts-lastmod-hook.rb +0 -14
  104. data/_sass/colors/dark-syntax.scss +0 -87
  105. data/_sass/colors/light-syntax.scss +0 -79
  106. data/_sass/colors/light-typography.scss +0 -81
  107. data/_sass/jekyll-theme-chirpy.scss +0 -24
  108. data/_tabs/about.md +0 -8
  109. data/_tabs/archives.md +0 -7
  110. data/_tabs/categories.md +0 -6
  111. data/_tabs/tags.md +0 -6
  112. data/assets/css/style.scss +0 -12
  113. data/assets/js/dist/pvreport.min.js +0 -6
  114. data/index.html +0 -4
@@ -1,24 +1,31 @@
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
- <!-- The total size of related posts -->
3
+ <!-- The total size of related posts -->
7
4
  {% assign TOTAL_SIZE = 3 %}
8
5
 
9
- <!-- An random integer that bigger than 0 -->
6
+ <!-- An random integer that bigger than 0 -->
10
7
  {% assign TAG_SCORE = 1 %}
11
8
 
12
- <!-- Equals to TAG_SCORE / {max_categories_hierarchy} -->
9
+ <!-- Equals to TAG_SCORE / {max_categories_hierarchy} -->
13
10
  {% assign CATEGORY_SCORE = 0.5 %}
14
11
 
15
- {% assign SEPARATOR = ":" %}
12
+ {% assign SEPARATOR = ':' %}
16
13
 
17
- {% assign score_list = "" | split: "" %}
18
- {% assign last_index = site.posts.size | minus: 1 %}
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 %}
25
+ {% assign score_list = '' | split: '' %}
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 %}
@@ -42,11 +49,9 @@
42
49
  {% capture score_item %}{{ score }}{{ SEPARATOR }}{{ i }}{% endcapture %}
43
50
  {% assign score_list = score_list | push: score_item %}
44
51
  {% endif %}
45
-
46
52
  {% endfor %}
47
53
 
48
-
49
- {% assign index_list = "" | split: "" %}
54
+ {% assign index_list = '' | split: '' %}
50
55
 
51
56
  {% if score_list.size > 0 %}
52
57
  {% assign score_list = score_list | sort | reverse %}
@@ -56,51 +61,36 @@
56
61
  {% endfor %}
57
62
  {% endif %}
58
63
 
59
- <!-- Fill with the other newlest posts -->
60
- {% assign less = TOTAL_SIZE | minus: index_list.size %}
61
-
62
- {% if less > 0 %}
63
-
64
- {% for i in (0..last_index) %}
65
- {% assign post = site.posts[i] %}
66
- {% if post.url != page.url %}
67
- {% capture cur_index %}{{ i }}{% endcapture %}
68
- {% unless index_list contains cur_index %}
69
- {% assign index_list = index_list | push: cur_index %}
70
- {% assign less = less | minus: 1 %}
71
- {% if less <= 0 %}
72
- {% break %}
73
- {% endif %}
74
- {% endunless %}
75
- {% endif %}
76
- {% endfor %}
77
-
78
- {% endif %}
64
+ {% assign relate_posts = '' | split: '' %}
79
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 %}
80
70
 
81
- {% if index_list.size > 0 %}
82
- <div id="related-posts" class="mt-5 mb-2 mb-sm-4">
83
- <h3 class="pt-2 mt-1 mb-4 ml-1"
84
- data-toc-skip>{{ site.data.locales[lang].post.relate_posts }}</h3>
85
- <div class="card-deck mb-4">
86
- {% for entry in index_list %}
87
- {% assign index = entry | plus: 0 %}
88
- {% assign post = site.posts[index] %}
89
- <div class="card">
90
- <a href="{{ post.url | relative_url }}">
91
- <div class="card-body">
92
- {% include timeago.html date=post.date class="small" %}
93
- <h3 class="pt-0 mt-1 mb-3" data-toc-skip>{{ post.title }}</h3>
94
- <div class="text-muted small">
95
- <p>
96
- {% include no-linenos.html content=post.content %}
97
- {{ content | markdownify | strip_html | truncate: 200 | escape }}
98
- </p>
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 -}}
75
+ </h3>
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">
80
+ <div class="card-body">
81
+ {% include datetime.html date=post.date class="small" lang=include.lang %}
82
+ <h4 class="pt-0 my-2">{{ post.title }}</h4>
83
+ <div class="text-muted small">
84
+ <p>
85
+ {% include no-linenos.html content=post.content %}
86
+ {{ content | markdownify | strip_html | truncate: 200 | escape }}
87
+ </p>
88
+ </div>
99
89
  </div>
100
- </div>
101
- </a>
102
- </div>
103
- {% endfor %}
104
- </div> <!-- .card-deck -->
105
- </div> <!-- #related-posts -->
90
+ </a>
91
+ </article>
92
+ {% endfor %}
93
+ </nav>
94
+ </aside>
95
+ <!-- #related-posts -->
106
96
  {% endif %}
@@ -4,43 +4,44 @@
4
4
  -->
5
5
 
6
6
  {% capture result_elem %}
7
- <div class="pl-1 pr-1 pl-sm-2 pr-sm-2 pl-lg-4 pr-lg-4 pl-xl-0 pr-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
- {% capture not_found %}<p class="mt-5">{{ site.data.locales[lang].search.no_results }}</p>{% endcapture %}
18
-
19
- <script src="https://cdn.jsdelivr.net/npm/simple-jekyll-search@1.10.0/dest/simple-jekyll-search.min.js"></script>
19
+ {% capture not_found %}<p class="mt-5">{{ site.data.locales[include.lang].search.no_results }}</p>{% endcapture %}
20
20
 
21
21
  <script>
22
- SimpleJekyllSearch({
23
- searchInput: document.getElementById('search-input'),
24
- resultsContainer: document.getElementById('search-results'),
25
- json: '{{ '/assets/js/data/search.json' | relative_url }}',
26
- searchResultTemplate: '{{ result_elem | strip_newlines }}',
27
- noResultsText: '{{ not_found }}',
28
- templateMiddleware: function(prop, value, template) {
29
- if (prop === 'categories') {
30
- if (value === '') {
31
- return `${value}`;
32
- } else {
33
- return `<div class="mr-sm-4"><i class="far fa-folder fa-fw"></i>${value}</div>`;
22
+ /* Note: dependent library will be loaded in `js-selector.html` */
23
+ SimpleJekyllSearch({
24
+ searchInput: document.getElementById('search-input'),
25
+ resultsContainer: document.getElementById('search-results'),
26
+ json: '{{ '/assets/js/data/search.json' | relative_url }}',
27
+ searchResultTemplate: '{{ result_elem | strip_newlines }}',
28
+ noResultsText: '{{ not_found }}',
29
+ templateMiddleware: function(prop, value, template) {
30
+ if (prop === 'categories') {
31
+ if (value === '') {
32
+ return `${value}`;
33
+ } else {
34
+ return `<div class="me-sm-4"><i class="far fa-folder fa-fw"></i>${value}</div>`;
35
+ }
34
36
  }
35
- }
36
37
 
37
- if (prop === 'tags') {
38
- if (value === '') {
39
- return `${value}`;
40
- } else {
41
- return `<div><i class="fa fa-tag fa-fw"></i>${value}</div>`;
38
+ if (prop === 'tags') {
39
+ if (value === '') {
40
+ return `${value}`;
41
+ } else {
42
+ return `<div><i class="fa fa-tag fa-fw"></i>${value}</div>`;
43
+ }
42
44
  }
43
45
  }
44
- }
45
- });
46
+ });
46
47
  </script>
@@ -1,10 +1,9 @@
1
- <!--
2
- The Search results
3
- -->
1
+ <!-- The Search results -->
2
+
4
3
  <div id="search-result-wrapper" class="d-flex justify-content-center unloaded">
5
- <div class="col-12 col-sm-11 post-content">
4
+ <div class="col-11 content">
6
5
  <div id="search-hints">
7
- {% include trending-tags.html %}
6
+ {% include_cached trending-tags.html %}
8
7
  </div>
9
8
  <div id="search-results" class="d-flex flex-wrap justify-content-center text-muted mt-3"></div>
10
9
  </div>
@@ -1,60 +1,56 @@
1
- <!--
2
- The Side Bar
3
- -->
1
+ <!-- The Side Bar -->
4
2
 
5
- <div id="sidebar" class="d-flex flex-column align-items-end" lang="{{lang}}">
6
- <div class="profile-wrapper text-center">
7
- <div id="avatar">
8
- <a href="{{ '/' | relative_url }}" alt="avatar" class="mx-auto">
9
- {% if site.avatar != '' and site.avatar %}
10
- {% capture avatar_url %}
11
- {%- if site.avatar contains '://' -%}
3
+ <aside aria-label="Sidebar" id="sidebar" class="d-flex flex-column align-items-end">
4
+ <header class="profile-wrapper">
5
+ <a href="{{ '/' | relative_url }}" id="avatar" class="rounded-circle">
6
+ {% if site.avatar != empty and site.avatar %}
7
+ {% capture avatar_url %}
8
+ {% if site.avatar contains '://' %}
12
9
  {{ site.avatar }}
13
- {%- elsif site.img_cdn != '' and site.img_cdn -%}
10
+ {% elsif site.img_cdn != empty and site.img_cdn %}
14
11
  {{ site.avatar | prepend: site.img_cdn }}
15
- {%- else -%}
12
+ {% else %}
16
13
  {{ site.avatar | relative_url }}
17
- {%- endif -%}
14
+ {% endif %}
18
15
  {% endcapture %}
19
- <img src="{{ avatar_url }}" alt="avatar" onerror="this.style.display='none'">
20
- {% endif %}
21
- </a>
22
- </div>
16
+ <img src="{{ avatar_url | strip }}" width="112" height="112" alt="avatar" onerror="this.style.display='none'">
17
+ {% endif %}
18
+ </a>
23
19
 
24
- <div class="site-title mt-3">
20
+ <h1 class="site-title">
25
21
  <a href="{{ '/' | relative_url }}">{{ site.title }}</a>
26
- </div>
27
- <div class="site-subtitle font-italic">{{ site.tagline }}</div>
28
-
29
- </div><!-- .profile-wrapper -->
30
-
31
- <ul class="w-100">
32
-
33
- <!-- home -->
34
- <li class="nav-item{% if page.layout == 'home' %}{{ " active" }}{% endif %}">
35
- <a href="{{ '/' | relative_url }}" class="nav-link">
36
- <i class="fa-fw fas fa-home ml-xl-3 mr-xl-3 unloaded"></i>
37
- <span>{{ site.data.locales[lang].tabs.home | upcase }}</span>
38
- </a>
39
- </li>
40
- <!-- the real tabs -->
41
- {% for tab in site.tabs %}
42
- <li class="nav-item{% if tab.url == page.url %}{{ " active" }}{% endif %}">
43
- <a href="{{ tab.url | relative_url }}" class="nav-link">
44
- <i class="fa-fw {{ tab.icon }} ml-xl-3 mr-xl-3 unloaded"></i>
45
- {% capture tab_name %}{{ tab.url | split: '/' }}{% endcapture %}
46
-
47
- <span>{{ site.data.locales[lang].tabs.[tab_name] | default: tab.title | upcase }}</span>
48
- </a>
49
- </li> <!-- .nav-item -->
50
- {% endfor %}
22
+ </h1>
23
+ <p class="site-subtitle fst-italic mb-0">{{ site.tagline }}</p>
24
+ </header>
25
+ <!-- .profile-wrapper -->
51
26
 
52
- </ul> <!-- ul.nav.flex-column -->
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>
34
+ </a>
35
+ </li>
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 %}
53
42
 
54
- <div class="sidebar-bottom mt-auto d-flex flex-wrap justify-content-center align-items-center">
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>
55
50
 
51
+ <div class="sidebar-bottom d-flex flex-wrap align-items-center w-100">
56
52
  {% unless site.theme_mode %}
57
- <button class="mode-toggle btn" aria-label="Switch Mode">
53
+ <button type="button" class="mode-toggle btn" aria-label="Switch Mode">
58
54
  <i class="fas fa-adjust"></i>
59
55
  </button>
60
56
 
@@ -64,30 +60,46 @@
64
60
  {% endunless %}
65
61
 
66
62
  {% for entry in site.data.contact %}
67
- {% capture url %}
68
- {%- if entry.type == 'github' -%}
69
- https://github.com/{{ site.github.username }}
70
- {%- elsif entry.type == 'twitter' -%}
71
- https://twitter.com/{{ site.twitter.username }}
72
- {%- elsif entry.type == 'email' -%}
63
+ {% case entry.type %}
64
+ {% when 'github', 'twitter' %}
65
+ {%- capture url -%}
66
+ https://{{ entry.type }}.com/{{ site[entry.type].username }}
67
+ {%- endcapture -%}
68
+ {% when 'email' %}
73
69
  {% assign email = site.social.email | split: '@' %}
74
- javascript:location.href = 'mailto:' + ['{{ email[0] }}','{{ email[1] }}'].join('@')
75
- {%- elsif entry.type == 'rss' -%}
76
- {{ "/feed.xml" | relative_url }}
77
- {%- else -%}
78
- {{ entry.url }}
79
- {%- endif -%}
80
- {% endcapture %}
70
+ {%- capture url -%}
71
+ javascript:location.href = 'mailto:' + ['{{ email[0] }}','{{ email[1] }}'].join('@')
72
+ {%- endcapture -%}
73
+ {% when 'rss' %}
74
+ {% assign url = '/feed.xml' | relative_url %}
75
+ {% else %}
76
+ {% assign url = entry.url %}
77
+ {% endcase %}
81
78
 
82
79
  {% if url %}
83
- <a href="{{ url }}" aria-label="{{ entry.type }}"
84
- {% unless entry.noblank %}target="_blank" rel="noopener"{% endunless %}>
85
- <i class="{{ entry.icon }}"></i>
86
- </a>
87
- {% endif %}
80
+ <a
81
+ href="{{ url }}"
82
+ aria-label="{{ entry.type }}"
83
+ {% assign link_types = '' %}
88
84
 
89
- {% endfor %}
85
+ {% unless entry.noblank %}
86
+ target="_blank"
87
+ {% assign link_types = 'noopener noreferrer' %}
88
+ {% endunless %}
90
89
 
91
- </div> <!-- .sidebar-bottom -->
90
+ {% if entry.type == 'mastodon' %}
91
+ {% assign link_types = link_types | append: ' me' | strip %}
92
+ {% endif %}
92
93
 
93
- </div><!-- #sidebar -->
94
+ {% unless link_types == empty %}
95
+ rel="{{ link_types }}"
96
+ {% endunless %}
97
+ >
98
+ <i class="{{ entry.icon }}"></i>
99
+ </a>
100
+ {% endif %}
101
+ {% endfor %}
102
+ </div>
103
+ <!-- .sidebar-bottom -->
104
+ </aside>
105
+ <!-- #sidebar -->
data/_includes/toc.html CHANGED
@@ -6,11 +6,8 @@
6
6
  {% endif %}
7
7
 
8
8
  {% if enable_toc %}
9
- <!-- BS-toc.js will be loaded at medium priority -->
10
- <script src="https://cdn.jsdelivr.net/gh/afeld/bootstrap-toc@1.0.1/dist/bootstrap-toc.min.js"></script>
11
-
12
- <div id="toc-wrapper" class="pl-0 pr-4 mb-5">
13
- <div class="panel-heading pl-3 pt-2 mb-2">{{- site.data.locales[lang].panel.toc -}}</div>
14
- <nav id="toc" data-toggle="toc"></nav>
15
- </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
+ <nav id="toc"></nav>
12
+ </section>
16
13
  {% endif %}
@@ -1,71 +1,77 @@
1
- <!--
2
- The Top Bar
3
- -->
1
+ <!-- The Top Bar -->
4
2
 
5
- <div id="topbar-wrapper" class="row justify-content-center topbar-down">
6
- <div id="topbar" class="col-11 d-flex h-100 align-items-center justify-content-between">
7
- <span id="breadcrumb">
3
+ <header id="topbar-wrapper" aria-label="Top Bar">
4
+ <div
5
+ id="topbar"
6
+ class="d-flex align-items-center justify-content-between px-lg-3 h-100"
7
+ >
8
+ <nav id="breadcrumb" aria-label="Breadcrumb">
9
+ {% assign paths = page.url | split: '/' %}
8
10
 
9
- {% assign paths = page.url | split: '/' %}
11
+ {% if paths.size == 0 or page.layout == 'home' %}
12
+ <!-- index page -->
13
+ <span>{{ site.data.locales[include.lang].tabs.home | capitalize }}</span>
10
14
 
11
- {% if paths.size == 0 or page.layout == 'home' %}
12
- <!-- index page -->
13
- <span>{{ site.data.locales[lang].tabs.home | capitalize }}</span>
14
-
15
- {% else %}
16
-
17
- {% for item in paths %}
18
-
19
- {% if forloop.first %}
20
- <span>
21
- <a href="{{ '/' | relative_url }}">
22
- {{ site.data.locales[lang].tabs.home | capitalize }}
23
- </a>
24
- </span>
25
-
26
- {% elsif forloop.last %}
27
-
28
- {% if page.collection == 'tabs' %}
29
- <span>{{ site.data.locales[lang].tabs[item] | default: page.title }}</span>
30
- {% else %}
31
- <span>{{ page.title }}</span>
15
+ {% else %}
16
+ {% for item in paths %}
17
+ {% if forloop.first %}
18
+ <span>
19
+ <a href="{{ '/' | relative_url }}">
20
+ {{ site.data.locales[include.lang].tabs.home | capitalize }}
21
+ </a>
22
+ </span>
23
+
24
+ {% elsif forloop.last %}
25
+ {% if page.collection == 'tabs' %}
26
+ <span>{{ site.data.locales[include.lang].tabs[item] | default: page.title }}</span>
27
+ {% else %}
28
+ <span>{{ page.title }}</span>
29
+ {% endif %}
30
+
31
+ {% elsif page.layout == 'category' or page.layout == 'tag' %}
32
+ <span>
33
+ <a href="{{ item | relative_url }}">
34
+ {{ site.data.locales[include.lang].tabs[item] | default: page.title }}
35
+ </a>
36
+ </span>
32
37
  {% endif %}
38
+ {% endfor %}
39
+ {% endif %}
40
+ </nav>
41
+ <!-- endof #breadcrumb -->
33
42
 
34
- {% elsif page.layout == 'category' or page.layout == 'tag' %}
35
- <span>
36
- <a href="{{ item | relative_url }}">
37
- {{ site.data.locales[lang].tabs[item] | default: page.title }}
38
- </a>
39
- </span>
40
- {% endif %}
41
-
42
- {% endfor %}
43
-
44
- {% endif %}
45
-
46
- </span><!-- endof #breadcrumb -->
47
-
48
- <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>
49
46
 
50
47
  <div id="topbar-title">
51
48
  {% if page.layout == 'home' %}
52
- {{- site.data.locales[lang].title | default: site.title -}}
53
- {% elsif page.collection == 'tabs' or page.dynamic_title %}
49
+ {{- site.data.locales[include.lang].title | default: site.title -}}
50
+ {% elsif page.collection == 'tabs' or page.layout == 'page' %}
54
51
  {%- capture tab_key -%}{{ page.url | split: '/' }}{%- endcapture -%}
55
- {{- site.data.locales[lang].tabs[tab_key] | default: page.title -}}
52
+ {{- site.data.locales[include.lang].tabs[tab_key] | default: page.title -}}
56
53
  {% else %}
57
- {{- site.data.locales[lang].layout[page.layout] | default: page.layout | capitalize -}}
54
+ {{- site.data.locales[include.lang].layout[page.layout] | default: page.layout | capitalize -}}
58
55
  {% endif %}
59
56
  </div>
60
57
 
61
- <i id="search-trigger" class="fas fa-search fa-fw"></i>
62
- <span id="search-wrapper" class="align-items-center">
58
+ <button type="button" id="search-trigger" class="btn btn-link">
63
59
  <i class="fas fa-search fa-fw"></i>
64
- <input class="form-control" id="search-input" type="search"
65
- aria-label="search" autocomplete="off" placeholder="{{ site.data.locales[lang].search.hint | capitalize }}...">
66
- <i class="fa fa-times-circle fa-fw" id="search-cleaner"></i>
67
- </span>
68
- <span id="search-cancel" >{{ site.data.locales[lang].search.cancel }}</span>
69
- </div>
60
+ </button>
70
61
 
71
- </div>
62
+ <search class="align-items-center ms-3 ms-lg-0">
63
+ <i class="fas fa-search fa-fw"></i>
64
+ <input
65
+ class="form-control"
66
+ id="search-input"
67
+ type="search"
68
+ aria-label="search"
69
+ autocomplete="off"
70
+ placeholder="{{ site.data.locales[include.lang].search.hint | capitalize }}..."
71
+ >
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>
76
+ </div>
77
+ </header>
@@ -1,29 +1,27 @@
1
- {% comment %}
2
- The trending tags list
3
- {% endcomment %}
1
+ <!-- The trending tags list -->
4
2
 
5
3
  {% assign MAX = 10 %}
6
4
 
7
- {% assign size_list = "" | split: "" %}
8
- {% assign tag_list = "" | split: "" %}
5
+ {% assign size_list = '' | split: '' %}
6
+ {% assign tag_list = '' | split: '' %}
9
7
 
10
8
  {% for tag in site.tags %}
11
9
  {% assign size = tag | last | size %}
12
10
  {% assign size_list = size_list | push: size %}
13
11
 
14
- {% assign tag_str = tag | first | append: "::" | append: size %}
15
- {% assign tag_list = tag_list | push: tag_str %}
12
+ {% assign tag_str = tag | first | append: '::' | append: size %}
13
+ {% assign tag_list = tag_list | push: tag_str %}
16
14
  {% endfor %}
17
15
 
18
16
  {% assign size_list = size_list | sort | reverse %}
19
17
 
20
18
  {% assign tag_list = tag_list | sort_natural %}
21
19
 
22
- {% assign trending_tags = "" | split: "" %}
20
+ {% assign trending_tags = '' | split: '' %}
23
21
 
24
22
  {% for size in size_list limit: MAX %}
25
23
  {% for tag_str in tag_list %}
26
- {% assign tag = tag_str | split: "::" %}
24
+ {% assign tag = tag_str | split: '::' %}
27
25
  {% assign tag_name = tag | first %}
28
26
  {% assign tag_size = tag | last | plus: 0 %}
29
27
  {% if tag_size == size %}
@@ -36,15 +34,13 @@
36
34
  {% endfor %}
37
35
 
38
36
  {% if trending_tags.size > 0 %}
39
- <div id="access-tags">
40
- <div class="panel-heading">{{- site.data.locales[lang].panel.trending_tags -}}</div>
41
- <div class="d-flex flex-wrap mt-3 mb-1 mr-3">
42
-
43
- {% for tag_name in trending_tags %}
44
- {% assign url = tag_name | slugify | url_encode | prepend: "/tags/" | append: "/" %}
45
- <a class="post-tag" href="{{ url | relative_url }}">{{ tag_name }}</a>
46
- {% endfor %}
47
-
37
+ <section>
38
+ <h2 class="panel-heading">{{- site.data.locales[include.lang].panel.trending_tags -}}</h2>
39
+ <div class="d-flex flex-wrap mt-3 mb-1 me-3">
40
+ {% for tag_name in trending_tags %}
41
+ {% assign url = tag_name | slugify | url_encode | prepend: '/tags/' | append: '/' %}
42
+ <a class="post-tag btn btn-outline-primary" href="{{ url | relative_url }}">{{ tag_name }}</a>
43
+ {% endfor %}
48
44
  </div>
49
- </div>
45
+ </section>
50
46
  {% endif %}