custom-chirpy 5.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE +21 -0
- data/README.md +97 -0
- data/_data/assets/cross_origin.yml +62 -0
- data/_data/assets/self_host.yml +51 -0
- data/_data/authors.yml +17 -0
- data/_data/contact.yml +29 -0
- data/_data/locales/ar.yml +93 -0
- data/_data/locales/bg-BG.yml +83 -0
- data/_data/locales/cs-CZ.yml +91 -0
- data/_data/locales/de-DE.yml +82 -0
- data/_data/locales/el-GR.yml +93 -0
- data/_data/locales/en.yml +93 -0
- data/_data/locales/es-ES.yml +79 -0
- data/_data/locales/fi-FI.yml +92 -0
- data/_data/locales/fr-FR.yml +79 -0
- data/_data/locales/hu-HU.yml +81 -0
- data/_data/locales/id-ID.yml +79 -0
- data/_data/locales/it-IT.yml +93 -0
- data/_data/locales/ko-KR.yml +86 -0
- data/_data/locales/my-MM.yml +79 -0
- data/_data/locales/pt-BR.yml +79 -0
- data/_data/locales/ru-RU.yml +79 -0
- data/_data/locales/tr-TR.yml +79 -0
- data/_data/locales/uk-UA.yml +79 -0
- data/_data/locales/vi-VN.yml +77 -0
- data/_data/locales/zh-CN.yml +85 -0
- data/_data/share.yml +25 -0
- data/_includes/assets-origin.html +12 -0
- data/_includes/comments/disqus.html +54 -0
- data/_includes/comments/giscus.html +56 -0
- data/_includes/comments/utterances.html +51 -0
- data/_includes/comments.html +5 -0
- data/_includes/datetime.html +15 -0
- data/_includes/embed/twitch.html +4 -0
- data/_includes/embed/youtube.html +6 -0
- data/_includes/favicons.html +17 -0
- data/_includes/footer.html +36 -0
- data/_includes/google-analytics.html +14 -0
- data/_includes/head.html +115 -0
- data/_includes/js-selector.html +99 -0
- data/_includes/jsdelivr-combine.html +32 -0
- data/_includes/language-alias.html +70 -0
- data/_includes/mermaid.html +59 -0
- data/_includes/mode-toggle.html +129 -0
- data/_includes/no-linenos.html +10 -0
- data/_includes/post-nav.html +30 -0
- data/_includes/post-paginator.html +88 -0
- data/_includes/post-sharing.html +27 -0
- data/_includes/read-time.html +30 -0
- data/_includes/refactor-content.html +282 -0
- data/_includes/related-posts.html +103 -0
- data/_includes/search-loader.html +46 -0
- data/_includes/search-results.html +11 -0
- data/_includes/sidebar.html +106 -0
- data/_includes/toc.html +16 -0
- data/_includes/topbar.html +70 -0
- data/_includes/trending-tags.html +50 -0
- data/_includes/update-list.html +40 -0
- data/_layouts/archives.html +34 -0
- data/_layouts/categories.html +118 -0
- data/_layouts/category.html +22 -0
- data/_layouts/compress.html +10 -0
- data/_layouts/default.html +71 -0
- data/_layouts/home.html +94 -0
- data/_layouts/page.html +63 -0
- data/_layouts/post.html +141 -0
- data/_layouts/tag.html +21 -0
- data/_layouts/tags.html +23 -0
- data/_sass/addon/commons.scss +1731 -0
- data/_sass/addon/module.scss +163 -0
- data/_sass/addon/syntax.scss +275 -0
- data/_sass/addon/variables.scss +30 -0
- data/_sass/colors/dark-syntax.scss +87 -0
- data/_sass/colors/dark-typography.scss +170 -0
- data/_sass/colors/light-syntax.scss +83 -0
- data/_sass/colors/light-typography.scss +104 -0
- data/_sass/jekyll-theme-chirpy.scss +24 -0
- data/_sass/layout/archives.scss +136 -0
- data/_sass/layout/categories.scss +66 -0
- data/_sass/layout/category-tag.scss +73 -0
- data/_sass/layout/home.scss +178 -0
- data/_sass/layout/post.scss +378 -0
- data/_sass/layout/tags.scss +19 -0
- data/_sass/variables-hook.scss +3 -0
- data/assets/404.html +14 -0
- data/assets/css/style.scss +12 -0
- data/assets/feed.xml +61 -0
- data/assets/img/favicons/android-chrome-192x192.png +0 -0
- data/assets/img/favicons/android-chrome-512x512.png +0 -0
- data/assets/img/favicons/apple-touch-icon.png +0 -0
- data/assets/img/favicons/browserconfig.xml +13 -0
- data/assets/img/favicons/favicon-16x16.png +0 -0
- data/assets/img/favicons/favicon-32x32.png +0 -0
- data/assets/img/favicons/favicon.ico +0 -0
- data/assets/img/favicons/mstile-150x150.png +0 -0
- data/assets/img/favicons/site.webmanifest +26 -0
- data/assets/js/data/search.json +20 -0
- data/assets/js/data/swcache.js +54 -0
- data/assets/js/dist/categories.min.js +6 -0
- data/assets/js/dist/commons.min.js +6 -0
- data/assets/js/dist/home.min.js +6 -0
- data/assets/js/dist/misc.min.js +6 -0
- data/assets/js/dist/page.min.js +6 -0
- data/assets/js/dist/post.min.js +6 -0
- data/assets/js/dist/pvreport.min.js +6 -0
- data/assets/js/pwa/app.js +47 -0
- data/assets/js/pwa/sw.js +90 -0
- data/assets/js/pwa/unregister.js +12 -0
- data/assets/robots.txt +10 -0
- metadata +236 -0
@@ -0,0 +1,71 @@
|
|
1
|
+
---
|
2
|
+
layout: compress
|
3
|
+
# Default layout
|
4
|
+
---
|
5
|
+
|
6
|
+
<!DOCTYPE html>
|
7
|
+
|
8
|
+
{% include assets-origin.html %}
|
9
|
+
|
10
|
+
{% capture prefer_mode %}
|
11
|
+
{% if site.theme_mode %}
|
12
|
+
data-mode="{{ site.theme_mode }}"
|
13
|
+
{% endif %}
|
14
|
+
{% endcapture %}
|
15
|
+
|
16
|
+
<!-- `site.alt_lang` can specify a language different from the UI -->
|
17
|
+
<html lang="{{ site.alt_lang | default: site.lang }}"{{ prefer_mode }}>
|
18
|
+
|
19
|
+
{% include head.html %}
|
20
|
+
|
21
|
+
<body data-spy="scroll" data-target="#toc" data-topbar-visible="true">
|
22
|
+
|
23
|
+
{% include sidebar.html %}
|
24
|
+
|
25
|
+
{% include topbar.html %}
|
26
|
+
|
27
|
+
<div id="main-wrapper" class="d-flex justify-content-center">
|
28
|
+
<div id="main" class="container pl-xl-4 pr-xl-4">
|
29
|
+
{{ content }}
|
30
|
+
</div>
|
31
|
+
|
32
|
+
{% include search-results.html %}
|
33
|
+
|
34
|
+
</div> <!-- #main-wrapper -->
|
35
|
+
|
36
|
+
{% include footer.html %}
|
37
|
+
|
38
|
+
{% if page.mermaid %}
|
39
|
+
{% include mermaid.html %}
|
40
|
+
{% endif %}
|
41
|
+
|
42
|
+
<div id="mask"></div>
|
43
|
+
|
44
|
+
<a id="back-to-top" href="#" aria-label="back-to-top" class="btn btn-lg btn-box-shadow" role="button">
|
45
|
+
<i class="fas fa-angle-up"></i>
|
46
|
+
</a>
|
47
|
+
|
48
|
+
{% if site.pwa.enabled %}
|
49
|
+
<div id="notification" class="toast" role="alert" aria-live="assertive" aria-atomic="true"
|
50
|
+
data-animation="true" data-autohide="false">
|
51
|
+
<div class="toast-header">
|
52
|
+
<button type="button" class="ml-2 ml-auto close" data-dismiss="toast" aria-label="Close">
|
53
|
+
<span aria-hidden="true">×</span>
|
54
|
+
</button>
|
55
|
+
</div>
|
56
|
+
<div class="toast-body text-center pt-0">
|
57
|
+
<p class="pl-2 pr-2 mb-3">{{ site.data.locales[site.lang].notification.update_found }}</p>
|
58
|
+
<button type="button" class="btn btn-primary" aria-label="Update">
|
59
|
+
{{ site.data.locales[site.lang].notification.update }}
|
60
|
+
</button>
|
61
|
+
</div>
|
62
|
+
</div>
|
63
|
+
{% endif %}
|
64
|
+
|
65
|
+
{% include search-loader.html %}
|
66
|
+
|
67
|
+
{% include js-selector.html %}
|
68
|
+
|
69
|
+
</body>
|
70
|
+
|
71
|
+
</html>
|
data/_layouts/home.html
ADDED
@@ -0,0 +1,94 @@
|
|
1
|
+
---
|
2
|
+
layout: page
|
3
|
+
# The Home page layout
|
4
|
+
---
|
5
|
+
|
6
|
+
{% assign pinned = site.posts | where: "pin", "true" %}
|
7
|
+
{% assign default = site.posts | where_exp: "item", "item.pin != true and item.hidden != true" %}
|
8
|
+
|
9
|
+
{% assign posts = "" | split: "" %}
|
10
|
+
|
11
|
+
<!-- Get pinned posts -->
|
12
|
+
|
13
|
+
{% assign offset = paginator.page | minus: 1 | times: paginator.per_page %}
|
14
|
+
{% assign pinned_num = pinned.size | minus: offset %}
|
15
|
+
|
16
|
+
{% if pinned_num > 0 %}
|
17
|
+
{% for i in (offset..pinned.size) limit: pinned_num %}
|
18
|
+
{% assign posts = posts | push: pinned[i] %}
|
19
|
+
{% endfor %}
|
20
|
+
{% else %}
|
21
|
+
{% assign pinned_num = 0 %}
|
22
|
+
{% endif %}
|
23
|
+
|
24
|
+
<!-- Get default posts -->
|
25
|
+
|
26
|
+
{% assign default_beg = offset | minus: pinned.size %}
|
27
|
+
|
28
|
+
{% if default_beg < 0 %}
|
29
|
+
{% assign default_beg = 0 %}
|
30
|
+
{% endif %}
|
31
|
+
|
32
|
+
{% assign default_num = paginator.posts | size | minus: pinned_num %}
|
33
|
+
{% assign default_end = default_beg | plus: default_num | minus: 1 %}
|
34
|
+
|
35
|
+
{% if default_num > 0 %}
|
36
|
+
{% for i in (default_beg..default_end) %}
|
37
|
+
{% assign posts = posts | push: default[i] %}
|
38
|
+
{% endfor %}
|
39
|
+
{% endif %}
|
40
|
+
|
41
|
+
<div id="post-list">
|
42
|
+
|
43
|
+
{% for post in posts %}
|
44
|
+
|
45
|
+
<div class="post-preview">
|
46
|
+
<h1>
|
47
|
+
<a href="{{ post.url | relative_url }}">{{ post.title }}</a>
|
48
|
+
</h1>
|
49
|
+
|
50
|
+
<div class="post-content">
|
51
|
+
<p>
|
52
|
+
{% include no-linenos.html content=post.content %}
|
53
|
+
{{ content | markdownify | strip_html | truncate: 200 | escape }}
|
54
|
+
</p>
|
55
|
+
</div>
|
56
|
+
|
57
|
+
<div class="post-meta text-muted d-flex">
|
58
|
+
<div class="mr-auto">
|
59
|
+
|
60
|
+
<!-- posted date -->
|
61
|
+
<i class="far fa-calendar fa-fw"></i>
|
62
|
+
{% include datetime.html date=post.date %}
|
63
|
+
|
64
|
+
<!-- categories -->
|
65
|
+
{% if post.categories.size > 0 %}
|
66
|
+
<i class="far fa-folder-open fa-fw"></i>
|
67
|
+
<span>
|
68
|
+
{% for category in post.categories %}
|
69
|
+
{{ category }}
|
70
|
+
{%- unless forloop.last -%},{%- endunless -%}
|
71
|
+
{% endfor %}
|
72
|
+
</span>
|
73
|
+
{% endif %}
|
74
|
+
|
75
|
+
</div>
|
76
|
+
|
77
|
+
{% if post.pin %}
|
78
|
+
<div class="pin">
|
79
|
+
<i class="fas fa-thumbtack fa-fw"></i>
|
80
|
+
<span>{{ site.data.locales[site.lang].post.pin_prompt }}</span>
|
81
|
+
</div>
|
82
|
+
{% endif %}
|
83
|
+
|
84
|
+
</div> <!-- .post-meta -->
|
85
|
+
|
86
|
+
</div> <!-- .post-review -->
|
87
|
+
|
88
|
+
{% endfor %}
|
89
|
+
|
90
|
+
</div> <!-- #post-list -->
|
91
|
+
|
92
|
+
{% if paginator.total_pages > 0 %}
|
93
|
+
{% include post-paginator.html %}
|
94
|
+
{% endif %}
|
data/_layouts/page.html
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
{% include assets-origin.html %}
|
6
|
+
|
7
|
+
<div class="row">
|
8
|
+
|
9
|
+
<!-- core -->
|
10
|
+
<div id="core-wrapper" class="col-12 col-lg-11 col-xl-9 pr-xl-4">
|
11
|
+
<div class="post pl-1 pr-1 pl-md-2 pr-md-2">
|
12
|
+
|
13
|
+
{% capture _content %}
|
14
|
+
{% if layout.refactor or page.layout == 'page' %}
|
15
|
+
{% include refactor-content.html content=content %}
|
16
|
+
{% else %}
|
17
|
+
{{ content }}
|
18
|
+
{% endif %}
|
19
|
+
{% endcapture %}
|
20
|
+
|
21
|
+
{% if page.layout == 'page' or page.collection == 'tabs' %}
|
22
|
+
{% assign tab_key = page.title | downcase %}
|
23
|
+
{% assign title = site.data.locales[site.lang].tabs[tab_key] | default: page.title %}
|
24
|
+
<h1 class="dynamic-title">
|
25
|
+
{{ title }}
|
26
|
+
</h1>
|
27
|
+
<div class="post-content">
|
28
|
+
{{ _content }}
|
29
|
+
</div>
|
30
|
+
{% else %}
|
31
|
+
{{ _content }}
|
32
|
+
{% endif %}
|
33
|
+
|
34
|
+
</div>
|
35
|
+
</div> <!-- #core-wrapper -->
|
36
|
+
|
37
|
+
<!-- panel -->
|
38
|
+
<div id="panel-wrapper" class="col-xl-3 pl-2 text-muted">
|
39
|
+
|
40
|
+
<div class="access">
|
41
|
+
{% include update-list.html %}
|
42
|
+
{% include trending-tags.html %}
|
43
|
+
</div>
|
44
|
+
|
45
|
+
{% for _include in layout.panel_includes %}
|
46
|
+
{% assign _include_path = _include | append: '.html' %}
|
47
|
+
{% include {{ _include_path }} %}
|
48
|
+
{% endfor %}
|
49
|
+
</div>
|
50
|
+
|
51
|
+
</div>
|
52
|
+
|
53
|
+
<!-- tail -->
|
54
|
+
{% if layout.tail_includes %}
|
55
|
+
<div class="row">
|
56
|
+
<div id="tail-wrapper" class="col-12 col-lg-11 col-xl-9 pl-3 pr-3 pr-xl-4 mt-5">
|
57
|
+
{% for _include in layout.tail_includes %}
|
58
|
+
{% assign _include_path = _include | append: '.html' %}
|
59
|
+
{% include {{ _include_path }} %}
|
60
|
+
{% endfor %}
|
61
|
+
</div>
|
62
|
+
</div>
|
63
|
+
{% endif %}
|
data/_layouts/post.html
ADDED
@@ -0,0 +1,141 @@
|
|
1
|
+
---
|
2
|
+
layout: page
|
3
|
+
refactor: true
|
4
|
+
panel_includes:
|
5
|
+
- toc
|
6
|
+
tail_includes:
|
7
|
+
- related-posts
|
8
|
+
- post-nav
|
9
|
+
- comments
|
10
|
+
---
|
11
|
+
|
12
|
+
<h1 data-toc-skip>{{ page.title }}</h1>
|
13
|
+
|
14
|
+
<div class="post-meta text-muted">
|
15
|
+
<!-- published date -->
|
16
|
+
<span>
|
17
|
+
{{ site.data.locales[site.lang].post.posted }}
|
18
|
+
{% include datetime.html date=page.date tooltip=true %}
|
19
|
+
</span>
|
20
|
+
|
21
|
+
<!-- lastmod date -->
|
22
|
+
{% if page.last_modified_at %}
|
23
|
+
<span>
|
24
|
+
{{ site.data.locales[site.lang].post.updated }}
|
25
|
+
{% include datetime.html date=page.last_modified_at tooltip=true %}
|
26
|
+
</span>
|
27
|
+
{% endif %}
|
28
|
+
|
29
|
+
{% if page.image %}
|
30
|
+
{% capture src %}src="{{ page.image.path | default: page.image }}"{% endcapture %}
|
31
|
+
{% capture class %}class="preview-img{% if page.image.no_bg %}{{ ' no-bg' }}{% endif %}"{% endcapture %}
|
32
|
+
{% capture alt %}alt="{{ page.image.alt | default: "Preview Image" }}"{% endcapture %}
|
33
|
+
|
34
|
+
{% capture lqip %}
|
35
|
+
{% if page.image.lqip %}
|
36
|
+
lqip="{{ page.image.lqip }}"
|
37
|
+
{% endif %}
|
38
|
+
{% endcapture %}
|
39
|
+
|
40
|
+
<div class="mt-3 mb-3">
|
41
|
+
<img {{ src }} {{ class }} {{ alt }} w="1200" h="630" {{ lqip | strip }}>
|
42
|
+
{%- if page.image.alt -%}
|
43
|
+
<figcaption class="text-center pt-2 pb-2">{{ page.image.alt }}</figcaption>
|
44
|
+
{%- endif -%}
|
45
|
+
</div>
|
46
|
+
{% endif %}
|
47
|
+
|
48
|
+
<div class="d-flex justify-content-between">
|
49
|
+
<!-- author(s) -->
|
50
|
+
<span>
|
51
|
+
{% if page.author %}
|
52
|
+
{% assign authors = page.author %}
|
53
|
+
{% elsif page.authors %}
|
54
|
+
{% assign authors = page.authors %}
|
55
|
+
{% endif %}
|
56
|
+
|
57
|
+
{{ site.data.locales[site.lang].post.written_by }}
|
58
|
+
|
59
|
+
<em>
|
60
|
+
{% if authors %}
|
61
|
+
{% for author in authors %}
|
62
|
+
<a href="{{ site.data.authors[author].url }}">{{ site.data.authors[author].name }}</a>
|
63
|
+
{% unless forloop.last %}</em>, <em>{% endunless %}
|
64
|
+
{% endfor %}
|
65
|
+
{% else %}
|
66
|
+
<a href="{{ site.social.links[0] }}">{{ site.social.name }}</a>
|
67
|
+
{% endif %}
|
68
|
+
</em>
|
69
|
+
</span>
|
70
|
+
|
71
|
+
<div>
|
72
|
+
<!-- page views -->
|
73
|
+
{% if site.google_analytics.pv.proxy_endpoint or site.google_analytics.pv.cache_path %}
|
74
|
+
<span>
|
75
|
+
<em id="pv" class="pageviews">
|
76
|
+
<i class="fas fa-spinner fa-spin fa-fw"></i>
|
77
|
+
</em>
|
78
|
+
{{ site.data.locales[site.lang].post.pageview_measure }}
|
79
|
+
</span>
|
80
|
+
{% endif %}
|
81
|
+
|
82
|
+
<!-- read time -->
|
83
|
+
{% include read-time.html content=content prompt=true %}
|
84
|
+
</div>
|
85
|
+
|
86
|
+
</div> <!-- .d-flex -->
|
87
|
+
|
88
|
+
</div> <!-- .post-meta -->
|
89
|
+
|
90
|
+
<div class="post-content">
|
91
|
+
{{ content }}
|
92
|
+
</div>
|
93
|
+
|
94
|
+
<div class="post-tail-wrapper text-muted">
|
95
|
+
|
96
|
+
<!-- categories -->
|
97
|
+
{% if page.categories.size > 0 %}
|
98
|
+
<div class="post-meta mb-3">
|
99
|
+
<i class="far fa-folder-open fa-fw mr-1"></i>
|
100
|
+
{% for category in page.categories %}
|
101
|
+
<a href='{{ site.baseurl }}/categories/{{ category | slugify | url_encode }}/'>{{ category }}</a>
|
102
|
+
{%- unless forloop.last -%}, {%- endunless -%}
|
103
|
+
{% endfor %}
|
104
|
+
</div>
|
105
|
+
{% endif %}
|
106
|
+
|
107
|
+
<!-- tags -->
|
108
|
+
{% if page.tags.size > 0 %}
|
109
|
+
<div class="post-tags">
|
110
|
+
<i class="fa fa-tags fa-fw mr-1"></i>
|
111
|
+
{% for tag in page.tags %}
|
112
|
+
<a href="{{ site.baseurl }}/tags/{{ tag | slugify | url_encode }}/"
|
113
|
+
class="post-tag no-text-decoration" >
|
114
|
+
{{- tag -}}
|
115
|
+
</a>
|
116
|
+
{% endfor %}
|
117
|
+
</div>
|
118
|
+
{% endif %}
|
119
|
+
|
120
|
+
<div class="post-tail-bottom
|
121
|
+
d-flex justify-content-between align-items-center mt-3 pt-5 pb-2">
|
122
|
+
<div class="license-wrapper">
|
123
|
+
|
124
|
+
{% if site.data.locales[site.lang].copyright.license.template %}
|
125
|
+
|
126
|
+
{% capture _replacement %}
|
127
|
+
<a href="{{ site.data.locales[site.lang].copyright.license.link }}">
|
128
|
+
{{ site.data.locales[site.lang].copyright.license.name }}
|
129
|
+
</a>
|
130
|
+
{% endcapture %}
|
131
|
+
|
132
|
+
{{ site.data.locales[site.lang].copyright.license.template | replace: ':LICENSE_NAME', _replacement }}
|
133
|
+
|
134
|
+
{% endif %}
|
135
|
+
</div>
|
136
|
+
|
137
|
+
{% include post-sharing.html %}
|
138
|
+
|
139
|
+
</div><!-- .post-tail-bottom -->
|
140
|
+
|
141
|
+
</div><!-- div.post-tail-wrapper -->
|
data/_layouts/tag.html
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
---
|
2
|
+
layout: page
|
3
|
+
# The layout for Tag page
|
4
|
+
---
|
5
|
+
|
6
|
+
<div id="page-tag">
|
7
|
+
<h1 class="pl-lg-2">
|
8
|
+
<i class="fa fa-tag fa-fw text-muted"></i>
|
9
|
+
{{ page.title }}
|
10
|
+
<span class="lead text-muted pl-2">{{ page.posts | size }}</span>
|
11
|
+
</h1>
|
12
|
+
<ul class="post-content pl-0">
|
13
|
+
{% for post in page.posts %}
|
14
|
+
<li class="d-flex justify-content-between pl-md-3 pr-md-3">
|
15
|
+
<a href="{{ post.url | relative_url }}">{{ post.title }}</a>
|
16
|
+
<span class="dash flex-grow-1"></span>
|
17
|
+
{% include datetime.html date=post.date wrap='span' class='text-muted small' %}
|
18
|
+
</li>
|
19
|
+
{% endfor %}
|
20
|
+
</ul>
|
21
|
+
</div>
|
data/_layouts/tags.html
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
---
|
2
|
+
layout: page
|
3
|
+
# All the Tags of posts.
|
4
|
+
---
|
5
|
+
|
6
|
+
<div id="tags" class="d-flex flex-wrap ml-xl-2 mr-xl-2">
|
7
|
+
|
8
|
+
{% assign tags = "" | split: "" %}
|
9
|
+
{% for t in site.tags %}
|
10
|
+
{% assign tags = tags | push: t[0] %}
|
11
|
+
{% endfor %}
|
12
|
+
|
13
|
+
{% assign sorted_tags = tags | sort_natural %}
|
14
|
+
|
15
|
+
{% for t in sorted_tags %}
|
16
|
+
<div>
|
17
|
+
<a class="tag" href="{{ t | slugify | url_encode | prepend: '/tags/' | append: '/' | relative_url }}">
|
18
|
+
{{ t }}<span class="text-muted">{{ site.tags[t].size }}</span>
|
19
|
+
</a>
|
20
|
+
</div>
|
21
|
+
{% endfor %}
|
22
|
+
|
23
|
+
</div>
|