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
@@ -10,14 +10,14 @@
10
10
  }
11
11
  }
12
12
 
13
- @mixin btn-post-nav {
13
+ %btn-post-nav {
14
14
  width: 50%;
15
15
  position: relative;
16
16
  border-color: var(--btn-border-color);
17
17
  }
18
18
 
19
19
  @mixin dot($pl: 0.25rem, $pr: 0.25rem) {
20
- content: "\2022";
20
+ content: '\2022';
21
21
  padding-left: $pl;
22
22
  padding-right: $pr;
23
23
  }
@@ -26,27 +26,40 @@
26
26
  color: var(--text-color);
27
27
  }
28
28
 
29
- h1 + .post-meta {
30
- span + span::before {
31
- @include dot;
32
- }
29
+ .preview-img {
30
+ overflow: hidden;
31
+ aspect-ratio: 40 / 21;
33
32
 
34
- em {
35
- @extend %text-color;
33
+ @extend %rounded;
36
34
 
37
- a {
38
- @extend %text-color;
35
+ &:not(.no-bg) {
36
+ img.lazyloaded {
37
+ background: var(--img-bg);
39
38
  }
40
39
  }
40
+
41
+ img {
42
+ -o-object-fit: cover;
43
+ object-fit: cover;
44
+
45
+ @extend %rounded;
46
+ }
41
47
  }
42
48
 
43
- img.preview-img {
44
- margin-top: 3.75rem;
45
- margin-bottom: 0;
46
- border-radius: 6px;
49
+ h1 + .post-meta {
50
+ > span + span::before {
51
+ @include dot;
52
+ }
47
53
 
48
- &.bg[data-loaded=true] {
49
- background: var(--preview-img-bg);
54
+ em,
55
+ time {
56
+ color: var(--text-color);
57
+ }
58
+
59
+ em {
60
+ a {
61
+ color: inherit;
62
+ }
50
63
  }
51
64
  }
52
65
 
@@ -55,41 +68,122 @@ img.preview-img {
55
68
  border-bottom: 1px double var(--main-border-color);
56
69
  font-size: 0.85rem;
57
70
 
58
- .post-meta a {
71
+ .post-tail-bottom a {
72
+ color: inherit;
73
+ }
74
+
75
+ .license-wrapper {
76
+ line-height: 1.2rem;
77
+
78
+ > a {
79
+ @extend %text-highlight;
80
+
81
+ &:hover {
82
+ @extend %link-hover;
83
+ }
84
+ }
85
+
86
+ span:last-child {
87
+ font-size: 0.85rem;
88
+ }
89
+ } /* .license-wrapper */
90
+
91
+ .post-meta a:not(:hover) {
59
92
  @extend %link-underline;
60
93
  }
94
+
95
+ .share-wrapper {
96
+ vertical-align: middle;
97
+ -webkit-user-select: none;
98
+ -moz-user-select: none;
99
+ -ms-user-select: none;
100
+ user-select: none;
101
+
102
+ .share-icons {
103
+ font-size: 1.2rem;
104
+
105
+ > * {
106
+ margin-left: 0.25rem;
107
+
108
+ &:hover {
109
+ i {
110
+ @extend %btn-share-hovor;
111
+ }
112
+ }
113
+ }
114
+
115
+ button {
116
+ position: relative;
117
+ bottom: 2px;
118
+ padding: 0;
119
+
120
+ @extend %cursor-pointer;
121
+ }
122
+
123
+ a :hover {
124
+ text-decoration: none;
125
+ }
126
+
127
+ .fa-square-x-twitter {
128
+ @include btn-sharing-color(black);
129
+ }
130
+
131
+ .fa-facebook-square {
132
+ @include btn-sharing-color(rgb(66, 95, 156));
133
+ }
134
+
135
+ .fa-telegram {
136
+ @include btn-sharing-color(rgb(39, 159, 217));
137
+ }
138
+
139
+ .fa-linkedin {
140
+ @include btn-sharing-color(rgb(0, 119, 181));
141
+ }
142
+
143
+ .fa-weibo {
144
+ @include btn-sharing-color(rgb(229, 20, 43));
145
+ }
146
+ } /* .share-icons */
147
+
148
+ .fas.fa-link {
149
+ @include btn-sharing-color(rgb(171, 171, 171));
150
+ }
151
+ } /* .share-wrapper */
61
152
  }
62
153
 
63
154
  .post-tags {
64
155
  line-height: 2rem;
156
+
157
+ .post-tag {
158
+ &:hover {
159
+ @extend %link-hover;
160
+ @extend %tag-hover;
161
+ @extend %no-bottom-border;
162
+ }
163
+ }
65
164
  }
66
165
 
67
166
  .post-navigation {
68
- padding-top: 3rem;
69
- padding-bottom: 4rem;
70
-
71
167
  .btn {
72
- @include btn-post-nav;
168
+ @extend %btn-post-nav;
73
169
 
74
- color: var(--link-color);
170
+ &:not(:hover) {
171
+ color: var(--link-color);
172
+ }
75
173
 
76
174
  &:hover {
77
- background: #2a408e;
78
- color: #fff;
79
- border-color: #2a408e;
175
+ &:not(.disabled)::before {
176
+ color: whitesmoke;
177
+ }
80
178
  }
81
179
 
82
180
  &.disabled {
83
- @include btn-post-nav;
181
+ @extend %btn-post-nav;
84
182
 
85
183
  pointer-events: auto;
86
184
  cursor: not-allowed;
87
185
  background: none;
88
186
  color: gray;
89
-
90
- &:hover {
91
- border-color: none;
92
- }
93
187
  }
94
188
 
95
189
  &.btn-outline-primary.disabled:focus {
@@ -100,18 +194,16 @@ img.preview-img {
100
194
  color: var(--text-muted-color);
101
195
  font-size: 0.65rem;
102
196
  text-transform: uppercase;
103
- content: attr(prompt);
197
+ content: attr(aria-label);
104
198
  }
105
199
 
106
200
  &:first-child {
107
- border-top-right-radius: 0;
108
- border-bottom-right-radius: 0;
201
+ border-radius: $base-radius 0 0 $base-radius;
109
202
  left: 0.5px;
110
203
  }
111
204
 
112
205
  &:last-child {
113
- border-top-left-radius: 0;
114
- border-bottom-left-radius: 0;
206
+ border-radius: 0 $base-radius $base-radius 0;
115
207
  right: 0.5px;
116
208
  }
117
209
  }
@@ -122,15 +214,38 @@ img.preview-img {
122
214
  margin-top: 0.3rem;
123
215
  white-space: normal;
124
216
  }
125
-
126
217
  } /* .post-navigation */
127
218
 
219
+ @media (hover: hover) {
220
+ .post-navigation {
221
+ .btn,
222
+ .btn::before {
223
+ transition: all 0.35s ease-in-out;
224
+ }
225
+ }
226
+ }
227
+
228
+ @-webkit-keyframes fade-up {
229
+ from {
230
+ opacity: 0;
231
+ position: relative;
232
+ top: 2rem;
233
+ }
234
+
235
+ to {
236
+ opacity: 1;
237
+ position: relative;
238
+ top: 0;
239
+ }
240
+ }
241
+
128
242
  @keyframes fade-up {
129
243
  from {
130
244
  opacity: 0;
131
245
  position: relative;
132
246
  top: 2rem;
133
247
  }
248
+
134
249
  to {
135
250
  opacity: 1;
136
251
  position: relative;
@@ -144,22 +259,58 @@ img.preview-img {
144
259
  position: sticky;
145
260
  top: 4rem;
146
261
  transition: top 0.2s ease-in-out;
262
+ -webkit-animation: fade-up 0.8s;
147
263
  animation: fade-up 0.8s;
148
- }
149
264
 
150
- #toc li a {
151
- font-size: 0.8rem;
265
+ ul {
266
+ list-style: none;
267
+ font-size: 0.85rem;
268
+ line-height: 1.25;
269
+ padding-left: 0;
270
+
271
+ li {
272
+ &:not(:last-child) {
273
+ margin: 0.4rem 0;
274
+ }
152
275
 
153
- &.nav-link:not(.active) {
154
- color: inherit;
155
- }
276
+ a {
277
+ padding: 0.2rem 0 0.2rem 1.25rem;
278
+ }
279
+ }
156
280
 
157
- }
281
+ /* Overwrite TOC plugin style */
158
282
 
159
- nav[data-toggle=toc] {
160
- .nav {
161
- .nav > li > a.active {
162
- font-weight: 600 !important;
283
+ .toc-link {
284
+ display: block;
285
+ white-space: nowrap;
286
+ overflow: hidden;
287
+ text-overflow: ellipsis;
288
+
289
+ &:hover {
290
+ color: var(--toc-highlight);
291
+ text-decoration: none;
292
+ }
293
+
294
+ &::before {
295
+ display: none;
296
+ }
297
+ }
298
+
299
+ .is-active-link {
300
+ color: var(--toc-highlight) !important;
301
+ font-weight: 600;
302
+
303
+ &::before {
304
+ display: inline-block;
305
+ width: 1px;
306
+ left: -1px;
307
+ height: 1.25rem;
308
+ background-color: var(--toc-highlight) !important;
309
+ }
310
+ }
311
+
312
+ ul {
313
+ padding-left: 0.75rem;
163
314
  }
164
315
  }
165
316
  }
@@ -171,31 +322,10 @@ nav[data-toggle=toc] {
171
322
  @include label(1.1rem, 600);
172
323
  }
173
324
 
174
- em {
325
+ time {
175
326
  @extend %normal-font-style;
176
- }
177
-
178
- .card {
179
- border-color: var(--card-border-color);
180
- background-color: var(--card-bg);
181
- box-shadow: 0 0 5px 0 var(--card-box-shadow);
182
- -webkit-transition: all 0.3s ease-in-out;
183
- -moz-transition: all 0.3s ease-in-out;
184
- transition: all 0.3s ease-in-out;
185
-
186
- h3 {
187
- @extend %text-color;
188
- }
189
327
 
190
- &:hover {
191
- -webkit-transform: translate3d(0, -3px, 0);
192
- transform: translate3d(0, -3px, 0);
193
- box-shadow: 0 10px 15px -4px rgba(0, 0, 0, 0.15);
194
- }
195
- }
196
-
197
- .timeago {
198
- color: var(--relate-post-date);
328
+ color: var(--text-muted-color);
199
329
  }
200
330
 
201
331
  p {
@@ -208,24 +338,10 @@ nav[data-toggle=toc] {
208
338
  -webkit-box-orient: vertical;
209
339
  }
210
340
 
211
- a:hover {
212
- text-decoration: none;
213
- }
214
-
215
- ul {
216
- list-style-type: none;
217
- padding-inline-start: 1.5rem;
218
-
219
- > li::before {
220
- background: #c2c9d4;
221
- width: 5px;
222
- height: 5px;
223
- border-radius: 1px;
224
- display: block;
225
- content: "";
226
- position: relative;
227
- top: 1rem;
228
- right: 1rem;
341
+ .card {
342
+ h4 {
343
+ @extend %text-color;
344
+ @extend %text-clip;
229
345
  }
230
346
  }
231
347
  }
@@ -233,114 +349,38 @@ nav[data-toggle=toc] {
233
349
  #tail-wrapper {
234
350
  min-height: 2rem;
235
351
 
236
- > div:last-of-type {
237
- margin-bottom: 2rem;
352
+ > *:not(:last-child) {
353
+ margin-top: 3rem;
354
+ }
355
+
356
+ > *:nth-last-child(2) {
357
+ margin-bottom: 3rem;
238
358
  }
239
359
 
360
+ /* stylelint-disable-next-line selector-id-pattern */
240
361
  #disqus_thread {
241
362
  min-height: 8.5rem;
242
363
  }
243
-
244
- }
245
-
246
- .post-tail-bottom a {
247
- color: inherit;
248
364
  }
249
365
 
250
366
  %btn-share-hovor {
251
367
  color: var(--btn-share-hover-color) !important;
252
368
  }
253
369
 
254
- .share-wrapper {
255
- vertical-align: middle;
256
- user-select: none;
257
-
258
- .share-icons {
259
- font-size: 1.2rem;
260
-
261
- a {
262
- &:not(:last-child) {
263
- margin-right: 0.25rem;
264
- }
265
-
266
- &:hover {
267
- text-decoration: none;
268
-
269
- > i {
270
- @extend %btn-share-hovor;
271
- }
272
- }
273
- }
274
-
275
- > i {
276
- position: relative;
277
- bottom: 1px;
278
-
279
- @extend %cursor-pointer;
280
-
281
- &:hover {
282
- @extend %btn-share-hovor;
283
- }
284
- }
285
-
286
- .fab {
287
- &.fa-twitter {
288
- @include btn-sharing-color(rgba(29, 161, 242, 1));
289
- }
290
-
291
- &.fa-facebook-square {
292
- @include btn-sharing-color(rgb(66, 95, 156));
293
- }
294
-
295
- &.fa-telegram {
296
- @include btn-sharing-color(rgb(39, 159, 217));
297
- }
298
-
299
- &.fa-weibo {
300
- @include btn-sharing-color(rgb(229, 20, 43));
301
- }
302
- }
303
-
304
- } /* .share-icons */
305
-
306
- .fas.fa-link {
307
- @include btn-sharing-color(rgb(171, 171, 171));
308
- }
309
-
310
- } /* .share-wrapper */
311
-
312
370
  .share-label {
313
371
  @include label(inherit, 400, inherit);
314
372
 
315
373
  &::after {
316
- content: ":";
374
+ content: ':';
317
375
  }
318
376
  }
319
377
 
320
- .license-wrapper {
321
- line-height: 1.2rem;
322
-
323
- > a {
324
- color: var(--text-color);
325
-
326
- &:hover {
327
- @extend %link-hover;
328
- }
329
- }
330
-
331
- span:last-child {
332
- font-size: 0.85rem;
333
- }
334
-
335
- } /* .license-wrapper */
336
-
337
378
  @media all and (max-width: 576px) {
338
379
  .preview-img[data-src] {
339
380
  margin-top: 2.2rem;
340
381
  }
341
382
 
342
383
  .post-tail-bottom {
343
- -ms-flex-wrap: wrap-reverse !important;
344
384
  flex-wrap: wrap-reverse !important;
345
385
 
346
386
  > div:first-child {
@@ -351,7 +391,7 @@ nav[data-toggle=toc] {
351
391
  }
352
392
 
353
393
  @media all and (max-width: 768px) {
354
- .post-content > p > img {
394
+ .content > p > img {
355
395
  max-width: calc(100% + 1rem);
356
396
  }
357
397
  }
@@ -14,6 +14,6 @@
14
14
  span {
15
15
  margin-left: 0.6em;
16
16
  font-size: 0.7em;
17
- font-family: 'Oswald', sans-serif;
17
+ font-family: Oswald, sans-serif;
18
18
  }
19
19
  }
data/_sass/main.scss ADDED
@@ -0,0 +1,13 @@
1
+ @import 'colors/typography-light';
2
+ @import 'colors/typography-dark';
3
+ @import 'addon/variables';
4
+ @import 'variables-hook';
5
+ @import 'addon/module';
6
+ @import 'addon/syntax';
7
+ @import 'addon/commons';
8
+ @import 'layout/home';
9
+ @import 'layout/post';
10
+ @import 'layout/tags';
11
+ @import 'layout/archives';
12
+ @import 'layout/categories';
13
+ @import 'layout/category-tag';
data/assets/404.html CHANGED
@@ -7,27 +7,8 @@ redirect_from:
7
7
  - /norobots/
8
8
  - /assets/
9
9
  - /posts/
10
-
11
- dynamic_title: true
12
10
  ---
13
11
 
14
12
  {% include lang.html %}
15
13
 
16
- <div class="lead">
17
-
18
- {%- capture _head_back -%}
19
- <a href="{{ '/' | relative_url }}">{{ site.data.locales[lang].not_found.head_back }}</a>
20
- {%- endcapture -%}
21
-
22
- {%- capture _archives_page -%}
23
- <a href="{{ 'archives' | relative_url }}">{{ site.data.locales[lang].not_found.archives_page }}</a>
24
- {%- endcapture -%}
25
-
26
- <p>{{site.data.locales[lang].not_found.statment }}</p>
27
-
28
- <p>{{ site.data.locales[lang].not_found.hint_template
29
- | replace: ':HEAD_BAK', _head_back
30
- | replace: ':ARCHIVES_PAGE', _archives_page }}
31
- </p>
32
-
33
- </div>
14
+ <p class="lead">{{ site.data.locales[lang].not_found.statment }}</p>
@@ -0,0 +1,6 @@
1
+ ---
2
+ ---
3
+
4
+ @import 'main';
5
+
6
+ /* append your custom style below */
data/assets/feed.xml CHANGED
@@ -15,7 +15,7 @@ permalink: /feed.xml
15
15
  <uri>{{ "/" | absolute_url }}</uri>
16
16
  </author>
17
17
  <link rel="self" type="application/atom+xml" href="{{ page.url | absolute_url }}"/>
18
- <link rel="alternate" type="text/html" hreflang="{{ site.lang }}"
18
+ <link rel="alternate" type="text/html" hreflang="{{ site.alt_lang | default: site.lang }}"
19
19
  href="{{ '/' | absolute_url }}"/>
20
20
  <generator uri="https://jekyllrb.com/" version="{{ jekyll.version }}">Jekyll</generator>
21
21
  <rights> © {{ 'now' | date: '%Y' }} {{ site.social.name }} </rights>
@@ -26,7 +26,7 @@ permalink: /feed.xml
26
26
  {% assign post_absolute_url = post.url | absolute_url %}
27
27
  <entry>
28
28
  <title>{{ post.title }}</title>
29
- <link href="{{ post_absolute_url }}" rel="alternate" type="text/html" title="{{ post.title }}" />
29
+ <link href="{{ post_absolute_url }}" rel="alternate" type="text/html" title="{{ post.title | xml_escape }}" />
30
30
  <published>{{ post.date | date_to_xmlschema }}</published>
31
31
  {% if post.last_modified_at %}
32
32
  <updated>{{ post.last_modified_at | date_to_xmlschema }}</updated>
@@ -1,17 +1,20 @@
1
1
  ---
2
2
  layout: compress
3
+ swcache: true
3
4
  ---
4
5
 
5
6
  [
6
7
  {% for post in site.posts %}
7
8
  {
8
- "title": "{{ post.title | escape }}",
9
- "url": "{{ post.url | relative_url }}",
10
- "categories": "{{ post.categories | join: ', '}}",
11
- "tags": "{{ post.tags | join: ', ' }}",
9
+ "title": {{ post.title | jsonify }},
10
+ "url": {{ post.url | relative_url | jsonify }},
11
+ "categories": {{ post.categories | join: ', ' | jsonify }},
12
+ "tags": {{ post.tags | join: ', ' | jsonify }},
12
13
  "date": "{{ post.date }}",
13
14
  {% include no-linenos.html content=post.content %}
14
- "snippet": "{{ content | strip_html | strip_newlines | remove_chars | escape | replace: '\', '\\\\' }}"
15
+ {% assign _content = content | strip_html | strip_newlines %}
16
+ "snippet": {{ _content | truncate: 200 | jsonify }},
17
+ "content": {{ _content | jsonify }}
15
18
  }{% unless forloop.last %},{% endunless %}
16
19
  {% endfor %}
17
20
  ]