chulapa-jekyll 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +45 -9
  3. data/README.md +139 -81
  4. data/_data/welcomments/01_install/01H35P308R2G2YMW849CK7V1VP.json +9 -0
  5. data/_data/welcomments/02_config/01GMBNMYVQS6NCQ45S7KP1TK80.json +10 -0
  6. data/_data/welcomments/02_config/01GMBNP7RB0CBQNKKXKWG5CHJN.json +10 -0
  7. data/_data/welcomments/02_config/01GMBNX1CNV06WN12XR72CNN8D.json +11 -0
  8. data/_data/welcomments/02_config/01GME95BGP5HDQWAWFXT49FDB5.json +10 -0
  9. data/_data/welcomments/02_config/01GME9BZ4N0K0RT3WEPM397VP1.json +10 -0
  10. data/_data/welcomments/02_config/01HAH50GMY2SEESXQNR9D3V44R.json +9 -0
  11. data/_data/welcomments/welcome/01GMDMF77D4VZ7VQX9JAK0RMT5.json +10 -0
  12. data/_data/welcomments/welcome/01H1QVV3C210ND4XY30H0BZHQP.json +9 -0
  13. data/_includes/components/author.html +12 -7
  14. data/_includes/components/breadcrumbdatesocial.html +20 -12
  15. data/_includes/components/cactus.html +18 -0
  16. data/_includes/components/categories.html +1 -1
  17. data/_includes/components/cusdis.html +18 -0
  18. data/_includes/components/disqus.html +1 -1
  19. data/_includes/components/headers.html +10 -10
  20. data/_includes/components/indexcards.html +1 -1
  21. data/_includes/components/navbeforeafter.html +23 -4
  22. data/_includes/components/related.html +72 -0
  23. data/_includes/components/sidetoc.html +15 -0
  24. data/_includes/components/tags.html +1 -1
  25. data/_includes/components/toc.html +120 -50
  26. data/_includes/components/welcomments.html +10 -0
  27. data/_includes/footer.html +27 -9
  28. data/_includes/head.html +39 -30
  29. data/_includes/navbar.html +4 -4
  30. data/_includes/snippets/bootstrapdemo.html +3 -0
  31. data/_includes/snippets/carousel.html +3 -3
  32. data/_includes/snippets/masonry.html +3 -1
  33. data/_includes/snippets/video.html +20 -10
  34. data/_includes/snippets/youtube.html +10 -1
  35. data/_includes/welcomments/comment_form.html +26 -0
  36. data/_includes/welcomments/comments.html +109 -0
  37. data/_includes/welcomments/single_comment.html +57 -0
  38. data/_includes/welcomments/template.html +46 -0
  39. data/_layouts/cloudcategory.html +4 -4
  40. data/_layouts/compress.html +2 -2
  41. data/_layouts/default.html +17 -3
  42. data/_layouts/landingpage.html +21 -3
  43. data/_layouts/minimal.html +5 -6
  44. data/_layouts/search.html +8 -7
  45. data/_sass/chulapa/_classes.scss +1270 -0
  46. data/_sass/{chulapa-misc.scss → chulapa/_reboot.scss} +24 -4
  47. data/_sass/{chulapa-vars.scss → chulapa/_variables.scss} +25 -5
  48. data/_sass/chulapa-master.scss +5 -5
  49. data/_sass/highlight/monokai.scss +1 -1
  50. data/_sass/reset-algolia.scss +1 -1
  51. data/_sass/skins/academia.scss +23 -17
  52. data/_sass/skins/auto.scss +2 -1
  53. data/_sass/skins/chulapa.scss +14 -12
  54. data/_sass/skins/dark-bg.scss +62 -0
  55. data/_sass/skins/deeply.scss +4 -3
  56. data/_sass/skins/gitdev-dark.scss +97 -0
  57. data/_sass/skins/gitdev.scss +86 -0
  58. data/_sass/skins/graymor.scss +17 -18
  59. data/_sass/skins/hootstrap.scss +12 -12
  60. data/_sass/skins/journal.scss +6 -5
  61. data/_sass/skins/lux.scss +9 -10
  62. data/_sass/skins/lymcha.scss +10 -10
  63. data/_sass/skins/minty.scss +14 -11
  64. data/_sass/skins/pear.scss +18 -18
  65. data/_sass/skins/preptor.scss +13 -14
  66. data/_sass/skins/sketchy.scss +5 -4
  67. data/_sass/skins/sunset.scss +10 -10
  68. data/_sass/skins/towards.scss +50 -0
  69. data/_sass/skins/twitter-dim.scss +38 -28
  70. data/_sass/skins/twitter-lights-out.scss +38 -30
  71. data/_sass/skins/twitter.scss +25 -25
  72. data/_sass/skins/universal.scss +79 -21
  73. data/_sass/skins/wandoo.scss +12 -13
  74. data/assets/css/main.scss +1 -1
  75. data/assets/css/welcomments.scss +572 -0
  76. data/assets/fonts/Hubot-Sans/Hubot-Sans.woff2 +0 -0
  77. data/assets/fonts/Hubot-Sans/LICENSE.txt +93 -0
  78. data/assets/fonts/Mona-Sans/LICENSE.txt +93 -0
  79. data/assets/fonts/Mona-Sans/Mona-Sans.woff2 +0 -0
  80. data/assets/js/ch_ytdefer/ch_ytdefer.js +3 -1
  81. data/assets/js/chulapa_script.js +175 -0
  82. data/assets/js/clipboard/chulapa_clipboard.js +109 -0
  83. data/assets/js/cusdis/chulapa_cusdis.js +1 -0
  84. data/assets/js/google/google-search.js +0 -1
  85. metadata +37 -63
  86. data/_sass/chulapa-classes.scss +0 -844
  87. data/assets/fonts/Chulapa/Chulapa-Bold.otf +0 -0
  88. data/assets/fonts/Chulapa/Chulapa-Bold_v2.1.otf +0 -0
  89. data/assets/fonts/Chulapa/Chulapa-Bold_v2.2.otf +0 -0
  90. data/assets/fonts/Chulapa/Chulapa-Bold_v2.otf +0 -0
  91. data/assets/fonts/Chulapa/Chulapa-Light.otf +0 -0
  92. data/assets/fonts/Chulapa/Chulapa-Regular.otf +0 -0
  93. data/assets/js/ch_ytdefer/ch_ytdefer.min.js +0 -1
  94. data/assets/js/clipboardrouge.js +0 -95
  95. /data/_sass/{bootstrapv5-migration.scss → chulapa/_bootstrapv5.scss} +0 -0
  96. /data/_sass/{chulapa-mixins.scss → chulapa/_mixins.scss} +0 -0
data/_includes/head.html CHANGED
@@ -1,6 +1,6 @@
1
1
  <head>
2
2
  <meta charset="utf-8">
3
- <!-- Chulapa Jekyll Theme - v1.0.0 -->
3
+ <!-- Chulapa Jekyll Theme - v1.1.0 -->
4
4
  <!-- MIT License-->
5
5
  <!-- Docs: https://dieghernan.github.io/chulapa -->
6
6
  <!-- Repo: https://github.com/dieghernan/chulapa -->
@@ -209,55 +209,61 @@ where_exp: "item", "item.url contains 'http'"
209
209
  <title>{{ metatitle | strip_html }}</title>
210
210
  <link rel="canonical" href="{{ canonical_url }}">
211
211
  <!-- Atom feed -->
212
- <link href="{{ './atom.xml' | absolute_url }}" type="application/atom+xml" rel="alternate" title="Atom feed {{ site.title }}" />
212
+ <link href="{{ './atom.xml' | absolute_url }}" type="application/atom+xml" rel="alternate" title="Atom feed {{ site.title }}" >
213
213
  <!-- RSS 2.0 feed -->
214
- <link href="{{ './rss.xml' | absolute_url }}" type="application/rss+xml" rel="alternate" title="RSS 2.0 feed {{ site.title }}" />
214
+ <link href="{{ './rss.xml' | absolute_url }}" type="application/rss+xml" rel="alternate" title="RSS 2.0 feed {{ site.title }}" >
215
215
  <!-- Meta tags -->
216
216
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
217
- <meta name="author" content="{{ page.author.name | default: site.author.name | default: site.github.owner_name }}" />
218
- <meta name="copyright" content="{{ site.author.name | default: site.github.owner_name }}" />
219
- <meta name="description" content="{{- ogdesc | truncate: 160 -}}"/>
220
- <meta name="thumbnail" content="{{ ogimage }}" />
217
+ <meta name="author" content="{{ page.author.name | default: site.author.name | default: site.github.owner_name }}" >
218
+ <meta name="copyright" content="{{ site.author.name | default: site.github.owner_name }}" >
219
+ <meta name="description" content="{{- ogdesc | truncate: 160 -}}">
220
+ <meta name="thumbnail" content="{{ ogimage }}" >
221
221
  <meta name="robots" content="index, follow">
222
222
  {%- assign: keyword = site.github.public_repositories |
223
223
  where_exp:"item", "item.name == site.github.repository_name " |
224
224
  map: "topics" -%}
225
225
  {% if keyword -%}
226
- <meta name="keywords" content="{{- keyword - | join: ','}}"/>
226
+ <meta name="keywords" content="{{- keyword - | join: ','}}">
227
227
  {%- endif %}
228
228
  {% if site.chulapa-skin.vars.primary -%}
229
229
  <!-- Chrome, Firefox OS and Opera -->
230
230
  <meta name="theme-color" content="{{ site.chulapa-skin.vars.primary }}">
231
231
  {%- endif %}
232
232
  <!-- OpenGraph -->
233
- <meta property="og:title" content="{{ metatitle | strip_html }}" />
234
- <meta property="og:site_name" content="{{ sitename | strip_html }}" />
235
- <meta property="og:url" content="{{ canonical_url }}" />
236
- <meta property="og:type" content="website" />
237
- <meta property="og:description" content="{{ ogdesc | truncatewords: 20 }}" />
238
- <meta property="og:locale" content="{{- site.locale | default: 'en-US' -}}" />
239
- <meta property="og:image" content="{{- ogimage -}}" />
233
+ <meta property="og:title" content="{{ metatitle | strip_html }}" >
234
+ <meta property="og:site_name" content="{{ sitename | strip_html }}" >
235
+ <meta property="og:url" content="{{ canonical_url }}" >
236
+ <meta property="og:type" content="website" >
237
+ <meta property="og:description" content="{{ ogdesc | truncatewords: 20 }}" >
238
+ <meta property="og:locale" content="{{- site.locale | default: 'en-US' -}}" >
239
+ <meta property="og:image" content="{{- ogimage -}}" >
240
240
  <!-- Twitter Cards -->
241
241
  <meta name="twitter:card" content="summary_large_image">
242
242
  {%- if site.twitter_site %}
243
- <meta name="twitter:site" content="@{{- site.twitter_site -}}" />
243
+ <meta name="twitter:site" content="@{{- site.twitter_site -}}" >
244
244
  {% endif -%}
245
245
  {%- if twitterauthor %}
246
- <meta name="twitter:creator" content="@{{- twitterauthor -}}" />
246
+ <meta name="twitter:creator" content="@{{- twitterauthor -}}" >
247
247
  {% endif -%}
248
248
 
249
249
  {%- include custom/custom_head_before_css.html -%}
250
250
 
251
251
  <!-- CSS -->
252
+ {% if site.comments.provider == 'cactus' -%}
253
+ <!-- Cactus comments -->
254
+ <script src="https://latest.cactus.chat/cactus.js"></script>
255
+ <link rel="stylesheet" href="https://latest.cactus.chat/style.css" type="text/css">
256
+ {%- endif %}
252
257
  <!-- Preconnect with Google Fonts -->
253
- <link rel="preconnect" href="https://fonts.gstatic.com">
258
+ <link rel="preconnect" href="https://fonts.googleapis.com">
259
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
254
260
  {% for font in site.googlefonts -%}
255
261
  {% if font.url -%}
256
262
  <link href="{{ font.url }}" rel="stylesheet">
257
263
  {%- endif %}
258
264
  {%- endfor %}
259
265
  <!-- Fontawesome-->
260
- <!-- v5.13 -->
266
+ <!-- v6 -->
261
267
  {% assign fakit = site.fa5_kit_code | default: fa_kit_code %}
262
268
  {% if fakit -%}
263
269
  <script src="https://kit.fontawesome.com/{{ fakit }}.js" crossorigin="anonymous"></script>
@@ -266,21 +272,24 @@ where_exp: "item", "item.url contains 'http'"
266
272
  {%- endif %}
267
273
  {% if site.fa_v4_support -%}
268
274
  <!-- Compatibility with FontAwesome 4 -->
269
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5/css/v4-shims.css">
275
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5/css/v4-shims.min.css">
270
276
  {%- endif %}
277
+ {%- if page.show_applause %}
278
+ <link rel="stylesheet" href="https://unpkg.com/applause-button/dist/applause-button.css">
279
+ <script src="https://unpkg.com/applause-button/dist/applause-button.js"></script>
280
+ {% endif -%}
281
+ <link rel="preload" href="https://cdn.jsdelivr.net/gh/dieghernan/chulapa@master/assets/js/chulapa_script.js" as="script" >
282
+ <link rel="preload" href="https://cdn.jsdelivr.net/gh/dieghernan/chulapa@master/assets/fonts/Chulapa/Chulapa-Bold_vmod.otf" as="font" type="font/otf" crossorigin>
271
283
  <!-- Theme css (Bootstrap included) -->
272
- <link rel="stylesheet" href="{{- "assets/css/main.css " | absolute_url -}}" />
284
+ <link rel="stylesheet" id="maincss" href="{{- "assets/css/main.css " | absolute_url -}}" >
273
285
  <!-- Highlighter -->
274
- <link id="csshigh" rel="stylesheet" href="{{- "assets/css/highlighter.css " | absolute_url -}}" />
286
+ <link id="csshigh" rel="stylesheet" href="{{- "assets/css/highlighter.css " | absolute_url -}}" >
275
287
  <!-- Custom css -->
276
- <link rel="stylesheet" href="{{- "assets/css/custom.css " | absolute_url -}}" />
277
- <!-- Chulape Deferred (lazy) loading of YouTube videos, to improve page speed -->
278
- <script src="{{- "assets/js/ch_ytdefer/ch_ytdefer.min.js" | absolute_url -}}"></script>
279
- {% if page.mathjax -%}
280
- <script async
281
- src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML">
282
- </script>
283
- {%- endif %}
288
+ <link rel="stylesheet" href="{{- "assets/css/custom.css " | absolute_url -}}" >
289
+ {% if page.mathjax -%}
290
+ <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.min.js"></script>
291
+ {%- endif %}
292
+
284
293
  {%- if site.gtag_id %}
285
294
  <!-- Global site tag (gtag.js) - Google Analytics -->
286
295
  <script async src="https://www.googletagmanager.com/gtag/js?id={{- site.gtag_id -}}"></script>
@@ -18,7 +18,7 @@
18
18
  <span class="navbar-toggler-icon m-auto">&nbsp;</span>
19
19
  </label>
20
20
  <div class="navbar-chulapa-fab-background">&nbsp;</div>
21
- <nav class="navbar-chulapa-fab-nav">
21
+ <nav class="navbar-chulapa-fab-nav" aria-label="primary-navigation">
22
22
  <ul class="navbar-nav text-center text-uppercase font-weight-light mt-0 mb-1 py-1">
23
23
  <li class="nav-item">
24
24
  <a class="nav-link px-3 navbar-brand mx-1 " href="{{ site.navbar.brand.url | default: "" | absolute_url }}">
@@ -67,7 +67,7 @@
67
67
  <span class="navbar-toggler-icon m-auto">&nbsp;</span>
68
68
  </label>
69
69
  <div class="navbar-chulapa-fab-background">&nbsp;</div>
70
- <nav class="navbar-chulapa-fab-nav">
70
+ <nav class="navbar-chulapa-fab-nav" aria-label="alternative-navigation">
71
71
  <ul class="navbar-nav text-center text-uppercase font-weight-light mt-0 mb-1 py-1">
72
72
  <li class="nav-item">
73
73
  <a class="nav-link px-3 navbar-brand mx-1 " href="{{ site.navbar.brand.url | default: "" | absolute_url }}">
@@ -110,7 +110,7 @@
110
110
  </nav>
111
111
  </div>
112
112
 
113
- <nav class="navbar navbar-expand sticky-top navbar-chulapa d-none d-{{- disp -}}-block ">
113
+ <nav class="navbar navbar-expand sticky-top navbar-chulapa d-none d-{{- disp -}}-block " aria-label="primary-navigation">
114
114
  <div class="container-fluid mx-md-2">
115
115
  <a class="navbar-brand text-uppercase font-weight-light" href="{{ site.navbar.brand.url | default: "/" | absolute_url }}">
116
116
  {%- if site.navbar.brand.img -%}
@@ -155,7 +155,7 @@
155
155
 
156
156
 
157
157
  {%- else -%}
158
- <nav class="navbar {{ navexp }} sticky-top navbar-chulapa">
158
+ <nav class="navbar {{ navexp }} sticky-top navbar-chulapa" aria-label="primary-navigation">
159
159
  <div class="container-fluid mx-md-2">
160
160
  <a class="navbar-brand font-weight-bold" href="{{ site.navbar.brand.url | default: "/" | absolute_url }}">
161
161
  {%- if site.navbar.brand.img -%}
@@ -1388,3 +1388,6 @@
1388
1388
  </div>
1389
1389
  </div>
1390
1390
  </div>
1391
+
1392
+ <h2 id="chulapa-comp"><span class="chulapa">Chulapa</span> components</h2>
1393
+
@@ -39,11 +39,11 @@
39
39
  <div class="carousel-inner">
40
40
  {%- for brick in bricks limit: end -%}
41
41
  {% if forloop.first == true %}
42
- <div class="carousel-item active">
42
+ <div class="carousel-item active" itemscope itemtype="https://schema.org/ImageObject">
43
43
  {% else %}
44
- <div class="carousel-item">
44
+ <div class="carousel-item" itemscope itemtype="https://schema.org/ImageObject">
45
45
  {% endif %}
46
- <img class="d-block mw-100 chulapa-carousel" src="{{- brick | absolute_url -}}" alt="Carousel Item #{{- forloop.index -}}">
46
+ <img class="d-block mw-100 chulapa-carousel" src="{{- brick | absolute_url -}}" alt="Carousel Item #{{- forloop.index -}}" itemprop="contentUrl" >
47
47
  </div>
48
48
  {%- endfor -%}
49
49
  </div>
@@ -16,8 +16,10 @@
16
16
  {%- endif -%}
17
17
  <div class="chulapa-masonry mx-2 mt-2">
18
18
  {%- for brick in bricks limit: end -%}
19
+ <div itemscope itemtype="https://schema.org/ImageObject">
19
20
  <img loading="lazy" class="chulapa-masonry-brick" src="{{- brick | absolute_url -}}"
20
- alt="Masonry Item #{{- forloop.index -}}">
21
+ alt="Masonry Item #{{- forloop.index -}}" itemprop="contentUrl" >
22
+ </div>
21
23
  {%- endfor -%}
22
24
  </div>
23
25
  {%- endif -%}
@@ -1,25 +1,35 @@
1
1
  {%- if include.fileurl -%}
2
- <div class="embed-responsive embed-responsive-16by9 my-2 chulapa-rounded-lg">
3
- <video src="{{ include.fileurl | absolute_url }}#t=0.1" class="embed-responsive-item" controls>
2
+ <div class="embed-responsive embed-responsive-16by9 my-2 chulapa-rounded-lg" itemscope itemprop="VideoObject" itemtype="https://schema.org/VideoObject">
3
+ <video src="{{ include.fileurl | absolute_url }}#t=0.1" class="embed-responsive-item u-video" controls itemprop="contentUrl" >
4
4
  Your browser does not support the video tag.
5
5
  </video>
6
6
  </div>
7
- {%- else -%}
7
+ {%- elsif include.provider == "youtube" -%}
8
+ {%- if include.nolazy -%}
9
+ <!-- Thanks to Minimal Mistakes -->
10
+ <!-- https://embedresponsively.com/ -->
11
+ <div class="embed-responsive embed-responsive-16by9 my-2 chulapa-rounded-lg" itemscope itemprop="VideoObject" itemtype="https://schema.org/VideoObject">
12
+ <iframe loading="lazy" title="Video from YouTube" class="embed-responsive-item" src="https://www.youtube-nocookie.com/embed/{{ include.id }}" allowfullscreen itemprop="embedUrl"></iframe>
13
+
14
+ </div>
15
+ {%- else -%}
16
+ {% include snippets/youtube.html id=include.id video_res = include.video_res %}
17
+ {%- endif %}
18
+
19
+ {%- else -%
8
20
  {% assign video_id = include.id %}
9
21
  {% assign video_provider = include.provider %}
10
22
  <!-- Thanks to Minimal Mistakes -->
11
23
  <!-- https://embedresponsively.com/ -->
12
- <div class="embed-responsive embed-responsive-16by9 my-2 chulapa-rounded-lg">
24
+ <div class="embed-responsive embed-responsive-16by9 my-2 chulapa-rounded-lg" itemscope itemprop="VideoObject" itemtype="https://schema.org/VideoObject">
13
25
  {%- if video_provider == "vimeo" -%}
14
- <iframe loading="lazy" class="embed-responsive-item" src="https://player.vimeo.com/video/{{ video_id }}?dnt=true" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
15
- {%- elsif video_provider == "youtube" -%}
16
- <iframe loading="lazy" class="embed-responsive-item" src="https://www.youtube-nocookie.com/embed/{{ video_id }}" allowfullscreen></iframe>
26
+ <iframe loading="lazy" title="Video from {{ video_provider }}" class="embed-responsive-item" src="https://player.vimeo.com/video/{{ video_id }}?dnt=true" webkitAllowFullScreen mozallowfullscreen allowFullScreen itemprop="embedUrl"></iframe>
17
27
  {%- elsif video_provider == "google-drive" -%}
18
- <iframe loading="lazy" class="embed-responsive-item" src="https://drive.google.com/file/d/{{ video_id }}/preview" allowfullscreen></iframe>
28
+ <iframe loading="lazy" title="Video from {{ video_provider }}" class="embed-responsive-item" src="https://drive.google.com/file/d/{{ video_id }}/preview" allowfullscreen itemprop="embedUrl"></iframe>
19
29
  {%- elsif video_provider == "bilibili" -%}
20
- <iframe loading="lazy" class="embed-responsive-item" src="https://player.bilibili.com/player.html?bvid={{ video_id }}&page=1&as_wide=1&high_quality=1&danmaku=0" scrolling="no" border="0" framespacing="0" allowfullscreen="true"></iframe>
30
+ <iframe loading="lazy" title="Video from {{ video_provider }}" class="embed-responsive-item" src="https://player.bilibili.com/player.html?bvid={{ video_id }}&page=1&as_wide=1&high_quality=1&danmaku=0" scrolling="no" border="0" framespacing="0" allowfullscreen="true" itemprop="embedUrl"></iframe>
21
31
  {%- elsif video_provider == "dailymotion" -%}
22
- <iframe loading="lazy" class="embed-responsive-item" src="https://www.dailymotion.com/embed/video/{{ video_id }}" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
32
+ <iframe loading="lazy" title="Video from {{ video_provider }}" class="embed-responsive-item" src="https://www.dailymotion.com/embed/video/{{ video_id }}" webkitAllowFullScreen mozallowfullscreen allowFullScreen itemprop="embedUrl"></iframe>
23
33
 
24
34
  {% endif %}
25
35
  </div>
@@ -1,6 +1,15 @@
1
1
  {% assign video_id = include.id %}
2
+ {% assign video_res = include.video_res | default: "maxresdefault" %}
2
3
  <!-- Thanks to alfurka,groupboard -->
3
4
  <!-- Based on https://github.com/alfurka/jekyll-embed-youtube-lazy-load -->
4
- <div data-src="{{ video_id }}" class="ch_ytdefer embed-responsive embed-responsive-16by9 my-2 chulapa-rounded-lg" style="background-image: url(https://img.youtube.com/vi/{{ video_id }}/maxresdefault.jpg); background-position: center; background-size: cover;">
5
+ <div itemscope itemprop="VideoObject" itemtype="https://schema.org/VideoObject">
6
+ <div data-src="{{ video_id }}" class="ch_ytdefer embed-responsive embed-responsive-16by9 my-2 chulapa-rounded-lg" style="background-image: url(https://img.youtube.com/vi/{{ video_id }}/{{ video_res }}.jpg); background-position: center; background-size: cover;" itemprop="thumbnailUrl" content="https://img.youtube.com/vi/{{ video_id }}/{{ video_res }}.jpg">
7
+ <div class="d-none" itemprop="embedUrl" content="https://www.youtube-nocookie.com/embed/{{ video_id }}"></div>
5
8
  <button class="ch_ytdefer_btn" aria-label="Play" style="background-image: url(&quot;data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjEwMCUiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmlld0JveD0iMCAwIDY4IDQ4IiB3aWR0aD0iMTAwJSI+PHBhdGggY2xhc3M9Inl0cC1sYXJnZS1wbGF5LWJ1dHRvbi1iZyIgZD0iTTY2LjUyLDcuNzRjLTAuNzgtMi45My0yLjQ5LTUuNDEtNS40Mi02LjE5QzU1Ljc5LC4xMywzNCwwLDM0LDBTMTIuMjEsLjEzLDYuOSwxLjU1IEMzLjk3LDIuMzMsMi4yNyw0LjgxLDEuNDgsNy43NEMwLjA2LDEzLjA1LDAsMjQsMCwyNHMwLjA2LDEwLjk1LDEuNDgsMTYuMjZjMC43OCwyLjkzLDIuNDksNS40MSw1LjQyLDYuMTkgQzEyLjIxLDQ3Ljg3LDM0LDQ4LDM0LDQ4czIxLjc5LTAuMTMsMjcuMS0xLjU1YzIuOTMtMC43OCw0LjY0LTMuMjYsNS40Mi02LjE5QzY3Ljk0LDM0Ljk1LDY4LDI0LDY4LDI0UzY3Ljk0LDEzLjA1LDY2LjUyLDcuNzR6IiBmaWxsPSIjMjEyMTIxIiBmaWxsLW9wYWNpdHk9IjAuOCI+PC9wYXRoPjxwYXRoIGQ9Ik0gNDUsMjQgMjcsMTQgMjcsMzQiIGZpbGw9IiNmZmYiPjwvcGF0aD48L3N2Zz4=&quot;); position: absolute; border: 0px; background-color: transparent; left: calc(50% - 73px/2); top: calc(50% - 52px/2); width: 73px; height: 52px; pointer-events: none;"></button>
6
9
  </div>
10
+ </div>
11
+ <!-- Load script only if needed -->
12
+ <script>
13
+ if(null==(ch_defer_script=document.getElementById("ch_ytdeferScript"))){var e=document,t=e.createElement("script");t.src="https://cdn.jsdelivr.net/gh/dieghernan/chulapa@master/assets/js/ch_ytdefer/ch_ytdefer.min.js",t.id="ch_ytdeferScript",e.body.appendChild(t)}else console.log("Chulapa YouTube Defer already loaded");
14
+ </script>
15
+
@@ -0,0 +1,26 @@
1
+ <form id="welcomments__form" class="welcomments__comment-form" autocomplete="on" action="{{ include.api_url }}/comments" method="post">
2
+ <input type="hidden" name="website-id" id="website-id" value="{{ include.website_id }}" >
3
+ <input type="hidden" name="replying-to" id="replying-to" >
4
+ <input type="hidden" name="permalink" id="permalink" value="{{ site.url }}{{ page.url }}" >
5
+ <input type="hidden" name="page-slug" id="page-slug" value="{{ page.slug }}"/>
6
+ <div class="welcomments__form-group">
7
+ <textarea rows="5" name="message" id="message" required spellcheck="true" placeholder="Type here..."></textarea>
8
+ <p class="welcomments__markdown-notice"><a href="https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet" target="_blank">GitHub-flavored Markdown</a> & a sane subset of HTML is supported.</p>
9
+ </div>
10
+ <div class="welcomments__form-group">
11
+ <label for="author-name">Name</label>
12
+ <input type="text" id="author-name" name="author-name" required spellcheck="false" placeholder="Your name">
13
+ </div>
14
+ <div class="welcomments__form-group welcomments__flex">
15
+ <div class="welcomments__column-left">
16
+ <label for="author-url">Website <span class="welcomments__optional-notice">(optional)</span></label>
17
+ <input type="url" id="author-url" name="author-url" placeholder="https://example.com" >
18
+ </div>
19
+ <div class="welcomments__column-right">
20
+ <label for="author-email">Email <span class="welcomments__optional-notice">(optional)</span></label>
21
+ <input type="email" id="author-email" name="author-email" placeholder="johndoe@example.com" >
22
+ </div>
23
+ </div>
24
+ <p class="welcomments__email-notice">Fill in your email address if you want to get notified when someone replies to your comment. Your email address is safely stored with strong 256-bit AES encryption. You can unsubscribe from notification emails any time by following a link on the bottom of a reply notification email. Check also your spam folder</p>
25
+ <button type="submit" class="welcomments__submit-button" id="welcomments__submit-button">Send comment</button>
26
+ </form>
@@ -0,0 +1,109 @@
1
+ {%- if include.api_url -%}
2
+ {%- assign api_url = include.api_url -%}
3
+ {%- else -%}
4
+ {%- assign api_url = "https://welcomments.io/api" -%}
5
+ {%- endif -%}
6
+
7
+ {%- if include.website_id == "YOUR-WEBSITE-ID-HERE" -%}
8
+ <div style="color: #ff0000;">
9
+ <h1>Website id not configured!</h1>
10
+ <p>Please replace <code>YOUR-WEBSITE-ID-HERE</code> with the website id from Welcomments console.</p>
11
+ </div>
12
+ {%- endif -%}
13
+
14
+ <div id="welcomments__container" class="welcomments__container">
15
+ {%- assign article_url = page.slug -%}
16
+
17
+ {%- if article_url != "" -%}
18
+ {%- assign all_comments = site.data.welcomments[article_url] -%}
19
+ {%- else -%}
20
+ {%- assign all_comments = site.data.welcomments["___root___"] -%}
21
+ {%- endif -%}
22
+
23
+ {%- if all_comments.size > 0 -%}
24
+ <h3 id="welcomments__comment-count-title" class="welcomments__comments-title">{{ all_comments.size }} comment{%- if all_comments.size > 1 -%}s{%- endif -%}</h3>
25
+ {%- else -%}
26
+ <h3 id="welcomments__comment-count-title" class="welcomments__comments-title">No comments yet!</h3>
27
+ {%- endif -%}
28
+
29
+ <section id="welcomments__comment-container" class="welcomments__comment-container">
30
+ {%- if all_comments.size > 0 -%}
31
+ {%- assign parent_comments = all_comments | where_exp: "c", "c.replying_to == nil" | sort: 'id' -%}
32
+
33
+ {%- for comment_map in parent_comments -%}
34
+ {%- assign comment = comment_map -%}
35
+ {%- include welcomments/single_comment.html
36
+ nesting_level = 0
37
+ all_comments = all_comments
38
+ comment = comment
39
+ api_url = api_url
40
+ website_id = include.website_id -%}
41
+ {%- endfor -%}
42
+ {%- endif -%}
43
+ </section>
44
+
45
+ {%- include welcomments/comment_form.html
46
+ api_url = api_url
47
+ website_id = include.website_id -%}
48
+ </div>
49
+
50
+ <!--
51
+ Contains some basic comment section styling, so that you can get started quickly
52
+ without having to come up with your own CSS if you don't want to.
53
+ -->
54
+ <link rel="stylesheet" href="{{'/assets/css/welcomments.css' | absolute_url }}" />
55
+
56
+ <!--
57
+ Includes the optional Welcomments Javascript file. It enhances the user experience
58
+ by sending the comment form fields without the user having to leave your site.
59
+
60
+ It also saves the comment to the local storage while your site is being rebuilt so
61
+ that your users don't get confused and resubmit the same comment multiple times. If
62
+ there are comments that other users posted that haven't been rebuilt as a part of your
63
+ site yet, this script also "fills in" them from the Welcomments Pending Comments API.
64
+
65
+ It's gzipped and weighs just about 2.1kB. If you want, you can just delete this line
66
+ and your comment form works just fine but is a bit less interactive! :-)
67
+ -->
68
+ <script defer id="welcomments__script" src="https://cdn.welcomments.io/welcomments.js" ></script>
69
+ <script type="text/javascript">
70
+ welcomments = {
71
+ apiUrl: "{{ api_url }}",
72
+
73
+ // Updates the "x comments" title when there are comments that are dynamically loaded.
74
+ // By default, the result of this function becomes the innerText of an element with the
75
+ // id "welcomments__comment-count-title". It's okay if that element doesn't exist.
76
+ commentCountTitleFactory: function (commentCount) {
77
+ if (commentCount === 0) {
78
+ return "No comments yet!";
79
+ }
80
+
81
+ return commentCount === 1 ? "One comment" : `${commentCount} comments`;
82
+ },
83
+
84
+ // Builds comments dynamically when they are not part of the static HTML of the rest of
85
+ // your Jekyll website yet. Should return the desired HTML as a string. By default, appends
86
+ // the resulting HTML as a child element into the correct position in an element with the
87
+ // id "welcomments__comment-container".
88
+ placeholderCommentFactory: function (comment) {
89
+ var year = new Intl.DateTimeFormat("en", {year: "numeric"}).format(comment.date);
90
+ var month = new Intl.DateTimeFormat("en", {month: "long"}).format(comment.date);
91
+ var day = new Intl.DateTimeFormat("en", {day: "2-digit"}).format(comment.date);
92
+ var avatarUrl = comment.author.avatar_url ||
93
+ `https://eu.ui-avatars.com/api/?background=random&name=${comment.author.name}`
94
+
95
+ return `{%- include welcomments/template.html
96
+ id = "${comment.id}"
97
+ element_id = "welcomments__comment-${comment.id}"
98
+ element_classname = "welcomments__comment"
99
+ nesting_level = "0"
100
+ formatted_date = "${month} ${day}, ${year}"
101
+ author_name = "${comment.author.name}"
102
+ author_website = "${comment.author.website}"
103
+ author_avatar_url = "${avatarUrl}"
104
+ message = "${comment.message}"
105
+ api_url = api_url
106
+ website_id = include.website_id -%}`;
107
+ },
108
+ };
109
+ </script>
@@ -0,0 +1,57 @@
1
+ {%- assign nesting_level = include.nesting_level -%}
2
+ {%- assign all_comments = include.all_comments -%}
3
+ {%- assign comment = include.comment -%}
4
+
5
+ {%- assign nesting_level_class = "" -%}
6
+ {%- if nesting_level > 0 -%}
7
+ {% capture nesting_level_class %} welcomments__nesting-level-{{ nesting_level }}{% endcapture %}
8
+ {%- endif -%}
9
+
10
+ {%- assign author_highlight = "" -%}
11
+ {%- if comment.author.role == "owner" -%}
12
+ {% capture author_highlight %} welcomments__comment-role-owner{% endcapture %}
13
+ {%- endif -%}
14
+
15
+ {%- capture comment_element_id -%}welcomments__comment-{{ comment.id }}{%- endcapture -%}
16
+ {%- capture comment_element_class -%}welcomments__comment{{nesting_level_class}}{{ author_highlight }}{%- endcapture -%}
17
+
18
+ {%- capture formatted_date -%}{{ comment.date | date: '%B %d, %Y' }}{%- endcapture -%}
19
+ {%- capture date_xml_schema -%}{{ comment.date | date_to_xmlschema }}{%- endcapture -%}
20
+ {%- capture comment_message -%}{{ comment.message | markdownify }}{%- endcapture -%}
21
+
22
+ {% if comment.author.avatar_url %}
23
+ {% capture author_avatar_url %}{{ comment.author.avatar_url }}{% endcapture %}
24
+ {% else %}
25
+ {% capture author_avatar_url %}https://eu.ui-avatars.com/api/?background=random&name={{ comment.author.name }}{% endcapture %}
26
+ {% endif %}
27
+
28
+ {%- include welcomments/template.html
29
+ id = comment.id
30
+ element_id = comment_element_id
31
+ element_classname = comment_element_class
32
+ nesting_level = nesting_level
33
+ formatted_date = formatted_date
34
+ date_xml_schema = date_xml_schema
35
+ author_name = comment.author.name
36
+ author_website = comment.author.website
37
+ author_avatar_url = author_avatar_url
38
+ message = comment_message
39
+ api_url = include.api_url
40
+ website_id = include.website_id -%}
41
+
42
+ {%- assign parent_id = comment.id -%}
43
+ {%- assign replies = all_comments | where_exp: "c", "c.replying_to == parent_id" -%}
44
+
45
+ {%- if replies.size > 0 -%}
46
+ {%- assign nesting_level = nesting_level | plus:1 -%}
47
+ {%- assign sorted_replies = replies | sort: 'id' -%}
48
+ {%- for reply in sorted_replies -%}
49
+ {%- include
50
+ welcomments/single_comment.html
51
+ nesting_level = nesting_level
52
+ all_comments = all_comments
53
+ comment = reply
54
+ api_url = include.api_url
55
+ website_id = include.website_id -%}
56
+ {%- endfor -%}
57
+ {%- endif -%}
@@ -0,0 +1,46 @@
1
+ {%- assign id = include.id -%}
2
+ {%- assign element_id = include.element_id -%}
3
+ {%- assign element_classname = include.element_classname -%}
4
+ {%- assign nesting_level = include.nesting_level -%}
5
+ {%- assign formatted_date = include.formatted_date -%}
6
+ {%- assign date_xml_schema = include.date_xml_schema -%}
7
+ {%- assign author_name = include.author_name -%}
8
+ {%- assign author_website = include.author_website -%}
9
+ {%- assign avatar_url = include.author_avatar_url -%}
10
+ {%- assign message = include.message -%}
11
+
12
+ <article
13
+ id="{{ element_id }}"
14
+ class="{{ element_classname }}"
15
+ data-comment-id="{{ id }}"
16
+ data-author-name="{{ author_name }}"
17
+ data-nesting-level="{{ nesting_level }}"
18
+ itemprop="comment" itemscope itemtype="https://schema.org/Comment">
19
+ <div class="welcomments__comment-header">
20
+ <div class="welcomments__author-avatar">
21
+ <img class="welcomments__author-avatar-img" src="{{ avatar_url }}" alt="{{ author_name }}">
22
+ </div>
23
+ <div class="welcomments__author-information">
24
+ <div class="welcomments__author-name-and-time">
25
+ <h3 class="welcomments__author-name" itemprop="author" itemscope itemtype="https://schema.org/Person">
26
+ <span itemprop="name">{{ author_name }}</span>
27
+ {%- if author_website -%}
28
+ <a href="{{ author_website }}" class="mx-2" title="{{ author_name }} url"><span class="sr-only">{{ author_name }} url</span><i class="fas fa-link fa-xs" aria-hidden="true"></i></a>
29
+ {%- endif -%}
30
+ </h3>
31
+ <p class="welcomments__comment-time">
32
+ <a href="#welcomments__comment-{{ id }}" itemprop="url">
33
+ <time datetime="{{ date_xml_schema }}" itemprop="datePublished">
34
+ {{- formatted_date -}}
35
+ </time>
36
+ </a>
37
+ </p>
38
+ </div>
39
+ </div>
40
+ </div>
41
+ <div itemprop="text" class="welcomments__comment-message">{{ message }}</div>
42
+ <a class="welcomments__comment-reply-link"
43
+ href="{{ include.api_url }}/websites/{{ include.website_id }}/comments/{{ id }}/reply">
44
+ Reply to {{ author_name }}
45
+ </a>
46
+ </article>
@@ -59,19 +59,19 @@ layout: default
59
59
  {% assign readtime = words | divided_by:words_per_minute | append: "’" %}
60
60
  {% endif %}
61
61
  {% if document.categories contains category.name %}
62
- <article class="chulapa-links-hover-only my-1 mb-4 row g-0">
62
+ <article class="chulapa-links-hover-only my-1 mb-4 row g-0 h-entry">
63
63
  <div class="col">
64
- <h6><a href="{{ document.url | absolute_url }}">{{ document.title }}</a></h6>
64
+ <h6><a href="{{ document.url | absolute_url }}" class="p-name u-url">{{ document.title }}</a></h6>
65
65
  {%- if document.subtitle -%}<p>{{- document.subtitle -}}</p> {%- endif -%}
66
66
  <div class="small">
67
67
  {% if document.date %}
68
68
  {% assign dateformat = document.date | date: "%B %d, %Y" %}
69
- <i class="far fa-calendar" aria-hidden="true"></i> <time datetime="{{- document.date | date_to_xmlschema -}}">{% include_cached snippets/datetranslate.html date=dateformat %}</time>
69
+ <i class="far fa-calendar" aria-hidden="true"></i> <time class="dt-published" datetime="{{- document.date | date_to_xmlschema -}}">{% include_cached snippets/datetranslate.html date=dateformat %}</time>
70
70
  {% if document.last_modified_at %} <i class="fa fa-redo" aria-hidden="true"></i>{% endif %} |
71
71
  {% endif %}
72
72
  <i class="far fa-clock" aria-hidden="true"></i> {{ readtime }}
73
73
  {%- if showcol -%}
74
- <span class="ml-2 badge chulapa-pill-bg-body">{{ document.collection }}</span>
74
+ <span class="ml-2 badge chulapa-pill-bg-body p-category">{{ document.collection }}</span>
75
75
  {%- endif -%}
76
76
  </div>
77
77
  </div>
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  # Jekyll layout that compresses HTML
3
- # v3.0.1
3
+ # v3.1.0
4
4
  # http://jch.penibelst.de/
5
5
  # © 2014–2015 Anatol Broder
6
6
  # MIT License
7
7
  ---
8
8
 
9
9
  {% capture _LINE_FEED %}
10
- {% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd p rt rp optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "<!-- -->" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% assign _lastchar = _pres.last | split: "" | last %}{% assign _outerloop = forloop %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if forloop.last and _lastchar == _LINE_FEED %}{% unless _outerloop.last %}{{ _LINE_FEED }}{% endunless %}{% continue %}{% endif %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "</pre>" %}<pre{{ _pres.first }}</pre>{% endif %}{% unless _pre_before contains "</pre>" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} <table id="compress_html_profile_{{ site.time | date: "%Y%m%d" }}" class="compress_html_profile"> <thead> <tr> <td>Step <td>Bytes <tbody> <tr> <td>raw <td>{{ content | size }}{% if _profile_endings %} <tr> <td>endings <td>{{ _profile_endings }}{% endif %}{% if _profile_startings %} <tr> <td>startings <td>{{ _profile_startings }}{% endif %}{% if _profile_comments %} <tr> <td>comments <td>{{ _profile_comments }}{% endif %}{% if _profile_collapse %} <tr> <td>collapse <td>{{ _profile_collapse }}{% endif %}{% if _profile_clippings %} <tr> <td>clippings <td>{{ _profile_clippings }}{% endif %} </table>{% endif %}{% endif %}
10
+ {% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment or site.compress_html.ignore.envs == "all" %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "<!-- -->" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "</pre>" %}<pre{{ _pres.first }}</pre>{% endif %}{% unless _pre_before contains "</pre>" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} <table id="compress_html_profile_{{ site.time | date: "%Y%m%d" }}" class="compress_html_profile"> <thead> <tr> <td>Step <td>Bytes <tbody> <tr> <td>raw <td>{{ content | size }}{% if _profile_endings %} <tr> <td>endings <td>{{ _profile_endings }}{% endif %}{% if _profile_startings %} <tr> <td>startings <td>{{ _profile_startings }}{% endif %}{% if _profile_comments %} <tr> <td>comments <td>{{ _profile_comments }}{% endif %}{% if _profile_collapse %} <tr> <td>collapse <td>{{ _profile_collapse }}{% endif %}{% if _profile_clippings %} <tr> <td>clippings <td>{{ _profile_clippings }}{% endif %} </table>{% endif %}{% endif %}
@@ -12,13 +12,24 @@ layout: minimal
12
12
  {% include components/author.html %}
13
13
  {%- endif -%}
14
14
  </aside>
15
- <article class="col-lg-8 mt-3">
15
+ <article id="maincontent" class="col-lg-8 mt-3 e-content">
16
+ {% if page.show_sidetoc %}
17
+
18
+ {% include components/sidetoc.html %}
19
+
20
+ {% endif %}
16
21
  {% if page.show_toc %}
17
22
  {% assign h_min = page.h_min | default: 2 %}
18
23
  {% assign h_max = page.h_max | default: 4 %}
19
- {% include components/toc.html sanitize=false html=content h_min=h_min h_max=h_max skipNoIDs=true id="toc" class="chulapa-toc-wrapper.list-group.mb-5.mx-3.mx-lg-5" item_class="list-group-item.font-weight-bold.py-1.pr-0.mr-0.chulapa-toc-reset" %}
24
+ <nav aria-label="table-of-contents">
25
+ {% include components/toc.html sanitize=false html=content h_min=h_min h_max=h_max skip_no_ids=true id="toc" class="chulapa-toc-wrapper.list-group.mb-5.mx-3.mx-lg-5" item_class="list-group-item.font-weight-bold.py-1.pr-0.mr-0.chulapa-toc-reset" %}
26
+ </nav>
20
27
  {% endif %}
21
28
  {{- content -}}
29
+
30
+ {% if page.show_applause %}
31
+ <div class="mb-2 mt-5 text-center"><applause-button id="applause" class="mx-auto" style="width: 40px; height: 40px;" url="{{ page.url | absolute_url }}"></applause-button></div>
32
+ {% endif %}
22
33
  </article>
23
34
  </div>
24
35
  </main>
@@ -36,4 +47,7 @@ layout: minimal
36
47
  {% if size > 0 %}
37
48
  {%- include components/tags.html-%}
38
49
  {% endif %}
39
- {%- endif -%}
50
+ {%- endif -%}
51
+ {%- if page.show_related -%}
52
+ {%- include components/related.html -%}
53
+ {%- endif -%}