rawfeed 0.3.0 → 1.0.0

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.
Files changed (195) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +25 -0
  3. data/.gitignore +19 -0
  4. data/.gitlab/ci/gitlab-pages.yml +51 -0
  5. data/.hidden +6 -0
  6. data/404.html +6 -0
  7. data/Gemfile +51 -0
  8. data/README.md +102 -26
  9. data/_config.yml +77 -0
  10. data/_data/generic.yml +29 -0
  11. data/_data/screen/blog.yml +46 -0
  12. data/_data/screen/contact.yml +31 -0
  13. data/_data/screen/donate.yml +45 -0
  14. data/_data/screen/footer.yml +17 -0
  15. data/_data/screen/head.yml +49 -0
  16. data/_data/screen/home.yml +24 -0
  17. data/_data/screen/maintenance.yml +8 -0
  18. data/_data/screen/navbar.yml +41 -0
  19. data/_data/screen/page.yml +12 -0
  20. data/_data/screen/pixels.yml +7 -0
  21. data/_data/screen/pub.yml +4 -0
  22. data/_data/{resume.yml → screen/resume.yml} +8 -8
  23. data/_data/screen/socials.yml +20 -0
  24. data/_includes/assigned +36 -0
  25. data/_includes/layout/blog_search.html +22 -15
  26. data/_includes/layout/disqus.html +7 -8
  27. data/_includes/layout/footer.html +43 -28
  28. data/_includes/layout/giscus.html +15 -19
  29. data/_includes/layout/head.html +97 -75
  30. data/_includes/layout/maintenance.html +14 -11
  31. data/_includes/layout/navbar.html +253 -0
  32. data/_includes/layout/paginator.html +12 -13
  33. data/_includes/{alert → markdown/alert} +2 -2
  34. data/_includes/{chart → markdown/chart} +3 -3
  35. data/_includes/{image → markdown/image} +4 -4
  36. data/_includes/{socials → markdown/socials} +5 -5
  37. data/_includes/{video → markdown/video} +2 -2
  38. data/_layouts/blog/index.html +53 -0
  39. data/_layouts/{post.html → blog/post.html} +50 -36
  40. data/_layouts/blog/posts_by_tag.html +27 -0
  41. data/_layouts/blog/tags.html +32 -0
  42. data/_layouts/contact.html +156 -114
  43. data/_layouts/default.html +53 -48
  44. data/_layouts/donate.html +112 -0
  45. data/_layouts/error.html +9 -7
  46. data/_layouts/home.html +22 -19
  47. data/_layouts/licenses.html +2 -2
  48. data/_layouts/page.html +18 -17
  49. data/_layouts/pixels/index.html +75 -0
  50. data/_layouts/{pixel.html → pixels/post.html} +5 -5
  51. data/_layouts/pub.html +50 -44
  52. data/_layouts/resume.html +308 -265
  53. data/_pages/any-page.md +336 -0
  54. data/_pages/contact.md +16 -0
  55. data/_pages/donate.md +16 -0
  56. data/_pages/licenses.md +17 -0
  57. data/_pages/resume.md +14 -0
  58. data/_pixels/2025-10-15-first-my-pixel.md +34 -0
  59. data/_posts/2025-09-20-welcome-to-jekyll.md +36 -0
  60. data/_posts/2025-09-25-this-post-demonstrates-post-codeblocks.md +141 -0
  61. data/_posts/2025-09-25-this-post-demonstrates-post-content-styles.md +133 -0
  62. data/_posts/2025-10-04-content-styles-and-codeblocks.md +330 -0
  63. data/_sass/components/_markdown.scss +2 -2
  64. data/_sass/includes/_index.scss +2 -2
  65. data/_sass/includes/{_header.scss → _navbar.scss} +2 -6
  66. data/_sass/includes/_toc.scss +146 -0
  67. data/_sass/layouts/_blog.scss +1 -1
  68. data/_sass/layouts/_index.scss +2 -2
  69. data/_sass/layouts/_page.scss +0 -5
  70. data/_sass/layouts/_post.scss +8 -138
  71. data/_sass/layouts/{_tag-posts.scss → _posts_by_tag.scss} +3 -3
  72. data/_sass/layouts/_resume.scss +1 -1
  73. data/_sass/layouts/{_tag.scss → _tags.scss} +10 -6
  74. data/_sass/main.scss +2 -2
  75. data/_sass/theme/_dark.scss +2 -2
  76. data/_sass/theme/_light.scss +1 -1
  77. data/assets/js/blog.js +52 -18
  78. data/assets/js/contact.js +21 -20
  79. data/assets/js/default.js +67 -50
  80. data/assets/js/discus.js +2 -2
  81. data/assets/js/{donation.js → donate.js} +10 -9
  82. data/assets/js/home.js +18 -16
  83. data/assets/js/page.js +50 -172
  84. data/assets/js/toc.js +133 -0
  85. data/assets/json/blog_search.json +5 -7
  86. data/assets/vendors/fuse.min.js +9 -0
  87. data/blog/index.md +14 -0
  88. data/blog/tags/index.md +12 -0
  89. data/exe/rawfeed +29 -0
  90. data/index.md +15 -0
  91. data/lib/rawfeed/build/cleaner.rb +60 -0
  92. data/lib/rawfeed/build/image_minifier.rb +163 -0
  93. data/lib/rawfeed/build/minifier.rb +89 -0
  94. data/lib/rawfeed/build.rb +9 -0
  95. data/lib/rawfeed/command/backup.rb +124 -0
  96. data/lib/rawfeed/command/cli.rb +118 -0
  97. data/lib/rawfeed/command/installer.rb +156 -0
  98. data/lib/rawfeed/command/tools.rb +138 -0
  99. data/lib/rawfeed/{author.rb → content/author.rb} +7 -7
  100. data/lib/rawfeed/content/contact.rb +51 -0
  101. data/lib/rawfeed/content/donate.rb +48 -0
  102. data/lib/rawfeed/{draft.rb → content/draft.rb} +5 -3
  103. data/lib/rawfeed/content/licenses.rb +46 -0
  104. data/lib/rawfeed/{page.rb → content/page.rb} +4 -3
  105. data/lib/rawfeed/{pixel.rb → content/pixel.rb} +7 -4
  106. data/lib/rawfeed/content/post.rb +107 -0
  107. data/lib/rawfeed/{resume.rb → content/resume.rb} +23 -19
  108. data/lib/rawfeed/{layout.rb → core/layout.rb} +1 -1
  109. data/lib/rawfeed/core/utils.rb +103 -0
  110. data/lib/rawfeed/{version.rb → core/version.rb} +1 -1
  111. data/lib/rawfeed/{datelang.rb → plugin/datelang.rb} +5 -6
  112. data/lib/rawfeed/{pub.rb → plugin/pub.rb} +33 -31
  113. data/lib/rawfeed/{reading_time.rb → plugin/reading_time.rb} +5 -4
  114. data/lib/rawfeed/root.rb +3 -0
  115. data/lib/rawfeed.rb +36 -14
  116. data/pixels/index.md +11 -0
  117. data/robots.txt +26 -0
  118. metadata +153 -195
  119. data/_data/options.yml +0 -329
  120. data/_includes/layout/data.liquid +0 -31
  121. data/_includes/layout/header.html +0 -173
  122. data/_layouts/blog.html +0 -52
  123. data/_layouts/donation.html +0 -113
  124. data/_layouts/pixels.html +0 -71
  125. data/_layouts/tag.html +0 -33
  126. data/_layouts/tag_posts.html +0 -28
  127. data/assets/vendor/simple-jekyll-search.js +0 -433
  128. data/assets/vendor/simple-jekyll-search.min.js +0 -6
  129. data/lib/rawfeed/installer.rb +0 -37
  130. data/lib/rawfeed/post.rb +0 -60
  131. data/lib/rawfeed/utils.rb +0 -75
  132. /data/_includes/{details → markdown/details} +0 -0
  133. /data/_includes/{enddetails → markdown/enddetails} +0 -0
  134. /data/_includes/{endtabs → markdown/endtabs} +0 -0
  135. /data/_includes/{tabs → markdown/tabs} +0 -0
  136. /data/assets/images/{avatar_back.png → avatars/back.png} +0 -0
  137. /data/assets/images/{avatar_dark.png → avatars/dark.png} +0 -0
  138. /data/assets/images/{avatar_light.png → avatars/light.png} +0 -0
  139. /data/assets/images/{icons → donate}/bitcoin.svg +0 -0
  140. /data/assets/images/{icons → donate}/card.svg +0 -0
  141. /data/assets/images/{icons → donate}/donation.svg +0 -0
  142. /data/assets/images/{icons → donate}/lightning_network.svg +0 -0
  143. /data/assets/images/{icons → donate}/paypal.svg +0 -0
  144. /data/assets/images/{icons → donate}/pix.svg +0 -0
  145. /data/assets/images/{qrcode_btc_binance.jpg → donate/qrcode_btc_binance.jpg} +0 -0
  146. /data/assets/images/{qrcode_inter.jpg → donate/qrcode_inter.jpg} +0 -0
  147. /data/assets/images/{qrcode_wos.jpg → donate/qrcode_wos.jpg} +0 -0
  148. /data/assets/images/{icons → donate}/wos.png +0 -0
  149. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-grid.css +0 -0
  150. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-grid.css.map +0 -0
  151. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-grid.min.css +0 -0
  152. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-grid.min.css.map +0 -0
  153. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-grid.rtl.css +0 -0
  154. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-grid.rtl.css.map +0 -0
  155. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-grid.rtl.min.css +0 -0
  156. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-grid.rtl.min.css.map +0 -0
  157. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-reboot.css +0 -0
  158. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-reboot.css.map +0 -0
  159. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-reboot.min.css +0 -0
  160. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-reboot.min.css.map +0 -0
  161. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-reboot.rtl.css +0 -0
  162. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-reboot.rtl.css.map +0 -0
  163. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-reboot.rtl.min.css +0 -0
  164. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-reboot.rtl.min.css.map +0 -0
  165. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-utilities.css +0 -0
  166. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-utilities.css.map +0 -0
  167. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-utilities.min.css +0 -0
  168. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-utilities.min.css.map +0 -0
  169. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-utilities.rtl.css +0 -0
  170. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-utilities.rtl.css.map +0 -0
  171. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-utilities.rtl.min.css +0 -0
  172. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap-utilities.rtl.min.css.map +0 -0
  173. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap.css +0 -0
  174. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap.css.map +0 -0
  175. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap.min.css +0 -0
  176. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap.min.css.map +0 -0
  177. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap.rtl.css +0 -0
  178. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap.rtl.css.map +0 -0
  179. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap.rtl.min.css +0 -0
  180. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/css/bootstrap.rtl.min.css.map +0 -0
  181. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/js/bootstrap.bundle.js +0 -0
  182. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/js/bootstrap.bundle.js.map +0 -0
  183. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/js/bootstrap.bundle.min.js +0 -0
  184. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/js/bootstrap.bundle.min.js.map +0 -0
  185. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/js/bootstrap.esm.js +0 -0
  186. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/js/bootstrap.esm.js.map +0 -0
  187. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/js/bootstrap.esm.min.js +0 -0
  188. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/js/bootstrap.esm.min.js.map +0 -0
  189. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/js/bootstrap.js +0 -0
  190. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/js/bootstrap.js.map +0 -0
  191. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/js/bootstrap.min.js +0 -0
  192. /data/assets/{vendor/bootstrap → vendors/bootstrap-5.2.3}/js/bootstrap.min.js.map +0 -0
  193. /data/lib/rawfeed/{csp_filters.rb → plugin/csp_filters.rb} +0 -0
  194. /data/lib/rawfeed/{typescript_liquid.rb → plugin/typescript_liquid.rb} +0 -0
  195. /data/lib/rawfeed/{with_class.rb → plugin/with_class.rb} +0 -0
@@ -1,4 +1,4 @@
1
- {%- include layout/data.liquid -%}
1
+ {%- include assigned -%}
2
2
 
3
3
  {%- assign right_style = "float: right; margin-left: 10px;" -%}
4
4
  {%- assign left_style = "float: left; margin-right: 10px;" -%}
@@ -23,7 +23,7 @@
23
23
  src="{{ include.src }}"
24
24
  alt="{{ include.title | default: include.caption | escape }}"
25
25
  style="display:block; width:100%; height: {{ include.height | default: 'auto' }}; border-radius: {{ include.border-radius | default: 0 }}px; border: 1px solid {{ include.border-color | default: '#757575' }};"
26
- class="{% if default_.rounding %}rounding-plugins{% endif %}"
26
+ class="{% if default.rounding %}rounding-plugins{% endif %}"
27
27
  />
28
28
  {%- if include.caption -%}
29
29
  <figcaption class="img-include-caption">{{ include.caption }}</figcaption>
@@ -36,7 +36,7 @@
36
36
  src="{{ include.src }}"
37
37
  alt="{{ include.title | default: include.caption | escape }}"
38
38
  style="display:block; width:100%; height: {{ include.height | default: 'auto' }}; border-radius: {{ include.border-radius | default: 0 }}px; border: 1px solid {{ include.border-color | default: '#ddd' }};"
39
- class="{% if default_.rounding %}rounding-plugins{% endif %}"
39
+ class="{% if default.rounding %}rounding-plugins{% endif %}"
40
40
  />
41
41
  {%- if include.caption -%}
42
42
  <figcaption class="img-include-caption">{{ include.caption }}</figcaption>
@@ -49,7 +49,7 @@
49
49
  src="{{ include.src }}"
50
50
  alt="{{ include.title | default: include.caption | escape }}"
51
51
  style="display:block; width:100%; height: {{ include.height | default: 'auto' }}; border-radius: {{ include.border-radius | default: 0 }}px; border: 1px solid {{ include.border-color | default: '#ddd' }};"
52
- class="{% if default_.rounding %}rounding-plugins{% endif %}"
52
+ class="{% if default.rounding %}rounding-plugins{% endif %}"
53
53
  />
54
54
  {%- if include.caption -%}
55
55
  <figcaption class="img-include-caption">{{ include.caption }}</figcaption>
@@ -1,6 +1,6 @@
1
- {%- include layout/data.liquid -%}
1
+ {%- include assigned -%}
2
2
 
3
- {%- assign separator = default_.separator -%}
3
+ {%- assign separator = default.separator -%}
4
4
 
5
5
  <div class="container socials">
6
6
  <div class="row">
@@ -14,10 +14,10 @@
14
14
  {%- endif -%}
15
15
 
16
16
  <div class="col-sm d-flex {{pos}}" style="padding: 0 !important;">
17
- {% assign links = socials_.links %}
18
- {% for item in links %}
17
+ {%- assign links = socials.links -%}
18
+ {%- for item in links -%}
19
19
  <a class="socials-link" title="{{ item.title }}" href="{{ item.url }}" target="_blank">{{ item.title }}</a><strong class="separator">{{separator}}</strong>
20
- {% endfor %}
20
+ {%- endfor -%}
21
21
  </div>
22
22
 
23
23
  </div>
@@ -1,7 +1,7 @@
1
- {%- include layout/data.liquid -%}
1
+ {%- include assigned -%}
2
2
 
3
3
 
4
- <div class="video-wrapper{% if default_.rounding %} rounding-plugins{% endif %}">
4
+ <div class="video-wrapper{% if default.rounding %} rounding-plugins{% endif %}">
5
5
  <iframe src="{{ include.url }}" title="{{ include.title | default: 'Video' }}"
6
6
  frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen>
7
7
  </iframe>
@@ -0,0 +1,53 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+ {%- include assigned -%}
5
+
6
+ {%- if page.pagination.enabled == true and site.pagination.enabled == true -%}
7
+ {%- assign count_posts = paginator.total_posts -%}
8
+ {%- else -%}
9
+ {%- for _ in site.posts -%}
10
+ {%- capture count_posts -%} {{ count_posts | plus: 1 }} {%- endcapture -%}
11
+ {%- endfor -%}
12
+ {%- endif -%}
13
+
14
+ <div id="blog" class="blog{% if default.background_focus %} background_focus{% endif %} {% if default.rounding %} rounding{% endif %}">
15
+ {%- include layout/blog_search.html -%}
16
+
17
+ <div id="posts" class="row">
18
+ {%- if page.description -%}
19
+ <div class="blog-description">
20
+ <span>»&nbsp;</span>
21
+ {{ page.description | markdownify }}</div>
22
+ {%- endif -%}
23
+ {%- if page.title -%}
24
+ <h2 class="blog-subtitle">[&nbsp;{{ blog.subtitle | default: 'posts' }}:&nbsp;&nbsp;{{ count_posts }}&nbsp;]</h2>
25
+ {%- endif -%}
26
+
27
+ {%- if site.posts.size > 0 -%}
28
+ <ul class="row blog-list">
29
+ {%- if page.pagination.enabled == true and site.pagination.enabled == true -%}
30
+ {%- assign posts = paginator.posts -%}
31
+ {%- else -%}
32
+ {%- assign posts = site.posts -%}
33
+ {%- endif -%}
34
+
35
+ {%- for post in posts -%}
36
+ <li class="blog-list__item">
37
+ {%- if datelang -%}
38
+ <span class="blog-list__meta">{% datelang post.date %}</span>&nbsp;»&nbsp;
39
+ {%- else -%}
40
+ <span class="blog-list__meta">{{ post.date | date: '%b %-d, %Y' }}</span>&nbsp;»&nbsp;
41
+ {%- endif -%}
42
+ <a class="blog-list__link" href="{{ post.url | relative_url }}">{{ post.title | escape }}</a>
43
+ {%- if post.draft -%}
44
+ <span class="draft-badge">[&nbsp;this is a draft&nbsp;]</span>
45
+ {%- endif -%}
46
+ </li>
47
+ {%- endfor -%}
48
+ </ul>
49
+ {%- endif -%}
50
+
51
+ {%- include layout/paginator.html -%}
52
+ </div>
53
+ </div>
@@ -2,11 +2,15 @@
2
2
  layout: default
3
3
  ---
4
4
 
5
- {%- include layout/data.liquid -%}
5
+ {%- include assigned -%}
6
6
 
7
- {%- assign menu_separator = default_.separator -%}
7
+ {%- assign menu_separator = default.separator -%}
8
8
 
9
- <article id="post" class="post{% if default_.background_focus %} background_focus{% endif %} {% if default_.rounding %} rounding{% endif %}" itemscope itemtype="http://schema.org/BlogPosting">
9
+ <article
10
+ id="post"
11
+ class="post{% if default.background_focus %} background_focus{% endif %} {% if default.rounding %} rounding{% endif %}"
12
+ itemscope
13
+ itemtype="http://schema.org/BlogPosting">
10
14
  <div class="row">
11
15
 
12
16
  <header class="post-header">
@@ -14,27 +18,32 @@ layout: default
14
18
 
15
19
  <div class="row post-meta">
16
20
  <div class="col-sm d-flex justify-content-start">
17
- <time class="dt-published" datetime="{{ page.date | date_to_xmlschema }}" itemprop="datePublished">
18
- {%- if datelang_ -%}
19
- {% datelang page.date format:datelang_.format %}
20
- {%- else -%}
21
- {{ page.date | date: "%b %-d, %Y" }}
22
- {%- endif -%}
21
+ <time
22
+ class="dt-published"
23
+ datetime="{{ page.date | date_to_xmlschema }}"
24
+ itemprop="datePublished">
25
+ {%- if datelang -%}
26
+ {% datelang page.date %}
27
+ {%- else -%}
28
+ {{ page.date | date: "%b %-d, %Y" }}
29
+ {%- endif -%}
23
30
  </time>
24
31
  </div>
25
32
  <div class="col-sm d-flex justify-content-end">
26
33
  {%- if page.author -%}
27
- <span itemprop="author" itemscope itemtype="http://schema.org/Person">
28
- <span class="p-author h-card" itemprop="name">
29
- {{ blog_.post.author | default: "author" }}:&nbsp;{{ page.author }}
34
+ <span
35
+ itemprop="author"
36
+ itemscope
37
+ itemtype="http://schema.org/Person">
38
+ <span class="p-author h-card" itemprop="name">
39
+ {{ blog.post.author | default: "author" }}:&nbsp;{{ page.author }}</span>
30
40
  </span>
31
- </span>
32
41
  {%- endif -%}
33
42
  </div>
34
- {%- if reading_time_.enable -%}
35
- <div class="post-reading_time">
36
- [&nbsp;{{ page.content | reading_time }}&nbsp;]
37
- </div>
43
+ {%- if blog.post.reading_time.enable -%}
44
+ <div class="post-reading_time">
45
+ [&nbsp;{{ page.content | reading_time }}&nbsp;]
46
+ </div>
38
47
  {%- endif -%}
39
48
  </div>
40
49
 
@@ -46,10 +55,13 @@ layout: default
46
55
 
47
56
  {%- if page.update_date -%}
48
57
  <div class="row post-modified">
49
- <time class="dt-modified" datetime="{{ page.date | date_to_xmlschema }}" itemprop="dateModified">
50
- <strong>{{ blog_.post.updated_on | default: "Post updated on" }}:</strong>&nbsp;
51
- {%- if datelang_ -%}
52
- {% datelang page.update_date format:datelang_.format %}
58
+ <time
59
+ class="dt-modified"
60
+ datetime="{{ page.date | date_to_xmlschema }}"
61
+ itemprop="dateModified">
62
+ <strong>{{ blog.post.updated_on | default: "Post updated on" }}:</strong>&nbsp;
63
+ {%- if datelang -%}
64
+ {% datelang page.update_date %}
53
65
  {%- else -%}
54
66
  {{ page.date | date: "%b %-d, %Y" }}
55
67
  {%- endif -%}
@@ -59,28 +71,30 @@ layout: default
59
71
 
60
72
  <div class="row post-tags">
61
73
  <ul class="tag-list">
62
- {%- assign tags = page.tags | sort -%}
63
- <strong>[{{ "tags" | with_class: "spacer" }}]:</strong>
64
- {%- for tag in tags -%}
65
- <li class="tag-list__item">
66
- <a class="tag-list__link" href="{{ '/blog/tags/' | append: tag | relative_url }}">
67
- {{ tag }}
68
- </a>
69
- </li><strong class="separator">{{menu_separator}}</strong>
70
- {%- endfor -%}
74
+ {%- assign tags = page.tags | sort -%}
75
+ <strong>[{{ "tags" | with_class: "spacer" }}]:</strong>
76
+ {%- for tag in tags -%}
77
+ <li class="tag-list__item">
78
+ <a class="tag-list__link" href="{{ '/blog/tags/' | append: tag | relative_url }}">
79
+ {{ tag }}
80
+ </a>
81
+ </li>
82
+ <strong class="separator">{{ menu_separator }}</strong>
83
+ {%- endfor -%}
71
84
  </ul>
72
85
  </div>
73
86
 
74
87
  </div>
75
88
 
76
- <div class="post-end text-center">////&nbsp;end of post&nbsp;////</div>
89
+ <div class="m-5 text-center">////&nbsp;end of post&nbsp;////
90
+ </div>
77
91
 
78
92
  <!-- Comments -->
79
93
  {%- include layout/disqus.html -%}
80
94
  {%- include layout/giscus.html -%}
81
95
  <!-- Comments -->
82
96
 
83
- {%- if blog_.post.related_posts.enable -%}
97
+ {%- if blog.post.related_posts.enable -%}
84
98
  {%- assign related_posts_found = "" | split: "," -%}
85
99
 
86
100
  {%- for tag in page.tags -%}
@@ -93,13 +107,13 @@ layout: default
93
107
 
94
108
  {%- if related_posts.size > 0 -%}
95
109
  <div class="row related-posts">
96
- <h3 class="related-posts-title">[&nbsp;{{ blog_.post.related_posts.title | default: "related posts" }}&nbsp;]</h3>
110
+ <h3 class="related-posts-title">[&nbsp;{{ blog.post.related_posts.title | default: "related posts" }}&nbsp;]</h3>
97
111
 
98
112
  <ul class="related-posts-list">
99
- {%- for post in related_posts limit:5 -%}
113
+ {%- for post in related_posts limit: 5 -%}
100
114
  <li class="related-posts-list__item">
101
- {%- if datelang_ -%}
102
- <span class="related-posts-list__meta">{% datelang post.date format:datelang_.format %}</span>&nbsp;»&nbsp;
115
+ {%- if datelang -%}
116
+ <span class="related-posts-list__meta">{% datelang post.date %}</span>&nbsp;»&nbsp;
103
117
  {%- else -%}
104
118
  <span class="related-posts-list__meta">{{ post.date | date: "%b %-d, %Y" }}</span>&nbsp;»&nbsp;
105
119
  {%- endif -%}
@@ -0,0 +1,27 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ {%- include assigned -%}
6
+
7
+ <div class="container posts_by_tag{% if default.background_focus %} background_focus{% endif %} {% if default.rounding %} rounding{% endif %}">
8
+ <div class="row">
9
+ <h1 class="posts_by_tag__title">
10
+ <span>[&nbsp;{{ blog.post.posts_by_tags.title }}:&nbsp;</span>
11
+ {{ page.title }}<span>&nbsp;]</span>
12
+ </h1>
13
+
14
+ <ul class="row posts_by_tag__list">
15
+ {%- for post in page.posts -%}
16
+ <li class="posts_by_tag__list__item">
17
+ <span class="posts_by_tag__list__meta">{%- datelang post.date -%}</span>&nbsp;»&nbsp;
18
+ <a class="posts_by_tag__list__link" href="{{ post.url | relative_url }}">{{ post.title }}</a>
19
+ {%- if post.draft -%}
20
+ <span class="draft-badge">[&nbsp;this is a draft&nbsp;]</span>
21
+ {%- endif -%}
22
+ </li>
23
+ {%- endfor -%}
24
+ </ul>
25
+
26
+ </div>
27
+ </div>
@@ -0,0 +1,32 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+ {%- include assigned -%}
5
+
6
+ {%- assign menu_separator = default.separator -%}
7
+
8
+ <div class="container tags{% if default.background_focus %} background_focus{% endif %} {% if default.rounding %} rounding{% endif %}">
9
+ {%- if page.description -%}
10
+ <div class="row">
11
+ <div class="tags__description">
12
+ <span>»&nbsp;</span>
13
+ {{ page.description }}</div>
14
+ </div>
15
+ {%- endif -%}
16
+
17
+ <div class="row">
18
+ <h1 class="tags__title">[&nbsp;tags&nbsp;]</h1>
19
+ <ul class="tags__list">
20
+ {%- assign tags = site.tags | sort -%}
21
+ {%- for tag in tags -%}
22
+ {%- assign tag_name = tag[0] -%}
23
+ <li class="tags__list__item">
24
+ <a class="tags__list__link" href="{{ '/blog/tags/' | append: tag_name | relative_url }}">
25
+ {{ tag_name }}
26
+ </a>
27
+ </li>
28
+ <strong>{{ menu_separator }}</strong>
29
+ {%- endfor -%}
30
+ </ul>
31
+ </div>
32
+ </div>