j1-template 2023.6.0 → 2023.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (166) 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/unodark/bootstrap.css +43 -0
  20. data/assets/themes/j1/core/css/themes/unodark/bootstrap.min.css +1 -1
  21. data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +141 -1
  22. data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +1 -1
  23. data/assets/themes/j1/core/js/template.js +1658 -0
  24. data/assets/themes/j1/core/js/template.min.js +11 -5
  25. data/assets/themes/j1/core/js/template.min.js.map +1 -1
  26. data/assets/themes/j1/modules/speak2me/LICENSE +21 -0
  27. data/assets/themes/j1/modules/speak2me/js/speak2me.js +947 -0
  28. data/assets/themes/j1/modules/speak2me/js/speak2me.min.js +26 -0
  29. data/assets/themes/j1/modules/translator/js/translator.js +30 -13
  30. data/assets/themes/j1/modules/translator/js/translator.min.js +1 -1
  31. data/lib/j1/version.rb +1 -1
  32. data/lib/starter_web/Gemfile +4 -4
  33. data/lib/starter_web/README.md +5 -5
  34. data/lib/starter_web/_config.yml +7 -1
  35. data/lib/starter_web/_data/blocks/banner.yml +7 -6
  36. data/lib/starter_web/_data/blocks/panel.yml +37 -39
  37. data/lib/starter_web/_data/layouts/home.yml +1 -1
  38. data/lib/starter_web/_data/modules/advertising.yml +10 -88
  39. data/lib/starter_web/_data/modules/buymeacoffee.yml +30 -0
  40. data/lib/starter_web/_data/modules/defaults/advertising.yml +3 -1
  41. data/lib/starter_web/_data/modules/defaults/blog_navigator.yml +97 -164
  42. data/lib/starter_web/_data/modules/defaults/buymeacoffee.yml +30 -0
  43. data/lib/starter_web/_data/modules/defaults/navigator.yml +8 -4
  44. data/lib/starter_web/_data/modules/defaults/speak2me.yml +72 -0
  45. data/lib/starter_web/_data/modules/scroller.yml +1 -1
  46. data/lib/starter_web/_data/modules/speak2me.yml +33 -0
  47. data/lib/starter_web/_data/resources.yml +24 -1
  48. data/lib/starter_web/_data/templates/feed.xml +1 -1
  49. data/lib/starter_web/_includes/google/static/{google_ad_5128488466.html → google_ad__your-slot-id.html} +1 -1
  50. data/lib/starter_web/_plugins/asciidoctor/callout.rb +1 -1
  51. data/lib/starter_web/_plugins/asciidoctor/carousel-block.rb +2 -2
  52. data/lib/starter_web/_plugins/asciidoctor/gallery-block.rb +2 -2
  53. data/lib/starter_web/_plugins/asciidoctor/gist-block.rb +2 -2
  54. data/lib/starter_web/_plugins/asciidoctor/google-ad-block.rb +1 -1
  55. data/lib/starter_web/_plugins/asciidoctor/lightbox-block.rb +2 -7
  56. data/lib/starter_web/_plugins/asciidoctor/masonry-block.rb +2 -3
  57. data/lib/starter_web/_plugins/asciidoctor/masterslider-block.rb +2 -2
  58. data/lib/starter_web/_plugins/asciidoctor/mdib-icon-inline.rb +43 -0
  59. data/lib/starter_web/_plugins/asciidoctor/mdil-icon-inline.rb +1 -1
  60. data/lib/starter_web/_plugins/asciidoctor/range-slider-block.rb +1 -1
  61. data/lib/starter_web/_plugins/asciidoctor/slick-block.rb +2 -2
  62. data/lib/starter_web/_plugins/asciidoctor/textbook-block.rb +1 -1
  63. data/lib/starter_web/_plugins/filter/liquify.rb +22 -22
  64. data/lib/starter_web/_plugins/index/lunr.rb +1 -1
  65. data/lib/starter_web/assets/images/collections/books/biography/a_life_in_questions.jpg +0 -0
  66. data/lib/starter_web/assets/images/collections/books/biography/becoming.jpg +0 -0
  67. data/lib/starter_web/assets/images/collections/books/biography/born_to_run.jpg +0 -0
  68. data/lib/starter_web/assets/images/collections/books/biography/forty_autumns.jpg +0 -0
  69. data/lib/starter_web/assets/images/collections/books/biography/not_dead_yet.jpg +0 -0
  70. data/lib/starter_web/assets/images/collections/books/biography/the_princess_diarist.jpg +0 -0
  71. data/lib/starter_web/assets/images/collections/books/biography/when_breath_becomes_air.jpg +0 -0
  72. data/lib/starter_web/assets/images/collections/books/fantasy/harry-potter-deathly-hallows.jpg +0 -0
  73. data/lib/starter_web/assets/images/collections/books/fantasy/harry-potter-philosophers-stone.jpg +0 -0
  74. data/lib/starter_web/assets/images/collections/books/fantasy/mistborn-trilogy.jpg +0 -0
  75. data/lib/starter_web/assets/images/collections/books/fantasy/ready-player-one.jpg +0 -0
  76. data/lib/starter_web/assets/images/collections/books/fantasy/sword-of-destiny.jpg +0 -0
  77. data/lib/starter_web/assets/images/collections/books/fantasy/terry-pratchet-diary.jpg +0 -0
  78. data/lib/starter_web/assets/images/collections/books/romance/breath-of-snow-and-ashes.jpg +0 -0
  79. data/lib/starter_web/assets/images/collections/books/romance/it-ends-with-us.jpg +0 -0
  80. data/lib/starter_web/assets/images/collections/books/romance/outlander-novel.jpg +0 -0
  81. data/lib/starter_web/assets/images/collections/books/romance/outlander-short-story.jpg +0 -0
  82. data/lib/starter_web/assets/images/collections/books/romance/the-fiery-cross.jpg +0 -0
  83. data/lib/starter_web/assets/images/collections/books/romance/the_dressmaker.jpg +0 -0
  84. data/lib/starter_web/collections/_biography/a-life-in-questions.adoc +13 -8
  85. data/lib/starter_web/collections/_biography/becoming.adoc +18 -12
  86. data/lib/starter_web/collections/_biography/born-to-run.adoc +17 -13
  87. data/lib/starter_web/collections/_biography/forty-autumns.adoc +14 -9
  88. data/lib/starter_web/collections/_biography/not-dead-yet.adoc +12 -7
  89. data/lib/starter_web/collections/_biography/princess-diarist-the.adoc +13 -8
  90. data/lib/starter_web/collections/_biography/when-breath-becomes-air.adoc +14 -9
  91. data/lib/starter_web/collections/_fantasy/harry-potter-deathly-hallows.adoc +13 -7
  92. data/lib/starter_web/collections/_fantasy/harry-potter-philosophers-stone.adoc +12 -8
  93. data/lib/starter_web/collections/_fantasy/mistborn-trilogy.adoc +14 -10
  94. data/lib/starter_web/collections/_fantasy/ready-player-one.adoc +12 -11
  95. data/lib/starter_web/collections/_fantasy/sword-of-destiny.adoc +15 -7
  96. data/lib/starter_web/collections/_fantasy/terry-pratchet-diary.adoc +11 -6
  97. data/lib/starter_web/collections/_romance/breath-of-snow-and-ashes.adoc +15 -10
  98. data/lib/starter_web/collections/_romance/it-ends-with-us.adoc +11 -6
  99. data/lib/starter_web/collections/_romance/outlander-novel.adoc +11 -6
  100. data/lib/starter_web/collections/_romance/{virgins-outlander-short-story.adoc → outlander-virgins-short-story.adoc} +11 -6
  101. data/lib/starter_web/collections/_romance/{dressmaker-the.adoc → the-dressmaker.adoc} +11 -6
  102. data/lib/starter_web/collections/_romance/{fiery-cross-the.adoc → the-fiery-cross.adoc} +11 -6
  103. data/lib/starter_web/collections/posts/public/featured/_posts/0000-00-00-welcome-to-j1.adoc.erb +6 -6
  104. data/lib/starter_web/collections/posts/public/featured/_posts/2021-01-01-about-cookies.adoc +12 -11
  105. data/lib/starter_web/collections/posts/public/featured/_posts/2021-02-01-static-site-generators.adoc +9 -7
  106. data/lib/starter_web/collections/posts/public/featured/_posts/2022-02-01-about-j1.adoc +8 -8
  107. data/lib/starter_web/dot.ruby-version +1 -1
  108. data/lib/starter_web/index.html +10 -8
  109. data/lib/starter_web/package.json +1 -1
  110. data/lib/starter_web/pages/public/about/features.adoc +7 -1
  111. data/lib/starter_web/pages/public/about/reporting_issues.adoc +2 -0
  112. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/000_intro.adoc +2 -0
  113. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/100_converter.adoc +2 -0
  114. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/200_themes.adoc +2 -0
  115. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/000_intro.asciidoc +1 -1
  116. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/100_converter/112_getting_started.asciidoc +1 -0
  117. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/100_converter/113_themes.asciidoc +1 -0
  118. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.adoc +2 -0
  119. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/documents/100_chapter.asciidoc +3 -1
  120. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/documents/200_chapter.asciidoc +1 -0
  121. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +2 -0
  122. data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +6 -0
  123. data/lib/starter_web/pages/public/blog/navigator/archive/allview.html +6 -13
  124. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +17 -11
  125. data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +7 -8
  126. data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +5 -7
  127. data/lib/starter_web/pages/public/blog/navigator/index.html +15 -14
  128. data/lib/starter_web/pages/public/features/general.adoc +7 -1
  129. data/lib/starter_web/pages/public/features/template.adoc +87 -128
  130. data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_all_books.adoc +3 -0
  131. data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_biography.adoc +1 -1
  132. data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_fantasy.adoc +1 -0
  133. data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_romance.adoc +1 -1
  134. data/lib/starter_web/pages/public/learn/bookshelf/jekyll_collections.adoc +11 -8
  135. data/lib/starter_web/pages/public/learn/bs_sass_variables/bs_sass_variables.adoc +4 -0
  136. data/lib/starter_web/pages/public/learn/core_web_vitals/core_web_vitals.adoc +8 -4
  137. data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/100_gistblock.asciidoc +2 -1
  138. data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/themes_bootstrap.asciidoc +27 -28
  139. data/lib/starter_web/pages/public/learn/roundtrip/asciidoc_extensions.adoc +164 -153
  140. data/lib/starter_web/pages/public/learn/roundtrip/bootstrap_themes.adoc +22 -16
  141. data/lib/starter_web/pages/public/learn/roundtrip/highlghter_rouge.adoc +3 -2
  142. data/lib/starter_web/pages/public/learn/roundtrip/icon_fonts.adoc +62 -74
  143. data/lib/starter_web/pages/public/learn/roundtrip/lunr_search.1.asciidoc +460 -0
  144. data/lib/starter_web/pages/public/learn/roundtrip/lunr_search.adoc +4 -0
  145. data/lib/starter_web/pages/public/learn/roundtrip/modal_extentions.adoc +21 -15
  146. data/lib/starter_web/pages/public/learn/roundtrip/present_images.adoc +470 -449
  147. data/lib/starter_web/pages/public/learn/roundtrip/present_videos.adoc +53 -54
  148. data/lib/starter_web/pages/public/learn/roundtrip/responsive_tables.adoc +46 -34
  149. data/lib/starter_web/pages/public/learn/roundtrip/typography.adoc +25 -22
  150. data/lib/starter_web/pages/public/learn/where_to_go.adoc +6 -2
  151. data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +4 -0
  152. data/lib/starter_web/pages/public/legal/en/200_impress.adoc +2 -0
  153. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +22 -3
  154. data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +5 -0
  155. data/lib/starter_web/pages/public/manuals/speak2me.adoc +412 -0
  156. data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +27 -19
  157. data/lib/starter_web/pages/public/plans/plans.adoc +3 -0
  158. data/lib/starter_web/pages/public/tools/cheatsheet/gem.adoc +2 -0
  159. data/lib/starter_web/pages/public/tools/cheatsheet/git.adoc +2 -0
  160. data/lib/starter_web/pages/public/tools/cheatsheet/j1.adoc +2 -0
  161. data/lib/starter_web/pages/public/tools/cheatsheet/yaml.adoc +6 -0
  162. data/lib/starter_web/pages/public/tools/previewer/preview_bootstrap_theme.adoc +17 -3
  163. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  164. data/lib/starter_web/utilsrv/package.json +1 -1
  165. metadata +38 -7
  166. data/lib/starter_web/_includes/google/static/google_ad_7284712660.html +0 -19
@@ -46,10 +46,11 @@ exclude_from_search: true
46
46
 
47
47
  {% assign translator_defaults = modules.defaults.translator.defaults %}
48
48
  {% assign translator_settings = modules.translator.settings %}
49
+ {% assign speak2me_defaults = modules.defaults.speak2me.defaults %}
50
+ {% assign speak2me_settings = modules.speak2me.settings %}
49
51
  {% assign toggler_defaults = modules.defaults.theme_toggler.defaults %}
50
52
  {% assign toggler_settings = modules.theme_toggler.settings %}
51
53
 
52
-
53
54
  {% comment %} Modules disabled
54
55
  --------------------------------------------------------------------------------
55
56
  {% assign nbi_defaults = modules.defaults.nbinteract.defaults %}
@@ -71,8 +72,9 @@ exclude_from_search: true
71
72
  {% assign lunr_search_options = lunr_search_defaults | merge: lunr_search_settings %}
72
73
  {% assign quicklinks_options = nav_quicklinks_defaults | merge: nav_quicklinks_settings %}
73
74
  {% assign consent_options = consent_defaults | merge: consent_settings %}
74
- {% assign translator_options = translator_defaults | merge: translator_settings %}
75
75
  {% assign toggler_options = toggler_defaults | merge: toggler_settings %}
76
+ {% assign translator_options = translator_defaults | merge: translator_settings %}
77
+ {% assign speak2me_options = speak2me_defaults | merge: speak2me_settings %}
76
78
 
77
79
  {% comment %} Control Center disabled
78
80
  --------------------------------------------------------------------------------
@@ -95,28 +97,30 @@ exclude_from_search: true
95
97
  {% assign home_url = quicklinks_options.home_url %}
96
98
  {% assign home_label = quicklinks_options.home_label %}
97
99
 
98
- {% assign back_icon = quicklinks_options.back_icon %}
99
- {% assign back_url = quicklinks_options.back_url %}
100
- {% assign back_label = quicklinks_options.back_label %}
101
-
102
100
  {% assign disqus_icon = quicklinks_options.disqus_icon %}
103
- {% assign github_icon = quicklinks_options.github_icon %}
104
- {% assign patreon_icon = quicklinks_options.patreon_icon %}
105
- {% assign facebook_icon = quicklinks_options.facebook_icon %}
106
- {% assign twitter_icon = quicklinks_options.twitter_icon %}
107
-
108
101
  {% assign disqus_url = quicklinks_options.disqus_url %}
109
- {% assign github_url = quicklinks_options.github_url %}
110
- {% assign patreon_url = quicklinks_options.patreon_url %}
111
- {% assign facebook_url = quicklinks_options.facebook_url %}
112
- {% assign twitter_url = quicklinks_options.twitter_url %}
113
-
114
102
  {% assign disqus_label = quicklinks_options.disqus_label %}
103
+
104
+ {% assign github_icon = quicklinks_options.github_icon %}
105
+ {% assign github_url = quicklinks_options.github_url %}
115
106
  {% assign github_label = quicklinks_options.github_label %}
107
+
108
+ {% assign patreon_icon = quicklinks_options.patreon_icon %}
109
+ {% assign patreon_url = quicklinks_options.patreon_url %}
116
110
  {% assign patreon_label = quicklinks_options.patreon_label %}
111
+
112
+ {% assign facebook_icon = quicklinks_options.facebook_icon %}
113
+ {% assign facebook_url = quicklinks_options.facebook_url %}
117
114
  {% assign facebook_label = quicklinks_options.facebook_label %}
115
+
116
+ {% assign twitter_icon = quicklinks_options.twitter_icon %}
117
+ {% assign twitter_url = quicklinks_options.twitter_url %}
118
118
  {% assign twitter_label = quicklinks_options.twitter_label %}
119
119
 
120
+ {% assign buymeacoffee_icon = quicklinks_options.buymeacoffee_icon %}
121
+ {% assign buymeacoffee_url = quicklinks_options.buymeacoffee_url %}
122
+ {% assign buymeacoffee_label = quicklinks_options.buymeacoffee_label %}
123
+
120
124
  {% comment %} Action buttons
121
125
  -------------------------------------------------------------------------------- {% endcomment %}
122
126
  {% assign cookies_icon = quicklinks_options.cookies_icon %}
@@ -131,10 +135,15 @@ exclude_from_search: true
131
135
  {% assign translate_action = quicklinks_options.translate_action %}
132
136
  {% assign translate_label = quicklinks_options.translate_label %}
133
137
 
138
+ {% assign speak2me_icon = quicklinks_options.speak2me_icon %}
139
+ {% assign speak2me_action = quicklinks_options.speak2me_action %}
140
+ {% assign speak2me_label = quicklinks_options.speak2me_label %}
141
+
134
142
  {% assign theme_toggler_icon = quicklinks_options.theme_toggler_icon %}
135
143
  {% assign theme_toggler_action = quicklinks_options.theme_toggler_action %}
136
144
  {% assign theme_toggler_label = quicklinks_options.theme_toggler_label %}
137
145
 
146
+
138
147
  {% comment %} Unused buttons
139
148
  --------------------------------------------------------------------------------
140
149
  {% assign r_text_icon = quicklinks_options.r_text_icon %}
@@ -161,14 +170,15 @@ exclude_from_search: true
161
170
  {% assign control_center_url = cc_app_config_options.quicklinks_url %}
162
171
 
163
172
  {% comment %} Show|Hide QuickLink icons
173
+ <!-- authentication_enabled: {{ authentication_enabled | debug }} -->
164
174
  -------------------------------------------------------------------------------- {% endcomment %}
165
- {% assign show_quicksearch_icon = lunr_search_options.enabled %}
166
- {% assign show_translator_icon = translator_options.enabled %}
167
- {% assign show_theme_toggler_icon = toggler_options.enabled %}
168
- {% assign show_control_center_icon = cc_app_config_options.enabled %}
169
- {% assign show_auth_manager_icon = authentication_enabled %}
175
+ {% assign show_quicksearch_icon = lunr_search_options.enabled %}
176
+ {% assign show_translator_icon = translator_options.enabled %}
177
+ {% assign show_speak2me_icon = speak2me_options.enabled %}
178
+ {% assign show_theme_toggler_icon = toggler_options.enabled %}
170
179
 
171
- <!-- authentication_enabled: {{ authentication_enabled | debug }} -->
180
+ {% assign show_control_center_icon = cc_app_config_options.enabled %}
181
+ {% assign show_auth_manager_icon = authentication_enabled %}
172
182
 
173
183
  {% comment %} Show|Hide CookieConsent icon
174
184
  -------------------------------------------------------------------------------- {% endcomment %}
@@ -192,9 +202,8 @@ exclude_from_search: true
192
202
 
193
203
  {% comment %} QuickLink icons (Disabled)
194
204
  --------------------------------------------------------------------------------
195
-
196
205
  {% assign show_control_center_icon = cc_app_config_options.enabled %}
197
- {% assign show_notebooks_icon = nbi_defaults.enabled %}
206
+ {% assign show_notebooks_icon = nbi_defaults.enabled %}
198
207
 
199
208
  {% comment %} Show|Hide RSizer icon
200
209
  -------------------------------------------------------------------------------- {% endcomment %}
@@ -206,14 +215,12 @@ exclude_from_search: true
206
215
 
207
216
  {% comment %} Show|Hide Google Translate icon
208
217
  -------------------------------------------------------------------------------- {% endcomment %}
209
- {% assign show_google_translate_icon = true %}
210
- {% assign show_google_translate_lang = false %}
211
- {% assign translate_lang = 'gb' %}
212
-
218
+ {% assign show_google_translate_icon = true %}
219
+ {% assign show_google_translate_lang = false %}
220
+ {% assign translate_lang = 'gb' %}
213
221
  --------------------------------------------------------------------------------
214
222
  {% endcomment %}
215
223
 
216
-
217
224
  {% comment %} Select icon family and size (color set dynamically by adapter)
218
225
  -------------------------------------------------------------------------------- {% endcomment %}
219
226
  {% if quicklinks_options.icon_family == 'FontAwesome' or quicklinks_options.icon_family == 'FontAwesome4' or quicklinks_options.icon_family == 'FontAwesome5' %}
@@ -237,9 +244,11 @@ exclude_from_search: true
237
244
  {% endif %}
238
245
 
239
246
 
247
+
240
248
  {% comment %} Main
241
249
  ================================================================================ {% endcomment %}
242
250
  <!-- [INFO ][~/assets/data/quicklinks.html ] [ set meta data (robots) to exclude HTML datafiles from index ] -->
251
+ <!-- [INFO ][~/assets/data/quicklinks.html ] [ fick dich ins knie] -->
243
252
  <head>
244
253
  <meta name="robots" content="noindex, nofollow">
245
254
  </head>
@@ -255,13 +264,13 @@ exclude_from_search: true
255
264
 
256
265
  {% comment %} Link buttons
257
266
  ------------------------------------------------------------------------------ {% endcomment %}
258
- {% if back_url != "none" %}<li id="quickLinksBackButton" class="nav-icon"><a id="page_back_id" href="{{back_url}}" aria-label="{{back_label}}"><i class="nav-icon {{icon_family}} {{icon_family}}-{{back_icon}} {{icon_size}}"></i></a></li>{% endif %}
259
267
  {% if home_url != "none" %}<li id="quickLinksHomeButton" class="nav-icon"><a id="home_id" href="{{home_url}}" aria-label="{{home_label}}"><i class="nav-icon {{icon_family}} {{icon_family}}-{{home_icon}} {{icon_size}}"></i></a></li>{% endif %}
260
268
  {% if disqus_url != "none" %}<li id="quickLinksDisqusButton" class="nav-icon"><a id="disqus_id" href="{{disqus_url}}" aria-label="{{disqus_label}}" target="blank"><i class="nav-icon {{icon_family}} {{icon_family}}-{{disqus_icon}} {{icon_size}}"></i></a></li>{% endif %}
261
269
  {% if github_url != "none" %}<li id="quickLinksGithubButton" class="nav-icon"><a id="github_id" href="{{github_url}}" aria-label="{{github_label}}" target="blank"><i class="nav-icon {{icon_family}} {{icon_family}}-{{github_icon}} {{icon_size}}"></i></a></li>{% endif %}
262
270
  {% if patreon_url != "none" %}<li id="quickLinksPatreonButton" class="nav-icon"><a id="patreon_id" href="{{patreon_url}}" aria-label="{{patreon_label}}" target="blank"><i class="nav-icon {{icon_family}} {{icon_family}}-{{patreon_icon}} {{icon_size}}"></i></a></li>{% endif %}
263
271
  {% if facebook_url != "none" %}<li id="quickLinksFacebookButton" class="nav-icon"><a id="facebook_id" href="{{facebook_url}}" aria-label="{{facebook_label}}" target="blank"><i class="nav-icon {{icon_family}} {{icon_family}}-{{facebook_icon}} {{icon_size}}"></i></a></li>{% endif %}
264
272
  {% if twitter_url != "none" %}<li id="quickLinksTwitterButton" class="nav-icon"><a id="twitter_id" href="{{twitter_url}}" aria-label="{{twitter_label}}" target="blank"><i class="nav-icon {{icon_family}} {{icon_family}}-{{twitter_icon}} {{icon_size}}"></i></a></li>{% endif %}
273
+ {% if buymeacoffee_url != "none" %}<li id="quickLinksBuyMeAcoffeebutton" class="nav-icon"><a id="buymeacoffee_id" href="{{buymeacoffee_url}}" target="blank" aria-label="{{buymeacoffee_label}}"><i class="nav-icon {{icon_family}} {{icon_family}}-{{buymeacoffee_icon}} {{icon_size}}"></i></a></li>{% endif %}
265
274
 
266
275
  {% comment %} Action buttons
267
276
  ------------------------------------------------------------------------------ {% endcomment %}
@@ -269,6 +278,7 @@ exclude_from_search: true
269
278
  {% if show_auth_manager_icon %}<li id="quickLinksSignInOutButton" class="nav-icon sign-inout" style="display: none;"><a class="nav-icon" id="navLinkSignInOut" aria-label="SignOut" href="#" data-bs-toggle="modal" data-bs-target="#{{signin_modal_id}}"><i id="iconSignInOut" class="nav-icon {{icon_family}} {{icon_family}}-{{signin_icon}} {{icon_size}}"></i></a></li>{% endif %}
270
279
  {% if show_cookieconsent_icon %}<li id="quickLinksCookieButton" class="nav-icon {{cookies_action}}" style="display: block;"><a href="#" aria-label="{{cookies_label}}"><i class="nav-icon {{icon_family}} {{icon_family}}-{{cookies_icon}} {{icon_size}}"></i></a></li>{% endif %}
271
280
  {% if show_translator_icon %}<li id="quickLinksTranslateButton" class="nav-icon {{translate_action}}" style="display: block;"><a href="#" aria-label="{{translate_label}}"><i class="nav-icon {{icon_family}} {{icon_family}}-{{translate_icon}} {{icon_size}}"></i></a></li>{% endif %}
281
+ {% if show_speak2me_icon %}<li id="quickLinksSpeakButton" class="nav-icon {{speak2me_action}}" style="display: block;"><a href="#" aria-label="{{speak2me_label}}"><i class="nav-icon {{icon_family}} {{icon_family}}-{{speak2me_icon}} {{icon_size}}"></i></a></li>{% endif %}
272
282
  {% if show_theme_toggler_icon %}<li id="quickLinksThemeTogglerButton" class="nav-icon {{theme_toggler_action}}" style="display: block;"><a href="#" aria-label="{{theme_toggler_label}}"><i class="nav-icon {{icon_family}} {{icon_family}}-{{theme_toggler_icon}} {{icon_size}}"></i></a></li>{% endif %}
273
283
 
274
284
  {% comment %} Unused
@@ -0,0 +1,219 @@
1
+ ---
2
+ regenerate: true
3
+ exclude_from_search: true
4
+ ---
5
+
6
+ {% capture cache %}
7
+
8
+ {% comment %}
9
+ # -----------------------------------------------------------------------------
10
+ # ~/assets/data/speak2me.html
11
+ # Liquid PROCEDURE to generate the HTML (data) portion of modal used
12
+ # by the J1 speak2me module
13
+ #
14
+ # Product/Info:
15
+ # https://jekyll.one
16
+ #
17
+ # Copyright (C) 2023 Juergen Adams
18
+ #
19
+ # J1 Theme is licensed under the MIT License.
20
+ # See: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
21
+ # -----------------------------------------------------------------------------
22
+ # Test data:
23
+ # liquid_var: {{ liquid_var | debug }}
24
+ # config: {{ config | debug }}
25
+ # -----------------------------------------------------------------------------
26
+ {% endcomment %}
27
+
28
+ {% comment %} Liquid procedures
29
+ -------------------------------------------------------------------------------- {% endcomment %}
30
+
31
+ {% comment %} Set global settings
32
+ -------------------------------------------------------------------------------- {% endcomment %}
33
+ {% assign environment = site.environment %}
34
+
35
+ {% comment %} Set config files
36
+ -------------------------------------------------------------------------------- {% endcomment %}
37
+ {% assign modules = site.data.modules %}
38
+
39
+ {% comment %} Process YML config data
40
+ ================================================================================ {% endcomment %}
41
+
42
+ {% comment %} Set config files
43
+ -------------------------------------------------------------------------------- {% endcomment %}
44
+ {% assign speak2me_defaults = modules.defaults.speak2me.defaults %}
45
+ {% assign speak2me_settings = modules.speak2me.settings %}
46
+
47
+ {% comment %} Set config options
48
+ -------------------------------------------------------------------------------- {% endcomment %}
49
+ {% assign speak2me_options = speak2me_defaults | merge: speak2me_settings %}
50
+
51
+ {% comment %} Detect prod mode
52
+ -------------------------------------------------------------------------------- {% endcomment %}
53
+ {% assign production = false %}
54
+ {% if environment == 'prod' or environment == 'production' %}
55
+ {% assign production = true %}
56
+ {% endif %}
57
+
58
+
59
+ {% comment %} Main
60
+ ================================================================================ {% endcomment %}
61
+ <!-- [INFO ] [~/assets/data/translator.html ] [ set meta data (robots) to exclude HTML datafiles from index ] -->
62
+ <head>
63
+ <meta name="robots" content="noindex, nofollow">
64
+ </head>
65
+
66
+
67
+ {% comment %} Modal Speak2Me (tts dialog)
68
+ -------------------------------------------------------------------------------- {% endcomment %}
69
+ <!-- start modal container -->
70
+ <div id="speak2me-modal-data">
71
+ <!-- start modal -->
72
+ <div id="speak2me-modal"
73
+ class="modal-dialog modal-frame modal-top modal-notify modal-primary"
74
+ data-bs-backdrop="static"
75
+ data-bs-keyboard="false"
76
+ tabindex="-1" role="document">
77
+ <!-- start modal content -->
78
+ <div class="modal-content">
79
+
80
+ <div class="modal-header">
81
+ <p class="lead">{{speak2me_options.modal.title}}</p>
82
+ </div>
83
+
84
+ <!-- start modal body -->
85
+ <div class="modal-body">
86
+
87
+ <!-- start settings -->
88
+ <div class="settings-area mb-5" data-speak2me-ignore>
89
+ <h2 class="ml-2 mt-4 mb-4">{{speak2me_options.modal.settings.voice_settings_title}}</h2>
90
+ <div class="mb-3">
91
+ <div>
92
+ <!-- speed selector -->
93
+ <label class="form-label mr-3" for="rate">{{speak2me_options.modal.settings.voice_speed_label}}</label>
94
+ <input id="rate" class="form-range" style="height: unset"
95
+ name="rate"
96
+ type="range"
97
+ min="{{speak2me_options.modal.settings.voice_speed_min}}"
98
+ max="{{speak2me_options.modal.settings.voice_speed_max}}"
99
+ step="{{speak2me_options.modal.settings.voice_speed_step}}"
100
+ value="{{speak2me_options.modal.settings.voice_speed_value}}"
101
+ oninput="j1.adapter.speak2me.update(this, value)"
102
+ onchange="j1.adapter.speak2me.update(this, value)"
103
+ />
104
+ <span class="val ml-3">{{speak2me_options.modal.settings.voice_speed_value}}</span>
105
+ </div>
106
+ <div>
107
+ <!-- pitch selector -->
108
+ <label for="pitch" class="form-label mr-3">{{speak2me_options.modal.settings.voice_pitch_label}}</label>
109
+ <input id="pitch" class="form-range" style="height: unset"
110
+ name="pitch"
111
+ type="range"
112
+ min="{{speak2me_options.modal.settings.voice_pitch_min}}"
113
+ max="{{speak2me_options.modal.settings.voice_pitch_max}}"
114
+ step="{{speak2me_options.modal.settings.voice_pitch_step}}"
115
+ value="{{speak2me_options.modal.settings.voice_pitch_value}}"
116
+ oninput="j1.adapter.speak2me.update(this, value)"
117
+ onchange="j1.adapter.speak2me.update(this, value)"
118
+ />
119
+ <span class="val ml-3">{{speak2me_options.modal.settings.voice_pitch_value}}</span>
120
+ </div>
121
+ <div>
122
+ <!-- volume selector -->
123
+ <label for="volume" class="form-label mr-3">{{speak2me_options.modal.settings.voice_volume_label}}</label>
124
+ <input id="volume" class="form-range" style="height: unset"
125
+ name="volume"
126
+ type="range"
127
+ min="{{speak2me_options.modal.settings.voice_volume_min}}"
128
+ max="{{speak2me_options.modal.settings.voice_volume_max}}"
129
+ step="{{speak2me_options.modal.settings.voice_volume_step}}"
130
+ value="{{speak2me_options.modal.settings.voice_volume_value}}"
131
+ oninput="j1.adapter.speak2me.update(this, value)"
132
+ nchange="j1.adapter.speak2me.update(this, value)"
133
+ />
134
+ <span class="val ml-3">{{speak2me_options.modal.settings.voice_volume_value}}</span>
135
+ </div>
136
+
137
+ <div id="voiceSelector" class="ml-2 mt-3" ></div>
138
+
139
+ </div>
140
+
141
+ <h2 class="ml-2 mt-5 mb-3">{{speak2me_options.modal.settings.voice_control_title}}</h2>
142
+ <!-- start control buttons -->
143
+ <div class="ml-2">
144
+
145
+ <!-- speak button -->
146
+ <button type="button"
147
+ id="speak_button"
148
+ class="btn btn-{{speak2me_options.modal.settings.speak_button_style}} btn-sm"
149
+ style="min-width: 180px"
150
+ onclick="j1.adapter.speak2me.speak('{{speak2me_options.speechSelector}}')"
151
+ data-bs-dismiss="modal">
152
+ <i class="mdib mdib-speaker mdib-sm mr-2"></i>
153
+ {{speak2me_options.modal.settings.speak_button_text}}
154
+ </button>
155
+
156
+ <!-- stop button -->
157
+ <button type="button"
158
+ id="stop_button"
159
+ class="btn btn-{{speak2me_options.modal.settings.stop_button_style}} btn-sm"
160
+ style="min-width: 180px"
161
+ onclick="j1.adapter.speak2me.stop()"
162
+ data-bs-dismiss="modal">
163
+ <i class="mdib mdib-speaker-off mdib-sm mr-2"></i>
164
+ {{speak2me_options.modal.settings.stop_button_text}}
165
+ </button>
166
+
167
+ <!-- pause button -->
168
+ <button type="button"
169
+ id="pause_button"
170
+ class="btn btn-{{speak2me_options.modal.settings.pause_button_style}} btn-sm"
171
+ style="min-width: 180px"
172
+ onclick="j1.adapter.speak2me.pause()">
173
+ <i class="mdib mdib-pause mdib-sm mr-2"></i>
174
+ {{speak2me_options.modal.settings.pause_button_text}}
175
+ </button>
176
+
177
+ <!-- resume button -->
178
+ <button type="button"
179
+ id="resume_button"
180
+ class="btn btn-{{speak2me_options.modal.settings.resume_button_style}} btn-sm"
181
+ style="min-width: 180px"
182
+ onclick="j1.adapter.speak2me.resume()">
183
+ <i class="mdib mdib-play-pause mdib-sm mr-2"></i>
184
+ {{speak2me_options.modal.settings.resume_button_text}}
185
+ </button>
186
+
187
+ <!-- exit (modal) button -->
188
+ <button type="button"
189
+ id="exit_button"
190
+ class="btn btn-{{speak2me_options.modal.settings.exit_button_style}} btn-sm"
191
+ style="min-width: 180px"
192
+ data-bs-dismiss="modal">
193
+ <i class="mdib mdib-close mdib-sm mr-2"></i>
194
+ {{speak2me_options.modal.settings.exit_button_text}}
195
+ </button>
196
+ </div>
197
+ <!-- end control buttons -->
198
+ </div>
199
+ <!-- end settings -->
200
+ </div>
201
+ <!-- end modal body -->
202
+ </div>
203
+ <!-- end modal content -->
204
+ </div>
205
+ <!-- end modal -->
206
+ </div>
207
+ <!-- end modal container -->
208
+
209
+ {% comment %} END Modal Speak2Me (tts dialog)
210
+ -------------------------------------------------------------------------------- {% endcomment %}
211
+
212
+ {% endcapture %}
213
+
214
+ {% if production %}
215
+ {% capture _LINE_FEED %}{% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment %}{{ cache | strip_html_comments }}{% else %}{% capture _content %}{{ cache | strip_html_comments }}{% 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 %}{% 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>{{ cache | strip_html_comments | 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 %}
216
+ {% else %}
217
+ {{ cache | pretty_print | remove:'<html><body>' | remove:'</body></html>' | strip_empty_lines }}
218
+ {% endif %}
219
+ {% assign cache = nil %}
@@ -151,16 +151,44 @@ exclude_from_search: true
151
151
  </div>
152
152
 
153
153
  <div class="modal-footer">
154
- <button id="translator-buttonDoNotAgree" type="button" class="btn btn-outline-secondary mb-1 mr-2" style="min-width: 20rem">
154
+ <button
155
+ id="translator-buttonDoNotAgree"
156
+ type="button"
157
+ class="btn btn-outline-secondary mb-1 mr-2"
158
+ style="min-width: 20rem">
155
159
  No, disable translation
156
160
  </button>
157
- <button id="translator-buttonAgree" type="button" class="btn btn-primary mb-1 mr-2" style="min-width: 20rem">
161
+
162
+ <button
163
+ id="translator-buttonAgree"
164
+ type="button"
165
+ class="btn btn-primary mb-1 mr-2"
166
+ style="min-width: 20rem">
158
167
  Yes, please translate
159
168
  </button>
160
- <button id="translator-buttonSave" type="button" class="btn btn-outline-secondary mb-1 mr-2" style="display:none; min-width: 20rem">
169
+
170
+ <button
171
+ id="translator-buttonExit"
172
+ type="button"
173
+ class="btn btn-warning mb-1 mr-2"
174
+ style="min-width: 20rem"
175
+ data-bs-dismiss="modal">
176
+ Do nothing
177
+ </button>
178
+
179
+ <button
180
+ id="translator-buttonSave"
181
+ type="button"
182
+ class="btn btn-outline-secondary mb-1 mr-2"
183
+ style="display:none; min-width: 20rem">
161
184
  Save selection
162
185
  </button>
163
- <button id="translator-buttonAgreeAll" type="button" class="btn btn-primary mb-1 mr-2" style="display:none; min-width: 20rem">
186
+
187
+ <button
188
+ id="translator-buttonAgreeAll"
189
+ type="button"
190
+ class="btn btn-primary mb-1 mr-2"
191
+ style="display:none; min-width: 20rem">
164
192
  I Agree on all
165
193
  </button>
166
194
  </div>