j1-template 2023.5.2 → 2023.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (168) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/layouts/content_generator_news_panel_posts.html +11 -9
  3. data/_includes/themes/j1/layouts/content_generator_post.html +8 -6
  4. data/_includes/themes/j1/procedures/global/create_word_cloud.proc +1 -1
  5. data/_includes/themes/j1/procedures/layouts/module_writer.proc +1 -1
  6. data/_includes/themes/j1/procedures/posts/collate_timeline.proc +4 -4
  7. data/_includes/themes/j1/procedures/posts/pager.proc +1 -1
  8. data/_layouts/_home.html +88 -0
  9. data/_layouts/home.html +1 -1
  10. data/assets/data/banner.html +7 -7
  11. data/assets/data/panel.html +37 -25
  12. data/assets/data/quicklinks.html +40 -30
  13. data/assets/data/speak2me.html +219 -0
  14. data/assets/data/translator.html +32 -4
  15. data/assets/themes/j1/adapter/js/speak2me.js +425 -0
  16. data/assets/themes/j1/adapter/js/translator.js +10 -2
  17. data/assets/themes/j1/core/css/icon-fonts/mdib.css +21 -0
  18. data/assets/themes/j1/core/css/icon-fonts/mdib.min.css +1 -1
  19. data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.css +34 -40
  20. data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.min.css +2 -2
  21. data/assets/themes/j1/core/css/themes/unodark/bootstrap.css +77 -57
  22. data/assets/themes/j1/core/css/themes/unodark/bootstrap.min.css +2 -2
  23. data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +176 -42
  24. data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +3 -3
  25. data/assets/themes/j1/core/js/template.js +1658 -0
  26. data/assets/themes/j1/core/js/template.min.js +11 -5
  27. data/assets/themes/j1/core/js/template.min.js.map +1 -1
  28. data/assets/themes/j1/modules/speak2me/LICENSE +21 -0
  29. data/assets/themes/j1/modules/speak2me/js/speak2me.js +947 -0
  30. data/assets/themes/j1/modules/speak2me/js/speak2me.min.js +26 -0
  31. data/assets/themes/j1/modules/translator/js/translator.js +30 -13
  32. data/assets/themes/j1/modules/translator/js/translator.min.js +1 -1
  33. data/lib/j1/version.rb +1 -1
  34. data/lib/starter_web/Gemfile +5 -5
  35. data/lib/starter_web/README.md +5 -5
  36. data/lib/starter_web/_config.yml +12 -44
  37. data/lib/starter_web/_data/blocks/banner.yml +7 -6
  38. data/lib/starter_web/_data/blocks/panel.yml +37 -39
  39. data/lib/starter_web/_data/layouts/home.yml +1 -1
  40. data/lib/starter_web/_data/modules/advertising.yml +10 -88
  41. data/lib/starter_web/_data/modules/buymeacoffee.yml +30 -0
  42. data/lib/starter_web/_data/modules/defaults/advertising.yml +3 -1
  43. data/lib/starter_web/_data/modules/defaults/blog_navigator.yml +97 -164
  44. data/lib/starter_web/_data/modules/defaults/buymeacoffee.yml +30 -0
  45. data/lib/starter_web/_data/modules/defaults/navigator.yml +8 -4
  46. data/lib/starter_web/_data/modules/defaults/speak2me.yml +72 -0
  47. data/lib/starter_web/_data/modules/scroller.yml +1 -1
  48. data/lib/starter_web/_data/modules/speak2me.yml +33 -0
  49. data/lib/starter_web/_data/resources.yml +24 -1
  50. data/lib/starter_web/_data/templates/feed.xml +1 -1
  51. data/lib/starter_web/_includes/google/static/{google_ad_5128488466.html → google_ad__your-slot-id.html} +1 -1
  52. data/lib/starter_web/_plugins/asciidoctor/callout.rb +1 -1
  53. data/lib/starter_web/_plugins/asciidoctor/carousel-block.rb +2 -2
  54. data/lib/starter_web/_plugins/asciidoctor/gallery-block.rb +2 -2
  55. data/lib/starter_web/_plugins/asciidoctor/gist-block.rb +2 -2
  56. data/lib/starter_web/_plugins/asciidoctor/google-ad-block.rb +1 -1
  57. data/lib/starter_web/_plugins/asciidoctor/lightbox-block.rb +2 -7
  58. data/lib/starter_web/_plugins/asciidoctor/masonry-block.rb +2 -3
  59. data/lib/starter_web/_plugins/asciidoctor/masterslider-block.rb +2 -2
  60. data/lib/starter_web/_plugins/asciidoctor/mdib-icon-inline.rb +43 -0
  61. data/lib/starter_web/_plugins/asciidoctor/mdil-icon-inline.rb +1 -1
  62. data/lib/starter_web/_plugins/asciidoctor/range-slider-block.rb +1 -1
  63. data/lib/starter_web/_plugins/asciidoctor/slick-block.rb +2 -2
  64. data/lib/starter_web/_plugins/asciidoctor/textbook-block.rb +1 -1
  65. data/lib/starter_web/_plugins/filter/liquify.rb +22 -22
  66. data/lib/starter_web/_plugins/index/lunr.rb +1 -1
  67. data/lib/starter_web/assets/images/collections/books/biography/a_life_in_questions.jpg +0 -0
  68. data/lib/starter_web/assets/images/collections/books/biography/becoming.jpg +0 -0
  69. data/lib/starter_web/assets/images/collections/books/biography/born_to_run.jpg +0 -0
  70. data/lib/starter_web/assets/images/collections/books/biography/forty_autumns.jpg +0 -0
  71. data/lib/starter_web/assets/images/collections/books/biography/not_dead_yet.jpg +0 -0
  72. data/lib/starter_web/assets/images/collections/books/biography/the_princess_diarist.jpg +0 -0
  73. data/lib/starter_web/assets/images/collections/books/biography/when_breath_becomes_air.jpg +0 -0
  74. data/lib/starter_web/assets/images/collections/books/fantasy/harry-potter-deathly-hallows.jpg +0 -0
  75. data/lib/starter_web/assets/images/collections/books/fantasy/harry-potter-philosophers-stone.jpg +0 -0
  76. data/lib/starter_web/assets/images/collections/books/fantasy/mistborn-trilogy.jpg +0 -0
  77. data/lib/starter_web/assets/images/collections/books/fantasy/ready-player-one.jpg +0 -0
  78. data/lib/starter_web/assets/images/collections/books/fantasy/sword-of-destiny.jpg +0 -0
  79. data/lib/starter_web/assets/images/collections/books/fantasy/terry-pratchet-diary.jpg +0 -0
  80. data/lib/starter_web/assets/images/collections/books/romance/breath-of-snow-and-ashes.jpg +0 -0
  81. data/lib/starter_web/assets/images/collections/books/romance/it-ends-with-us.jpg +0 -0
  82. data/lib/starter_web/assets/images/collections/books/romance/outlander-novel.jpg +0 -0
  83. data/lib/starter_web/assets/images/collections/books/romance/outlander-short-story.jpg +0 -0
  84. data/lib/starter_web/assets/images/collections/books/romance/the-fiery-cross.jpg +0 -0
  85. data/lib/starter_web/assets/images/collections/books/romance/the_dressmaker.jpg +0 -0
  86. data/lib/starter_web/collections/_biography/a-life-in-questions.adoc +13 -8
  87. data/lib/starter_web/collections/_biography/becoming.adoc +18 -12
  88. data/lib/starter_web/collections/_biography/born-to-run.adoc +17 -13
  89. data/lib/starter_web/collections/_biography/forty-autumns.adoc +14 -9
  90. data/lib/starter_web/collections/_biography/not-dead-yet.adoc +12 -7
  91. data/lib/starter_web/collections/_biography/princess-diarist-the.adoc +13 -8
  92. data/lib/starter_web/collections/_biography/when-breath-becomes-air.adoc +14 -9
  93. data/lib/starter_web/collections/_fantasy/harry-potter-deathly-hallows.adoc +13 -7
  94. data/lib/starter_web/collections/_fantasy/harry-potter-philosophers-stone.adoc +12 -8
  95. data/lib/starter_web/collections/_fantasy/mistborn-trilogy.adoc +14 -10
  96. data/lib/starter_web/collections/_fantasy/ready-player-one.adoc +12 -11
  97. data/lib/starter_web/collections/_fantasy/sword-of-destiny.adoc +15 -7
  98. data/lib/starter_web/collections/_fantasy/terry-pratchet-diary.adoc +11 -6
  99. data/lib/starter_web/collections/_romance/breath-of-snow-and-ashes.adoc +15 -10
  100. data/lib/starter_web/collections/_romance/it-ends-with-us.adoc +11 -6
  101. data/lib/starter_web/collections/_romance/outlander-novel.adoc +11 -6
  102. data/lib/starter_web/collections/_romance/{virgins-outlander-short-story.adoc → outlander-virgins-short-story.adoc} +11 -6
  103. data/lib/starter_web/collections/_romance/{dressmaker-the.adoc → the-dressmaker.adoc} +11 -6
  104. data/lib/starter_web/collections/_romance/{fiery-cross-the.adoc → the-fiery-cross.adoc} +11 -6
  105. data/lib/starter_web/collections/posts/public/featured/_posts/0000-00-00-welcome-to-j1.adoc.erb +6 -6
  106. data/lib/starter_web/collections/posts/public/featured/_posts/2021-01-01-about-cookies.adoc +12 -11
  107. data/lib/starter_web/collections/posts/public/featured/_posts/2021-02-01-static-site-generators.adoc +9 -7
  108. data/lib/starter_web/collections/posts/public/featured/_posts/2022-02-01-about-j1.adoc +8 -8
  109. data/lib/starter_web/dot.ruby-version +1 -1
  110. data/lib/starter_web/index.html +10 -8
  111. data/lib/starter_web/package.json +1 -1
  112. data/lib/starter_web/pages/public/about/features.adoc +7 -1
  113. data/lib/starter_web/pages/public/about/reporting_issues.adoc +2 -0
  114. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/000_intro.adoc +2 -0
  115. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/100_converter.adoc +2 -0
  116. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/200_themes.adoc +2 -0
  117. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/000_intro.asciidoc +1 -1
  118. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/100_converter/112_getting_started.asciidoc +1 -0
  119. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/100_converter/113_themes.asciidoc +1 -0
  120. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.adoc +2 -0
  121. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/documents/100_chapter.asciidoc +3 -1
  122. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/documents/200_chapter.asciidoc +1 -0
  123. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +2 -0
  124. data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +6 -0
  125. data/lib/starter_web/pages/public/blog/navigator/archive/allview.html +6 -13
  126. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +17 -11
  127. data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +7 -8
  128. data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +5 -7
  129. data/lib/starter_web/pages/public/blog/navigator/index.html +15 -14
  130. data/lib/starter_web/pages/public/features/general.adoc +7 -1
  131. data/lib/starter_web/pages/public/features/template.adoc +87 -128
  132. data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_all_books.adoc +10 -2
  133. data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_biography.adoc +8 -3
  134. data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_fantasy.adoc +11 -4
  135. data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_romance.adoc +11 -5
  136. data/lib/starter_web/pages/public/learn/bookshelf/jekyll_collections.adoc +24 -14
  137. data/lib/starter_web/pages/public/learn/bs_sass_variables/bs_sass_variables.adoc +4 -0
  138. data/lib/starter_web/pages/public/learn/core_web_vitals/core_web_vitals.adoc +8 -4
  139. data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/100_gistblock.asciidoc +2 -1
  140. data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/themes_bootstrap.asciidoc +27 -28
  141. data/lib/starter_web/pages/public/learn/roundtrip/asciidoc_extensions.adoc +169 -155
  142. data/lib/starter_web/pages/public/learn/roundtrip/bootstrap_themes.adoc +28 -19
  143. data/lib/starter_web/pages/public/learn/roundtrip/highlghter_rouge.adoc +9 -5
  144. data/lib/starter_web/pages/public/learn/roundtrip/icon_fonts.adoc +67 -77
  145. data/lib/starter_web/pages/public/learn/roundtrip/lunr_search.1.asciidoc +460 -0
  146. data/lib/starter_web/pages/public/learn/roundtrip/lunr_search.adoc +12 -7
  147. data/lib/starter_web/pages/public/learn/roundtrip/modal_extentions.adoc +26 -19
  148. data/lib/starter_web/pages/public/learn/roundtrip/present_images.adoc +470 -447
  149. data/lib/starter_web/pages/public/learn/roundtrip/present_videos.adoc +60 -59
  150. data/lib/starter_web/pages/public/learn/roundtrip/responsive_tables.adoc +51 -38
  151. data/lib/starter_web/pages/public/learn/roundtrip/typography.adoc +31 -25
  152. data/lib/starter_web/pages/public/learn/where_to_go.adoc +9 -4
  153. data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +4 -0
  154. data/lib/starter_web/pages/public/legal/en/200_impress.adoc +2 -0
  155. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +22 -3
  156. data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +5 -0
  157. data/lib/starter_web/pages/public/manuals/speak2me.adoc +412 -0
  158. data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +27 -19
  159. data/lib/starter_web/pages/public/plans/plans.adoc +3 -0
  160. data/lib/starter_web/pages/public/tools/cheatsheet/gem.adoc +2 -0
  161. data/lib/starter_web/pages/public/tools/cheatsheet/git.adoc +2 -0
  162. data/lib/starter_web/pages/public/tools/cheatsheet/j1.adoc +2 -0
  163. data/lib/starter_web/pages/public/tools/cheatsheet/yaml.adoc +6 -0
  164. data/lib/starter_web/pages/public/tools/previewer/preview_bootstrap_theme.adoc +17 -3
  165. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  166. data/lib/starter_web/utilsrv/package.json +1 -1
  167. metadata +38 -7
  168. data/lib/starter_web/_includes/google/static/google_ad_7284712660.html +0 -19
@@ -0,0 +1,72 @@
1
+ # ------------------------------------------------------------------------------
2
+ # ~/_data/modules/defaults/speak2me.yml
3
+ # Default configuration settings for J1 Speak2Me module
4
+ #
5
+ # Product/Info:
6
+ # https://jekyll.one
7
+ #
8
+ # Copyright (C) 2023 Juergen Adams
9
+ #
10
+ # J1 Theme is licensed under the MIT License.
11
+ # See: https://github.com/jekyll-one/J1 Theme/blob/master/LICENSE
12
+ # ------------------------------------------------------------------------------
13
+
14
+ # ------------------------------------------------------------------------------
15
+ # Description
16
+ #
17
+ description:
18
+ title: J1 Speak2Me
19
+ scope: Default settings
20
+ location: _data/modules/defaults/speak2me.yml
21
+
22
+ # ------------------------------------------------------------------------------
23
+ # Default settings
24
+ #
25
+ defaults:
26
+ enabled: false
27
+
28
+ dialogContainerID: speak2me_container
29
+ speechSelector: main
30
+
31
+ modal:
32
+ title: Text-2-Speech Translation
33
+
34
+ settings:
35
+ voice_settings_title: Voice Settings
36
+ voice_select_title: Select a voice
37
+ voice_control_title: Voice Control
38
+
39
+ speak_button_text: Speak
40
+ speak_button_style: success
41
+ stop_button_text: Stop
42
+ stop_button_style: primary
43
+ pause_button_text: Pause
44
+ pause_button_style: info
45
+ resume_button_text: Resume
46
+ resume_button_style: info
47
+ exit_button_text: Close
48
+ exit_button_style: warning
49
+
50
+ voice_speed_min: 0.1
51
+ voice_speed_max: 3.0
52
+ voice_speed_step: 0.1
53
+ voice_speed_value: 1.0
54
+ voice_speed_label: Speed
55
+ voice_speed_max_label: 1.0
56
+
57
+ voice_pitch_min: 0.1
58
+ voice_pitch_max: 2.0
59
+ voice_pitch_step: 0.1
60
+ voice_pitch_value: 0.9
61
+ voice_pitch_label: Pitch
62
+ voice_pitch_max_label: 0.9
63
+
64
+ voice_volume_min: 0
65
+ voice_volume_max: 1.0
66
+ voice_volume_step: 0.1
67
+ voice_volume_value: 0.9
68
+ voice_volume_label: Volume
69
+ voice_volume_max_label: 0.9
70
+
71
+ # ------------------------------------------------------------------------------
72
+ # END config
@@ -91,7 +91,7 @@ settings:
91
91
  pagePath: /pages/public/blog/navigator/page
92
92
  elementScroll: true
93
93
  scrollOffset: 200
94
- lastPage: 1000000 # high number "means" ALL pages|posts to load
94
+ lastPage: 2 # Dosn't work: high number "means" ALL pages|posts to load
95
95
  infoLastPage: false
96
96
 
97
97
  lastPageInfo_en: ""
@@ -0,0 +1,33 @@
1
+ # ------------------------------------------------------------------------------
2
+ # ~/_data/modules/speak2me.yml
3
+ # User configuration settings for J1 Speak2Me module
4
+ #
5
+ # Product/Info:
6
+ # https://jekyll.one
7
+ #
8
+ # Copyright (C) 2023 Juergen Adams
9
+ #
10
+ # J1 Theme is licensed under the MIT License.
11
+ # See: https://github.com/jekyll-one/J1 Theme/blob/master/LICENSE
12
+ # ------------------------------------------------------------------------------
13
+
14
+ # ------------------------------------------------------------------------------
15
+ # Description
16
+ #
17
+ description:
18
+ title: J1 Speak2Me
19
+ scope: User settings
20
+ location: _data/modules/speak2me.yml
21
+
22
+ # ------------------------------------------------------------------------------
23
+ # User configuration settings
24
+ #
25
+ settings:
26
+ enabled: true
27
+
28
+ # ----------------------------------------------------------------------------
29
+ # Speak2Me options
30
+ # ----------------------------------------------------------------------------
31
+
32
+ # ------------------------------------------------------------------------------
33
+ # END config
@@ -373,6 +373,29 @@ resources:
373
373
  ]
374
374
  init_function: [ j1.init ]
375
375
 
376
+ # ----------------------------------------------------------------------------
377
+ # Speak2Me
378
+ # Speech synthesis (TTS)
379
+ #
380
+ - name: speak2me
381
+ resource:
382
+ enabled: true
383
+
384
+ id: speak2me
385
+ comment: Module speak2me
386
+ region: head
387
+ layout: [ all ]
388
+ required: always
389
+ preload: false
390
+ script_load: defer
391
+ dependencies: false
392
+ pass_init_data: true
393
+ data:
394
+ css: []
395
+ files: [ adapter/js/speak2me.js ]
396
+ js: []
397
+ init_function: [ j1.adapter.speak2me.init ]
398
+
376
399
  # ----------------------------------------------------------------------------
377
400
  # Bootstrap JS v5.3.0
378
401
  #
@@ -410,7 +433,7 @@ resources:
410
433
  comment: Module BMD
411
434
  region: head
412
435
  layout: [ all ]
413
- required: always
436
+ required: ondemand
414
437
  preload: false
415
438
  script_load:
416
439
  dependencies: false
@@ -57,7 +57,7 @@
57
57
  <id>{{ page.url | absolute_url | xml_escape }}</id>
58
58
  <post_limited>{{ limit_posts }}</post_limited>
59
59
  <template_name>J1 Theme</template_name>
60
- <template_version>2023.5.2</template_version>
60
+ <template_version>2023.7.0</template_version>
61
61
 
62
62
  {% assign title = site.title | default: site.name %}
63
63
  {% if page.collection != "posts" %}
@@ -15,5 +15,5 @@
15
15
 
16
16
  <div class="container">
17
17
  <!-- Ad container -->
18
- <div id="ad_5128488466" class="gad-container mt-6 mb-6"></div>
18
+ <div id="ad_<your-slot-id>" class="gad-container mt-5 mb-5"></div>
19
19
  </div>
@@ -38,7 +38,7 @@ Asciidoctor::Extensions.register do
38
38
  text_content = (text = attrs['text']) ? %(#{text}) : nil
39
39
  html = %(
40
40
  <div class="paragraph">
41
- <p class="#{modifier}"> <i class="conum" data-value="#{target}"></i> #{text} </p>
41
+ <p class="speak2me-ignore #{modifier}"> <i class="conum" data-value="#{target}"></i> #{text} </p>
42
42
  </div>
43
43
  )
44
44
 
@@ -35,8 +35,8 @@ Asciidoctor::Extensions.register do
35
35
 
36
36
  def process parent, target, attrs
37
37
 
38
- title_html = (attrs.has_key? 'title') ? %(<div class="slider-title notranslate">#{attrs['title']}</div>\n) : nil
39
- html = %(#{title_html} <div id="#{target}" class="#{attrs['role']}"></div>)
38
+ title_html = (attrs.has_key? 'title') ? %(<div class="carousel-title">#{attrs['title']}</div>\n) : nil
39
+ html = %(#{title_html} <carousel id="#{target}" class="#{attrs['role']}"></carousel>)
40
40
  create_pass_block parent, html, attrs, subs: nil
41
41
  end
42
42
  end
@@ -33,8 +33,8 @@ Asciidoctor::Extensions.register do
33
33
  name_positional_attributes 'role'
34
34
 
35
35
  def process parent, target, attrs
36
- title_html = (attrs.has_key? 'title') ? %(<div class="gallery-title notranslate">#{attrs['title']}</div>\n) : nil
37
- html = %(#{title_html} <div id="#{target}" class="#{attrs['role']}"></div>)
36
+ title_html = (attrs.has_key? 'title') ? %(<div class="gallery-title">#{attrs['title']}</div>\n) : nil
37
+ html = %(#{title_html} <gallery><div id="#{target}" class="#{attrs['role']}"></div></gallery>)
38
38
  create_pass_block parent, html, attrs, subs: nil
39
39
  end
40
40
  end
@@ -34,9 +34,9 @@ Asciidoctor::Extensions.register do
34
34
 
35
35
  def process parent, target, attrs
36
36
  title_html = (attrs.has_key? 'title') ?
37
- %(<div class="title notranslate">#{attrs['title']}</div>\n) : nil
37
+ %(<div class="title speak2me-ignore notranslate">#{attrs['title']}</div>\n) : nil
38
38
 
39
- html = %(<div class="openblock gist mt-4 mb-5">
39
+ html = %(<div class="openblock gist speak2me-ignore mt-4 mb-5">
40
40
  #{title_html}
41
41
  <div class="content">
42
42
  <script src="https://gist.github.com/#{target}.js"></script>
@@ -37,7 +37,7 @@ Asciidoctor::Extensions.register do
37
37
 
38
38
  def process parent, target, attrs
39
39
 
40
- html = %(<div id="#{target}" class="gad-container #{attrs['role']}"></div>)
40
+ html = %(<div id="#{target}" class="gad-container speak2me-ignore #{attrs['role']}"></div>)
41
41
  create_pass_block parent, html, attrs, subs: nil
42
42
  end
43
43
  end
@@ -44,7 +44,7 @@ Asciidoctor::Extensions.register do
44
44
  imagesdir = parent.attr 'imagesdir'
45
45
  images_hash = Hash[*attrs['image_data'].split(',')]
46
46
 
47
- title_html = (attrs.has_key? 'title') ? %(<div class="title notranslate">#{attrs['title']}</div>\n) : nil
47
+ title_html = (attrs.has_key? 'title') ? %(<div class="lightbox-title">#{attrs['title']}</div>\n) : nil
48
48
  role = (attrs.has_key? 'role') ? role : ''
49
49
  grouped = (attrs.has_key? 'group') ? true : false
50
50
 
@@ -73,12 +73,7 @@ Asciidoctor::Extensions.register do
73
73
  end
74
74
  content = html_block.target! # See: https://stackoverflow.com/questions/4961609/extra-to-s-when-using-builder-to-generate-xml
75
75
 
76
- html = %(
77
- <div id="lb-#{target}" class="imageblock">
78
- #{title_html}
79
- #{content}
80
- </div>
81
- )
76
+ html = %(#{title_html} <lightbox id="lb-#{target}" class="imageblock"> #{content} </lightbox>)
82
77
 
83
78
  create_pass_block parent, html, attrs, subs: nil
84
79
  end
@@ -37,9 +37,8 @@ Asciidoctor::Extensions.register do
37
37
  name_positional_attributes 'role'
38
38
 
39
39
  def process parent, target, attrs
40
- title_html = (attrs.has_key? 'title') ? %(<div class="masonry-title notranslate">#{attrs['title']}</div>\n) : nil
41
- # html = %(#{title_html} <div id="#{target}_parent" class="container g-0 masonry-parent #{attrs['role']}"></div>)
42
- html = %(#{title_html} <div id="#{target}_parent" class="masonry-parent #{attrs['role']}"></div>)
40
+ title_html = (attrs.has_key? 'title') ? %(<div class="masonry-title">#{attrs['title']}</div>\n) : nil
41
+ html = %(#{title_html} <masonry id="#{target}_parent" class="masonry-parent #{attrs['role']}"></masonry>)
43
42
  create_pass_block parent, html, attrs, subs: nil
44
43
  end
45
44
 
@@ -37,8 +37,8 @@ Asciidoctor::Extensions.register do
37
37
 
38
38
  def process parent, target, attrs
39
39
 
40
- title_html = (attrs.has_key? 'title') ? %(<div class="slider-title notranslate">#{attrs['title']}</div>\n) : nil
41
- html = %(#{title_html} <div id="p_#{target}" class="master-slider-parent #{attrs['role']}"></div>)
40
+ title_html = (attrs.has_key? 'title') ? %(<div class="slider-title">#{attrs['title']}</div>\n) : nil
41
+ html = %(#{title_html} <slider id="p_#{target}" class="master-slider-parent #{attrs['role']}"></slider>)
42
42
  create_pass_block parent, html, attrs, subs: nil
43
43
  end
44
44
  end
@@ -0,0 +1,43 @@
1
+ # ------------------------------------------------------------------------------
2
+ # ~/_plugins/asciidoctor-extensions/mdib-icon-inline.rb
3
+ # Asciidoctor extension for J1 Theme
4
+ #
5
+ # Product/Info:
6
+ # https://jekyll.one
7
+ #
8
+ # Copyright (C) 2023 Juergen Adams
9
+ #
10
+ # J1 Theme is licensed under the MIT License.
11
+ # See: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
12
+ #
13
+ # ------------------------------------------------------------------------------
14
+ require 'asciidoctor/extensions' unless RUBY_ENGINE == 'opal'
15
+ include Asciidoctor
16
+
17
+ # A inline macro that places an MDIB icon into the output document
18
+ #
19
+ # Usage
20
+ #
21
+ # mdib:<name>[<size>, <modifier>]
22
+ #
23
+ # Example:
24
+ #
25
+ # mdib:account[mdib-48px, <modifier>]
26
+ #
27
+ Asciidoctor::Extensions.register do
28
+ class MdibIconInlineMacro < Extensions::InlineMacroProcessor
29
+ use_dsl
30
+ named :mdib
31
+ name_positional_attributes 'size', 'modifier'
32
+ default_attrs 'size' => '1x', 'modifier' => ''
33
+
34
+ def process parent, target, attributes
35
+ doc = parent.document
36
+ size_class = (size = attributes['size']) ? %(mdib-#{size}) : nil
37
+ modifier_class = (modifier = attributes['modifier']) ? %(#{modifier}) : nil
38
+ icon_name = target.tr '_', '-'
39
+ %(<i class="mdib #{size_class} #{modifier} mdib-#{icon_name}"></i>)
40
+ end
41
+ end
42
+ inline_macro MdibIconInlineMacro
43
+ end
@@ -1,5 +1,5 @@
1
1
  # ------------------------------------------------------------------------------
2
- # ~/_plugins/asciidoctor-extensions/mdi-icon-inline.rb
2
+ # ~/_plugins/asciidoctor-extensions/mdil-icon-inline.rb
3
3
  # Asciidoctor extension for J1 Theme
4
4
  #
5
5
  # Product/Info:
@@ -34,7 +34,7 @@ Asciidoctor::Extensions.register do
34
34
  default_attrs 'role' => ''
35
35
 
36
36
  def process parent, target, attrs
37
- html = %(<div id="#{target}" class="range-slider #{attrs['role']}"></div>)
37
+ html = %(<div id="#{target}" class="range-slider speak2me-ignore #{attrs['role']}"></div>)
38
38
  create_pass_block parent, html, attrs, subs: nil
39
39
  end
40
40
  end
@@ -38,8 +38,8 @@ Asciidoctor::Extensions.register do
38
38
 
39
39
  def process parent, target, attrs
40
40
 
41
- title_html = (attrs.has_key? 'title') ? %(<div class="slider-title notranslate">#{attrs['title']}</div>\n) : nil
42
- html = %(#{title_html} <div id="#{target}_parent" class="slider-parent #{attrs['role']}"></div>)
41
+ title_html = (attrs.has_key? 'title') ? %(<div class="slider-title">#{attrs['title']}</div>\n) : nil
42
+ html = %(#{title_html} <carousel id="#{target}_parent" class="slider-parent #{attrs['role']}"></carousel>)
43
43
  create_pass_block parent, html, attrs, subs: nil
44
44
  end
45
45
  end
@@ -35,7 +35,7 @@ Asciidoctor::Extensions.register do
35
35
  name_positional_attributes 'role'
36
36
 
37
37
  def process parent, target, attrs
38
- html = %(<div id="#{target}" class="nb-textbook #{attrs['role']}" data-nb-textbook="initial"></div>)
38
+ html = %(<div id="#{target}" class="nb-textbook speak2me-ignore #{attrs['role']}" data-nb-textbook="initial"></div>)
39
39
  create_pass_block parent, html, attrs, subs: nil
40
40
  end
41
41
  end
@@ -1,22 +1,22 @@
1
- # ------------------------------------------------------------------------------
2
- # ~/_plugins/filter/liquify.rb
3
- # Liquid filter to expand nested liquid-variables in the front matter
4
- #
5
- # Product/Info:
6
- # http://jekyll.one
7
- #
8
- # Copyright (C) 2023 Juergen Adams
9
- #
10
- # J1 Theme is licensed under the MIT License.
11
- # See: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
12
- # See: http://acegik.net/blog/ruby/jekyll/plugins/howto-nest-liquid-template-variables-inside-yaml-front-matter-block.html
13
- # ------------------------------------------------------------------------------
14
- module Jekyll
15
- module ExpandNestedVariableFilter
16
- def liquify(input)
17
- Liquid::Template.parse(input).render(@context)
18
- end
19
- end
20
- end
21
-
22
- Liquid::Template.register_filter(Jekyll::ExpandNestedVariableFilter)
1
+ # ------------------------------------------------------------------------------
2
+ # ~/_plugins/filter/liquify.rb
3
+ # Liquid filter to expand nested liquid-variables in the front matter
4
+ #
5
+ # Product/Info:
6
+ # http://jekyll.one
7
+ #
8
+ # Copyright (C) 2023 Juergen Adams
9
+ #
10
+ # J1 Theme is licensed under the MIT License.
11
+ # See: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
12
+ # See: http://acegik.net/blog/ruby/jekyll/plugins/howto-nest-liquid-template-variables-inside-yaml-front-matter-block.html
13
+ # ------------------------------------------------------------------------------
14
+ module Jekyll
15
+ module ExpandNestedVariableFilter
16
+ def liquify(input)
17
+ Liquid::Template.parse(input).render(@context)
18
+ end
19
+ end
20
+ end
21
+
22
+ Liquid::Template.register_filter(Jekyll::ExpandNestedVariableFilter)
@@ -391,6 +391,6 @@ end
391
391
 
392
392
  module Jekyll
393
393
  module J1LunrSearch
394
- VERSION = '2023.5.2'
394
+ VERSION = '2023.7.0'
395
395
  end
396
396
  end
@@ -11,10 +11,10 @@ categories: [ Book ]
11
11
  tags: [ Biography ]
12
12
 
13
13
  image:
14
- path: https://d3by36x8sj6cra.cloudfront.net/assets/images/book/large/9780/0081/9780008128302.jpg
14
+ path: /assets/images/collections/books/biography/a_life_in_questions.jpg
15
15
 
16
16
  book:
17
- cover: https://d3by36x8sj6cra.cloudfront.net/assets/images/book/large/9780/0081/9780008128302.jpg
17
+ cover: /assets/images/collections/books/biography/a_life_in_questions.jpg
18
18
  format: hardback
19
19
  pages: 320
20
20
  publisher: HarperCollins Publishers
@@ -60,19 +60,24 @@ long-standing quiz master of University Challenge. Filled with views,
60
60
  opinions and stories from 4 decades in front of the camera. Jeremy Paxman
61
61
  is Britain's bravest, most incisive political interviewer.
62
62
 
63
+ excerpt__end
64
+
65
+ // Page content
66
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
67
+ mdi:clock-time-five-outline[24px, md-gray mr-2]
68
+ *3 Minutes* to read
69
+
70
+ // Include sub-documents (if any)
71
+ //
72
+ [role="mt-5"]
73
+ [[readmore]]
63
74
  The no-nonsense star of BBC Newsnight, Paxman is a supreme inquisitor,
64
75
  a master at skewering mammoth egos with his relentless grilling. Few figures
65
76
  in public life have escaped. From John Major to Theresa May, from Tony Blair
66
77
  to Ed Miliband, Paxman had them quaking in their boots.
67
78
 
68
- excerpt__end
69
-
70
- // Content
71
- // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
72
- [role="mt-4"]
73
79
  image:{{page.book.cover}}[role="mr-4 mb-4 float-left"]
74
80
 
75
- [[readmore]]
76
81
  His working life has been defined by questions. *Why is this bastard
77
82
  lying to me?* was at the front of his mind as he conducted every interview.
78
83
  But it wasn't just politicians. Paxman's interviews with Dizzee Rascal,
@@ -12,10 +12,10 @@ categories: [ Book ]
12
12
  tags: [ Biography ]
13
13
 
14
14
  image:
15
- path: https://images-na.ssl-images-amazon.com/images/I/414JfiBCutL.jpg
15
+ path: /assets/images/collections/books/biography/becoming.jpg
16
16
 
17
17
  book:
18
- cover: https://images-na.ssl-images-amazon.com/images/I/414JfiBCutL.jpg
18
+ cover: /assets/images/collections/books/biography/becoming.jpg
19
19
  format: hardback
20
20
  pages: 430
21
21
  publisher: Penguin Random House LLC
@@ -56,22 +56,28 @@ resource_options:
56
56
  // -----------------------------------------------------------------------------
57
57
  In a life filled with meaning and accomplishment, Michelle Obama has emerged
58
58
  as one of the most iconic and compelling women of our era. As First Lady of
59
- the United States of Americathe first African American to serve in that
60
- role—she helped create the most welcoming and inclusive White House in history.
59
+ the United States of America &nbsp; -- &nbsp; the first African American to
60
+ serve in that role and helped create the most welcoming and inclusive White
61
+ House in history.
61
62
 
63
+ excerpt__end
64
+
65
+ // Page content
66
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
67
+ mdi:clock-time-five-outline[24px, md-gray mr-2]
68
+ *3 Minutes* to read
69
+
70
+ // Include sub-documents (if any)
71
+ //
72
+ [role="mt-4"]
73
+ [[readmore]]
62
74
  While also establishing herself as a powerful advocate for women and girls
63
75
  in the U.S. and around the world, dramatically changing the ways that families
64
76
  pursue healthier and more active lives, and standing with her husband as he
65
77
  led America through some of its most harrowing moments.
66
78
 
67
- excerpt__end
68
-
69
- // Content
70
- // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71
- [role="mt-4"]
72
79
  image:{{page.book.cover}}[role="mr-4 float-left"]
73
80
 
74
- [[readmore]]
75
81
  The book offers a personal and introspective account of Michelle Obama's
76
82
  life, from her childhood in Chicago to her years in the White House.
77
83
  Michelle shares her experiences, values, and the significant moments that
@@ -86,13 +92,13 @@ their shared experiences during his political career.
86
92
 
87
93
  In her memoir, a work of deep reflection and mesmerizing storytelling,
88
94
  Michelle Obama invites readers into her world, chronicling the experiences
89
- that have shaped herfrom her childhood on the South Side of Chicago to
95
+ that have shaped her &nbsp; -- &nbsp; from her childhood on the South Side of Chicago to
90
96
  her years as an executive balancing the demands of motherhood and work
91
97
  to her time spent at the world’s most famous address.
92
98
 
93
99
  With unerring honesty and lively wit, she describes her triumphs and her
94
100
  disappointments, both public and protected, telling her full story as she
95
- has lived itin her own words and on her own terms. Warm, wise, and
101
+ has lived it &nbsp; -- &nbsp; in her own words and on her own terms. Warm, wise, and
96
102
  revelatory.
97
103
 
98
104
  Throughout "Becoming," Michelle Obama reflects on her efforts to balance
@@ -11,10 +11,10 @@ categories: [ Book ]
11
11
  tags: [ Biography ]
12
12
 
13
13
  image:
14
- path: https://d1w7fb2mkkr3kw.cloudfront.net/assets/images/book/large/9781/4711/9781471157790.jpg
14
+ path: /assets/images/collections/books/biography/born_to_run.jpg
15
15
 
16
16
  book:
17
- cover: https://d1w7fb2mkkr3kw.cloudfront.net/assets/images/book/large/9781/4711/9781471157790.jpg
17
+ cover: /assets/images/collections/books/biography/born_to_run.jpg
18
18
  format: hardback
19
19
  pages: 528
20
20
  publisher: Simon and Schuster Ltd.
@@ -58,21 +58,25 @@ write the story of his life, bringing to these pages the same honesty, humour
58
58
  and originality found in his songs. Bruce Springsteen and the E Street Band
59
59
  performed at the Super Bowl's halftime show.
60
60
 
61
- The experience was so exhilarating
62
- that Bruce decided to write about it. That's how this extraordinary
63
- autobiography began. Springsteen describes growing up Catholic in Freehold,
64
- New Jersey, amid the poetry, danger and darkness that fuelled his imagination,
65
- leading up to the moment he refers to as *The Big Bang*: seeing
66
- Elvis Presley's debut on The Ed Sullivan Show.
67
-
68
61
  excerpt__end
69
62
 
70
- // Content
63
+ // Page content
71
64
  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
72
- [role="mt-4]
73
- image:{{page.book.cover}}[role="mr-4 float-left"]
65
+ mdi:clock-time-five-outline[24px, md-gray mr-2]
66
+ *3 Minutes* to read
74
67
 
68
+ // Include sub-documents (if any)
69
+ //
70
+ [role="mt-5]
75
71
  [[readmore]]
72
+ The experience was so exhilarating that Bruce decided to write about it.
73
+ That's how this extraordinary autobiography began. Springsteen describes
74
+ growing up Catholic in Freehold, New Jersey, amid the poetry, danger and
75
+ darkness that fuelled his imagination, leading up to the moment he refers
76
+ to as *The Big Bang*: seeing Elvis Presley's debut on The Ed Sullivan Show.
77
+
78
+ image:{{page.book.cover}}[role="mr-4 float-left"]
79
+
76
80
  In the book, Springsteen recounts his early years growing up in a working-class
77
81
  family in New Jersey and the impact of his upbringing on his music. He shares
78
82
  stories about his musical influences, struggles with personal relationships,
@@ -101,7 +105,7 @@ Springsteen, but this book is much more than a legendary rock star's memoir.
101
105
 
102
106
  Many of his songs like *Thunder Road*, *Badlands*, *The River*,
103
107
  *Born in the USA*, *The Rising*, and *The Ghost of Tom Joad*
104
- to name just a few Bruce Springsteen's autobiography is written with the
108
+ &nbsp; -- &nbsp; to name just a few &nbsp; -- &nbsp; Bruce Springsteen's autobiography is written with the
105
109
  lyricism of a singular songwriter and the wisdom of a man who has thought
106
110
  deeply about his experiences.
107
111