j1-template 2024.3.13 → 2024.3.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (193) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/layouts/content_generator_news_panel_posts.html +1 -1
  3. data/_includes/themes/j1/layouts/layout_resource_generator.html +1 -4
  4. data/_includes/themes/j1/procedures/blocks/footer/boxes/social_media_icons.proc +24 -23
  5. data/_includes/themes/j1/procedures/layouts/content_writer.proc +4 -3
  6. data/_includes/themes/j1/procedures/layouts/default_writer.proc +37 -6
  7. data/_includes/themes/j1/procedures/layouts/module_writer.proc +31 -95
  8. data/_includes/themes/j1/procedures/layouts/resource_writer.proc +51 -29
  9. data/assets/data/amplitude.28.html +887 -0
  10. data/assets/data/amplitude.29.html +923 -0
  11. data/assets/data/amplitude.html +311 -46
  12. data/assets/data/banner.html +9 -7
  13. data/assets/data/masterslider.html +128 -7
  14. data/assets/data/panel.html +16 -65
  15. data/assets/theme/j1/adapter/js/amplitude.23.js +1165 -0
  16. data/assets/theme/j1/adapter/js/amplitude.24.js +1164 -0
  17. data/assets/theme/j1/adapter/js/amplitude.25.js +1268 -0
  18. data/assets/theme/j1/adapter/js/amplitude.js +294 -117
  19. data/assets/theme/j1/adapter/js/attic.js +14 -11
  20. data/assets/theme/j1/adapter/js/docsearch.js +2 -2
  21. data/assets/theme/j1/adapter/js/fab.js +2 -2
  22. data/assets/theme/j1/adapter/js/j1.js +8 -8
  23. data/assets/theme/j1/adapter/js/lazyLoader.js +60 -10
  24. data/assets/theme/j1/adapter/js/masonry.js +1 -1
  25. data/assets/theme/j1/adapter/js/masterslider.js +2 -2
  26. data/assets/theme/j1/adapter/js/particles.js +2 -2
  27. data/assets/theme/j1/adapter/js/scroller.js +2 -2
  28. data/assets/theme/j1/adapter/js/slick.js +2 -2
  29. data/assets/theme/j1/adapter/js/themes.js +1 -1
  30. data/assets/theme/j1/adapter/js/translator.js +2 -2
  31. data/assets/theme/j1/adapter/js/waves.js +1 -1
  32. data/assets/theme/j1/core/css/animate.css +1634 -1070
  33. data/assets/theme/j1/core/css/animate.css.map +1 -0
  34. data/assets/theme/j1/core/css/animate.min.css +2 -1
  35. data/assets/theme/j1/core/css/animate.min.css.map +1 -0
  36. data/assets/theme/j1/core/css/icon-fonts/fontawesome.css +3060 -1538
  37. data/assets/theme/j1/core/css/icon-fonts/fontawesome.css.map +1 -0
  38. data/assets/theme/j1/core/css/icon-fonts/fontawesome.min.css +2 -1
  39. data/assets/theme/j1/core/css/icon-fonts/fontawesome.min.css.map +1 -0
  40. data/assets/theme/j1/core/css/icon-fonts/iconify.css +2308 -1153
  41. data/assets/theme/j1/core/css/icon-fonts/iconify.css.map +1 -0
  42. data/assets/theme/j1/core/css/icon-fonts/iconify.min.css +2 -1
  43. data/assets/theme/j1/core/css/icon-fonts/iconify.min.css.map +1 -0
  44. data/assets/theme/j1/core/css/icon-fonts/mdi.css +16716 -8423
  45. data/assets/theme/j1/core/css/icon-fonts/mdi.css.map +1 -0
  46. data/assets/theme/j1/core/css/icon-fonts/mdi.min.css +2 -1
  47. data/assets/theme/j1/core/css/icon-fonts/mdi.min.css.map +1 -0
  48. data/assets/theme/j1/core/css/icon-fonts/mdib.css +5554 -2766
  49. data/assets/theme/j1/core/css/icon-fonts/mdib.css.map +1 -0
  50. data/assets/theme/j1/core/css/icon-fonts/mdib.min.css +2 -1
  51. data/assets/theme/j1/core/css/icon-fonts/mdib.min.css.map +1 -0
  52. data/assets/theme/j1/core/css/icon-fonts/mdil.css +742 -441
  53. data/assets/theme/j1/core/css/icon-fonts/mdil.css.map +1 -0
  54. data/assets/theme/j1/core/css/icon-fonts/mdil.min.css +2 -1
  55. data/assets/theme/j1/core/css/icon-fonts/mdil.min.css.map +1 -0
  56. data/assets/theme/j1/core/css/themes/bootstrap/bootstrap.css +6552 -3980
  57. data/assets/theme/j1/core/css/themes/bootstrap/bootstrap.css.map +1 -0
  58. data/assets/theme/j1/core/css/themes/bootstrap/bootstrap.min.css +2 -5
  59. data/assets/theme/j1/core/css/themes/bootstrap/bootstrap.min.css.map +1 -0
  60. data/assets/theme/j1/core/css/themes/unodark/bootstrap.css +6818 -4131
  61. data/assets/theme/j1/core/css/themes/unodark/bootstrap.css.map +1 -0
  62. data/assets/theme/j1/core/css/themes/unodark/bootstrap.min.css +2 -5
  63. data/assets/theme/j1/core/css/themes/unodark/bootstrap.min.css.map +1 -0
  64. data/assets/theme/j1/core/css/themes/unolight/bootstrap.css +18568 -11577
  65. data/assets/theme/j1/core/css/themes/unolight/bootstrap.css.map +1 -0
  66. data/assets/theme/j1/core/css/themes/unolight/bootstrap.min.css +2 -35
  67. data/assets/theme/j1/core/css/themes/unolight/bootstrap.min.css.map +1 -0
  68. data/assets/theme/j1/core/css/vendor.css +1771 -1043
  69. data/assets/theme/j1/core/css/vendor.css.map +1 -0
  70. data/assets/theme/j1/core/css/vendor.min.css +2 -1
  71. data/assets/theme/j1/core/css/vendor.min.css.map +1 -0
  72. data/assets/theme/j1/core/js/template.js +399 -447
  73. data/assets/theme/j1/core/js/template.min.js +7 -7
  74. data/assets/theme/j1/core/js/template.min.js.map +1 -1
  75. data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/amplitude.css +4 -2
  76. data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/compact.css +39 -4
  77. data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/compact.min.css +1 -1
  78. data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/large.css +57 -17
  79. data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/large.min.css +1 -1
  80. data/assets/theme/j1/modules/amplitudejs/icons/player/blue/pause.png +0 -0
  81. data/assets/theme/j1/modules/amplitudejs/icons/player/blue/play.png +0 -0
  82. data/assets/theme/j1/modules/amplitudejs/icons/player/blue/play.svg +87 -0
  83. data/assets/theme/j1/modules/amplitudejs/icons/player/dark/skip-backward.svg +60 -0
  84. data/assets/theme/j1/modules/amplitudejs/icons/player/dark/skip-forward.svg +59 -0
  85. data/assets/theme/j1/modules/amplitudejs/js/amplitude.js +65 -21
  86. data/assets/theme/j1/modules/amplitudejs/js/amplitude.min.js +1 -1
  87. data/assets/theme/j1/modules/amplitudejs/js/tech/ytp.js +113 -0
  88. data/assets/theme/j1/modules/iconPicker/js/universal-icon-picker.js +471 -471
  89. data/assets/theme/j1/modules/j1LazyLoader/LICENSE +21 -0
  90. data/assets/theme/j1/modules/j1LazyLoader/js/j1Lazy.js +870 -0
  91. data/assets/theme/j1/modules/js-cookies/js/js.cookie.js +3 -3
  92. data/assets/theme/j1/modules/lazyCssLoader/js/main.0.js +166 -0
  93. data/assets/theme/j1/modules/lazyCssLoader/js/main.1.js +65 -0
  94. data/assets/theme/j1/modules/lazyCssLoader/js/main.js +66 -0
  95. data/assets/theme/j1/modules/lazyCssLoader/js/plugins/examplePlugin.js +13 -0
  96. data/assets/theme/j1/modules/lazyCssLoader/js/plugins/my-plugin.js +25 -0
  97. data/assets/theme/j1/modules/lazyCssLoader/js/plugins/plugin-interface.js +9 -0
  98. data/assets/theme/j1/modules/lazyCssLoader/js/plugins/pluginA.js +46 -0
  99. data/assets/theme/j1/modules/lazyLoader/js/plugins/README.md +324 -0
  100. data/assets/theme/j1/modules/lazyLoader/js/plugins/jquery.lazy.picture.js +188 -0
  101. data/assets/theme/j1/modules/lightGallery/js/lightgallery.js +1 -1
  102. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-video.0.js +794 -0
  103. data/assets/theme/j1/modules/lightGallery/js/plugins/lg-video.js +151 -67
  104. data/assets/theme/j1/modules/slimSelect/js/select.js +1 -1
  105. data/assets/theme/j1/modules/slimSelect/js/select.min.js +3 -3
  106. data/assets/theme/j1/modules/themeSwitcher/js/switcher.js +2 -1
  107. data/assets/theme/j1/modules/videojs/js/plugins/players/dm/dailymotion.min.js +1 -1
  108. data/assets/theme/j1/modules/videojs/js/plugins/players/dm/icon/scalable/dailymotion.svg +62 -0
  109. data/assets/theme/j1/modules/videojs/js/plugins/players/yt/v3.0.0/youtube.js +832 -0
  110. data/assets/theme/j1/modules/videojs/js/plugins/players/yt/v3.0.0/youtube.min.js +17 -0
  111. data/assets/theme/j1/modules/videojs/js/plugins/players/yt/youtube.min.js +1 -1
  112. data/assets/theme/j1/modules/videojs/js/video.js +2 -2
  113. data/lib/j1/version.rb +1 -1
  114. data/lib/starter_web/README.md +577 -560
  115. data/lib/starter_web/_config.yml +2 -2
  116. data/lib/starter_web/_data/blocks/footer.yml +10 -5
  117. data/lib/starter_web/_data/blocks/panel.yml +2 -2
  118. data/lib/starter_web/_data/layouts/default.yml +14 -3
  119. data/lib/starter_web/_data/modules/amplitude.yml +145 -0
  120. data/lib/starter_web/_data/modules/defaults/amplitude.yml +29 -7
  121. data/lib/starter_web/_data/modules/defaults/lazyLoader.yml +2 -2
  122. data/lib/starter_web/_data/modules/gallery.yml +136 -0
  123. data/lib/starter_web/_data/modules/lazyLoader.0.yml +118 -0
  124. data/lib/starter_web/_data/modules/lazyLoader.yml +68 -31
  125. data/lib/starter_web/_data/modules/masonry.yml +4 -4
  126. data/lib/starter_web/_data/modules/masterslider.yml +118 -12
  127. data/lib/starter_web/_data/modules/navigator_menu.yml +831 -803
  128. data/lib/starter_web/_data/resources.yml +154 -190
  129. data/lib/starter_web/_data/templates/feed.xml +1 -1
  130. data/lib/starter_web/_includes/attributes.asciidoc +1 -0
  131. data/lib/starter_web/_plugins/asciidoctor/amplitude-block.rb +1 -1
  132. data/lib/starter_web/_plugins/asciidoctor/dailymotion-block.rb +1 -1
  133. data/lib/starter_web/_plugins/asciidoctor/gallery-block.rb +4 -2
  134. data/lib/starter_web/_plugins/asciidoctor/masonry-block.rb +1 -1
  135. data/lib/starter_web/_plugins/asciidoctor/videojs-block.rb +58 -46
  136. data/lib/starter_web/_plugins/asciidoctor/vimeo-block.rb +26 -19
  137. data/lib/starter_web/_plugins/asciidoctor/youtube-block.rb +30 -40
  138. data/lib/starter_web/_plugins/index/lunr.rb +1 -1
  139. data/lib/starter_web/assets/image/icons/lanus/favicon.ico +0 -0
  140. data/lib/starter_web/assets/image/icons/lanus/lanus-512x512.png +0 -0
  141. data/lib/starter_web/assets/image/icons/lanus/lanus.ico +0 -0
  142. data/lib/starter_web/assets/image/icons/lanus/lanus.png +0 -0
  143. data/lib/starter_web/assets/image/icons/lanus/scalable/lanus.svg +76 -0
  144. data/lib/starter_web/assets/image/icons/lanus/scalable/lanus_sw.svg +62 -0
  145. data/lib/starter_web/assets/image/modules/icons/social/scalable/icon-twitter-x-28 - social.svg +86 -0
  146. data/lib/starter_web/assets/image/modules/icons/social/scalable/icon-twitter-x-28.svg +64 -0
  147. data/lib/starter_web/assets/image/modules/icons/social/scalable/icon-twitter-x.svg +1 -0
  148. data/lib/starter_web/assets/image/modules/icons/social/twitter_x.png +0 -0
  149. data/lib/starter_web/package.json +7 -18
  150. data/lib/starter_web/pages/public/amplitude_yt_tester.adoc +218 -0
  151. data/lib/starter_web/pages/public/features/template.adoc +18 -8
  152. data/lib/starter_web/pages/public/features/template.asciidoc +758 -0
  153. data/lib/starter_web/pages/public/lazy_loader_tester.adoc +402 -0
  154. data/lib/starter_web/pages/public/manuals/ytdl/man.adoc +3020 -0
  155. data/lib/starter_web/pages/public/manuals/ytdl/man.md +2378 -0
  156. data/lib/starter_web/pages/public/tools/previewer/_includes/attributes.asciidoc +0 -16
  157. data/lib/starter_web/pages/public/tools/previewer/_includes/documents/amplitudejs.large.css.asciidoc +505 -0
  158. data/lib/starter_web/pages/public/tools/previewer/_includes/documents/frame.hover.html +69 -0
  159. data/lib/starter_web/pages/public/tools/previewer/_includes/documents/frame.nested.html +75 -0
  160. data/lib/starter_web/pages/public/tools/previewer/_includes/documents/frame.textarea.html +57 -0
  161. data/lib/starter_web/pages/public/tools/previewer/_includes/documents/my.content.html +112 -0
  162. data/lib/starter_web/pages/public/tools/previewer/preview_amplitudejs.adoc +172 -0
  163. data/lib/starter_web/pages/public/tour/_includes/attributes.asciidoc +2 -2
  164. data/lib/starter_web/pages/public/tour/_includes/documents/419_advanced_modals_demo.asciidoc +16 -16
  165. data/lib/starter_web/pages/public/tour/asciidoc_extensions.adoc +13 -3
  166. data/lib/starter_web/pages/public/tour/bootstrap_themes.adoc +12 -3
  167. data/lib/starter_web/pages/public/tour/highlghter_rouge.adoc +13 -3
  168. data/lib/starter_web/pages/public/tour/icon_fonts.adoc +12 -3
  169. data/lib/starter_web/pages/public/tour/modal_extentions.adoc +12 -6
  170. data/lib/starter_web/pages/public/tour/{playback_audio.adoc → play_audio.adoc} +207 -188
  171. data/lib/starter_web/pages/public/tour/{playback_video.adoc → play_video.adoc} +49 -51
  172. data/lib/starter_web/pages/public/tour/present_images.adoc +27 -5
  173. data/lib/starter_web/pages/public/tour/quicksearch.adoc +13 -3
  174. data/lib/starter_web/pages/public/tour/responsive_tables.adoc +13 -4
  175. data/lib/starter_web/pages/public/tour/typography.adoc +12 -3
  176. metadata +90 -22
  177. /data/assets/theme/j1/modules/{lazyLoader → j1LazyLoader/js}/plugins/README.md +0 -0
  178. /data/assets/theme/j1/modules/{lazyLoader/plugins/jquery.lazy.picture.js → j1LazyLoader/js/plugins/picture.js} +0 -0
  179. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.ajax.js +0 -0
  180. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.ajax.min.js +0 -0
  181. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.av.js +0 -0
  182. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.av.min.js +0 -0
  183. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.iframe.js +0 -0
  184. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.iframe.min.js +0 -0
  185. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.noop.js +0 -0
  186. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.noop.min.js +0 -0
  187. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.picture.min.js +0 -0
  188. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.script.js +0 -0
  189. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.script.min.js +0 -0
  190. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.vimeo.js +0 -0
  191. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.vimeo.min.js +0 -0
  192. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.youtube.js +0 -0
  193. /data/assets/theme/j1/modules/lazyLoader/{plugins → js/plugins}/jquery.lazy.youtube.min.js +0 -0
@@ -0,0 +1,758 @@
1
+ ---
2
+ title: Features
3
+ tagline: Modules, Extensions and Integrations
4
+
5
+ date: 2021-01-01
6
+ #last_modified: 2023-01-01
7
+
8
+ description: >
9
+ J1 Template is a Bootstrap V5 website template for the static
10
+ site generator Jekyll.
11
+ For Jekyll, a huge number of templates are available that cover
12
+ all typical use cases for websites. The bad story: most of them
13
+ require programming and low-level customization. Deep knowledge
14
+ of Jekyll and valuable experience using HTML, CSS, and Javascript
15
+ is required. J1 Template is different: easy to use, no programming
16
+ is needed.
17
+ keywords: >
18
+ Jekyll, JekyllOne, Theme, Software, Modules, Extensions, Integrations
19
+
20
+ categories: [ Features ]
21
+ tags: [ Module, Extension, Integration ]
22
+
23
+ robots:
24
+ index: true
25
+ follow: true
26
+
27
+ image:
28
+ path: /assets/image/modules/attics/christina-1920x1280.jpg
29
+ width: 1920
30
+ height: 1280
31
+
32
+ regenerate: false
33
+ permalink: /pages/public/features/template_features/
34
+
35
+ resources: [
36
+ animate, comments, rouge,
37
+ lightbox, carousel,
38
+ masterslider, lightgallery, gallery,
39
+ videojs, vimeoplayer
40
+ ]
41
+ resource_options:
42
+ - attic:
43
+ slides:
44
+ - url: /assets/image/modules/attics/christina-1920x1280.jpg
45
+ alt: Photo by Christina on Unsplash
46
+ badge:
47
+ type: unsplash
48
+ author: Christina
49
+ href: //unsplash.com/@wocintechchat
50
+ ---
51
+
52
+ // Page Initializer
53
+ // =============================================================================
54
+ // Enable the Liquid Preprocessor
55
+ :page-liquid:
56
+
57
+ // Set (local) page attributes here
58
+ // -----------------------------------------------------------------------------
59
+ // :page--attr: <attr-value>
60
+ :url-fontawesome--home: https://fontawesome.com/
61
+ :url-roundtrip--mdi-icons: /pages/public/tour/mdi_icon_font/#material-design-icons
62
+
63
+ // Load Liquid procedures
64
+ // -----------------------------------------------------------------------------
65
+ {% capture load_attributes %}themes/{{site.template.name}}/procedures/global/attributes_loader.proc{%endcapture%}
66
+
67
+ // Load page attributes
68
+ // -----------------------------------------------------------------------------
69
+ {% include {{load_attributes}} scope="global" %}
70
+
71
+
72
+ // Page content
73
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
74
+ [role="dropcap"]
75
+ For Jekyll, a huge number of templates are available that cover all typical
76
+ use cases for websites. The bad story: most of them require programming and
77
+ low-level customization. Deep knowledge of Jekyll and valuable experience
78
+ using HTML, CSS, and Javascript is required.
79
+
80
+ J1 is different: easy to use, no programming is needed.
81
+
82
+
83
+ // Include sub-documents (if any)
84
+ // -----------------------------------------------------------------------------
85
+ [role="mt-5"]
86
+ == Modules
87
+
88
+ The Template provides a large number of building blocks to create modern
89
+ web pages in minutes. The base idea of the J1 Template is to give all people
90
+ a toolset at their hands to create a website with no need to start web
91
+ development or web design from the beginning.
92
+
93
+ mdi:mouse-move-down[24px, md-blue ml-3 mr-2]
94
+ <<Infinite scroll>> +
95
+ mdi:speaker[24px, md-blue ml-3 mr-2]
96
+ <<Screen reader>> +
97
+ mdi:mouse-move-down[24px, md-blue ml-3 mr-2]
98
+ <<Animate on Scroll>> +
99
+ mdi:animation[24px, md-blue ml-3 mr-2]
100
+ <<Floating Action Buttons>> +
101
+ mdi:magnify[24px, md-blue ml-3 mr-2]
102
+ <<Full-text search engine>> +
103
+ mdi:cookie[24px, md-blue ml-3 mr-2]
104
+ <<Cookie Consent>> +
105
+ mdi:translate[24px, md-blue ml-3 mr-2]
106
+ <<Translator>> +
107
+ mdi:window-shutter[24px, md-blue ml-3 mr-2]
108
+ <<Master Header>> +
109
+ mdi:clipboard[24px, md-blue ml-3 mr-2]
110
+ <<Clipboard>> +
111
+ mdi:forwardburger[24px, md-blue mdi-rotate-90 ml-3 mr-2]
112
+ <<Smooth Scroll>> +
113
+ mdi:near-me[24px, md-blue ml-3 mr-2]
114
+ <<Enhanced Navigation>> +
115
+ mdi:lightbulb-on[24px, md-blue ml-3 mr-2]
116
+ <<Lightboxes>> +
117
+ mdi:view-carousel[24px, md-blue ml-3 mr-2]
118
+ <<Text and Image Carousels>> +
119
+ mdi:gesture-swipe[24px, md-blue ml-3 mr-2]
120
+ <<Text and Image Sliders>> +
121
+ mdi:folder-multiple-image[24px, md-blue ml-3 mr-2]
122
+ <<Image and Video Galleries>>
123
+
124
+ [role="mt-4"]
125
+ === Infinite scroll
126
+
127
+ Infinite scrolling (IS), or known as endless scrolling, is a technique that
128
+ loads more content as a user scrolls down the page. It allows visitors to
129
+ continue reading the content by scrolling seamlessly and not by loading
130
+ additional pages.
131
+
132
+ J1 Template supports infinite scrolling and is used, for example, for loading
133
+ previews of blog articles.
134
+
135
+ [role="mt-4"]
136
+ === Screen reader
137
+
138
+ Speak2Me for J1 Template is a speech synthesise (TTS) module that enables a
139
+ so-called screen reader. The reader functionality allows users to sit back
140
+ and listen to the browser read aloud the important contents on a Web page.
141
+
142
+ The *screen reader* on websites created by J1 Template is started by
143
+ clicking on the *speaker* symbol mdi:speaker[24px, md-blue] placed top
144
+ right in the *menu bar*.
145
+
146
+ [role="mt-4"]
147
+ === Animate on Scroll
148
+
149
+ Scroll-triggered animation (AOS) is an effective way to animate website
150
+ elements such as text, graphics, photos, and video, bringing them to life
151
+ as users scroll down a page. Scroll animations are more likely to grab the
152
+ user's attention, making websites look and feel more dynamic and
153
+ interesting.
154
+
155
+ [role="mt-4"]
156
+ === Floating Action Buttons
157
+
158
+ The *Floating Action Button* (FAB) is an element of Google's Material Design.
159
+ A FAB represents the primary action in an application, or triggers additional
160
+ functions for a webpage. FABs are increasingly used on the web and serves to
161
+ enable important actions for a page, but separated from the main navigation.
162
+
163
+ .FAB (Menu)
164
+ lightbox::images--fab[ 1920, {data-images--fab} ]
165
+
166
+ The template system supports Floating Action Buttons for in-page navigation.
167
+ When the FAB is pressed, it provides more related actions like showing the
168
+ content table or scrolling a page chapter-wise up and down.
169
+
170
+ [role="mt-4"]
171
+ === Full-text search engine
172
+
173
+ Full-text search (FTS) for a website is an advanced method of searching
174
+ through all documents. FTS promises fast retrieval of data with advanced
175
+ indexing and more intuitive search results based on relevance.
176
+
177
+ .Full-text search
178
+ lightbox::images--full-text-search[ 1920, {data-images--full-text-search} ]
179
+
180
+ J1 implements Lunr for indexing the whole website. The engine is designed
181
+ to be small but full-featured. Lunr enables developers to provide visitors
182
+ with a great search experience without the need for external, server-sided
183
+ search services like Google on the internet.
184
+
185
+ [role="mt-4"]
186
+ === Cookie Consent
187
+
188
+ Running websites in the EU and many other countries, implementing the
189
+ *General Data Protection Regulation* (GDPR) is required to make a website
190
+ compliant with the *ePrivacy* regulations of the European Unions and
191
+ associated countries.
192
+
193
+ .Cookie Consent
194
+ lightbox::images--cookie-consent[ 1920, {data-images--cookie-consent} ]
195
+
196
+ Under the GDPR, *most cookies* will fall into the category of *personal data*
197
+ because they can identify visitors and can be used to provide website
198
+ personalization and even profiling of individuals. As a result, you will
199
+ need a *legal basis* for processing the data contained within those cookies.
200
+ That legal basis is most likely going to be the CONSENT of your visitors on
201
+ accepting the use of cookies.
202
+
203
+ The Template system provides a configurable GDPR compliant module to manage
204
+ the consent of your visitors on cookies.
205
+
206
+ [role="mt-4"]
207
+ === Translator
208
+
209
+ A Website translation service is useful in a wide range of situations.
210
+ In today’s interconnected and global world English is no longer enough.
211
+ Most online content is still written in English, while the language is
212
+ just ranked 3rd in terms of the highest number of native speakers among all
213
+ languages worldwide.
214
+
215
+ .Native speakers by language
216
+ lightbox::lingohub--speakers-by-language[ 1920, {data-lingohub--speakers-by-language} ]
217
+
218
+ Source: link:{url-lingohub--speakers-by-language}[lingohub.com, {browser-window--new}]
219
+
220
+ In 2015 it was necessary to support 25 languages to reach 90 percent of the
221
+ entire Internet population in their native language. By 2020, a website will
222
+ require localization into 48 languages to reach the same proportion of the
223
+ global Internet audience.
224
+
225
+ Localization adapts a website to cultural backgrounds and local languages.
226
+ Translation makes it easier for users to browse content and find what they’re
227
+ looking for. An excellent user experience and understanding the language are
228
+ key for building trust in the content you provide.
229
+
230
+ .Translator configuration (j1_config.yml)
231
+ [source, yaml, role="noclip"]
232
+ ----
233
+ translation:
234
+ enabled: true
235
+ provider: google
236
+
237
+ google:
238
+ layout: default
239
+ sourcelanguage: en
240
+ translationlanguages: [auto]
241
+ ----
242
+
243
+ J1 integrates the *free* translation service provided by Google Translate
244
+ (GT) and the *professional* translation services of Deepl (DT). If you want
245
+ to get a larger number of international audiences, translating your site can
246
+ help target your global audience more easily and quickly.
247
+
248
+ .Google Translator
249
+ lightbox::images--translator[ 1920, {data-images--translator} ]
250
+
251
+ GT is fully integrated with the GDPR-compatible Cookie Consent module. If your
252
+ visitors do not agree on cookies required to use Google Translate, GT gets
253
+ automatically disabled, and all cookies from Google are deleted from the
254
+ user's system.
255
+
256
+ [role="mt-4"]
257
+ === Master Header
258
+
259
+ The most-top position of a web page is important; this postion is presented to
260
+ your vistors very first. The Master Header (Attic) give your reader a first
261
+ impression of what is presented on a page.
262
+
263
+ Attics may contains (dynamic) *Text*, *Images* or *Videos* to support a page
264
+ for the content presented.
265
+
266
+ .Master Header (image-based)
267
+ lightbox::images--master-header[ 1920, {data-images--master-header} ]
268
+
269
+ [role="mt-4"]
270
+ === Clipboard
271
+
272
+ The clipboard is a special function of the operating system of desktop or
273
+ mobile computers that temporarily stores copied text or other data in memory.
274
+ Once something is stored in the clipboard, comments, the user can paste the
275
+ data to a new location.
276
+
277
+ [TIP]
278
+ ====
279
+ Click on the *COPY* button (top-right) in the following source code
280
+ section.
281
+ ====
282
+
283
+ .Clipboard
284
+ [source, js]
285
+ ----
286
+ // ---------------------------------------------------------------
287
+ // helper functions
288
+ // ---------------------------------------------------------------
289
+ function styleSheetLoaded(styleSheet) {
290
+ var sheets = document.styleSheets,
291
+ stylesheet = sheets[(sheets.length - 1)];
292
+
293
+ // find CSS file 'styleSheetName' in document
294
+ for(var i in document.styleSheets) {
295
+ if(sheets[i].href && sheets[i].href.indexOf(styleSheet) > -1) {
296
+ return true;;
297
+ }
298
+ }
299
+ }
300
+ ----
301
+
302
+ J1 integrates the clipboard functionality of your computer system to copy and
303
+ paste examples or code elements from a webpage. A clipboard will help your
304
+ users a lot to manage the code snippets you’ve provided.
305
+
306
+ [role="mt-4"]
307
+ === Smooth Scroll
308
+
309
+ Smooth scrolling (SSR) is an enhanced feature of J1 designed to improve
310
+ scrolling and positioning on anchor links. If SSR is enabled, an animated
311
+ transition is done for scrolling to headlines (anchor links) and gets
312
+ exactly positioned.
313
+
314
+ [role="mt-4"]
315
+ === Enhanced Navigation
316
+
317
+ When it comes to the usability of a website, your visitors' focus is on one
318
+ important component: the Navigation System. The Navigation System used by
319
+ J1 Template is a multi-purpose navigation builder based on the _Bootstrap_ V5
320
+ Framework.
321
+
322
+ .Navigation Module (NAV)
323
+ lightbox::images--nav-module[ 1920, {data-images--nav-module} ]
324
+
325
+ The NAV module for J1 consists of four configurable sub-modules:
326
+
327
+ * Navigation Bar
328
+ * MainMenu
329
+ * Quicklinks
330
+ * TopSearch
331
+
332
+ All features are available by configuration, and no programming is needed.
333
+
334
+ .Configuration example for main menu entry (navigator_menu.yml)
335
+ [source, yaml, role="noclip"]
336
+ ----
337
+ # ------------------------------------------------------------------------------
338
+ # Menu MANUALS
339
+ #
340
+ - item: Manuals
341
+ sublevel:
342
+
343
+ # --------------------------------------------------------------------------
344
+ # Resources
345
+ #
346
+ - title: Resources
347
+ icon: bread-slice
348
+ dropdown:
349
+ - title: Country Flags
350
+ href: /pages/public/manuals/resources/country_flags/
351
+ icon: flag
352
+ - title: MD Color Palette
353
+ href: /pages/public/manuals/resources/color_palette/
354
+ icon: format-color-fill
355
+ ----
356
+
357
+ [role="mt-4"]
358
+ === Lightboxes
359
+
360
+ A Lightbox is, in general, a helper which displays enlarged, almost
361
+ screen-filling versions of images (or videos) while dimming the remainder
362
+ of the page. For the J1 Template, two different lightboxes are available:
363
+
364
+ * Lightbox V2
365
+ * LightGallery
366
+
367
+ The default tool employed by J1 Template is Lightbox V2, a Javascript library
368
+ written by Lokesh Dhakar.
369
+
370
+ .Markup to place a Lightbox V2 (Asciidoc)
371
+ [source, apib, role="noclip"]
372
+ ----
373
+ .Lightbox V2
374
+ lightbox::lb-example--template-features[ 300, {data-lb-example--template-features}, group ]
375
+ ----
376
+
377
+ .Lightbox V2
378
+ lightbox::lb-example--template-features[ 300, {data-lb-example--template-features}, group ]
379
+
380
+ For more complex use cases, like thumbnail gallery previews or video support,
381
+ LightGallery can be used alternatively.
382
+
383
+ .Markup to place a LightGallery (Asciidoc)
384
+ [source, apib, role="noclip"]
385
+ ----
386
+ .LightGallery
387
+ gallery::jg_old_times[ role="mb-4 wm-800" ]
388
+ ----
389
+
390
+ .LightGallery
391
+ gallery::jg_old_times[ role="mb-4 wm-800" ]
392
+
393
+ [role="mt-4"]
394
+ === Text and Image Carousels
395
+
396
+ J1 Carousel is based on OWL Carousel, a clean and neat jQuery slider plugin
397
+ for creating fully responsive and touch-enabled carousel sliders. Carousels
398
+ are mostly used for pictures data to animate the images as a series.
399
+
400
+ .Markup to place a Image carousel (Asciidoc)
401
+ [source, apib, role="noclip"]
402
+ ----
403
+ .Image carousel
404
+ carousel::demo_simple[role="mb-3"]
405
+ ----
406
+
407
+ .Image carousel
408
+ carousel::demo_simple[role="mb-3"]
409
+
410
+ In general, J1 Carousel supports many more sources to be displayed as a
411
+ slide show: simple text, for example.
412
+
413
+ .Markup to place a Text carousel (Asciidoc)
414
+ [source, apib, role="noclip"]
415
+ ----
416
+ .Text carousel
417
+ carousel::demo_text_carousel[role="mb-3"]
418
+ ----
419
+
420
+ .Text carousel
421
+ carousel::demo_text_carousel[role="mb-3"]
422
+
423
+ A more eye-minded type of text-based slide show is a parallax text slider.
424
+ If you want to emphasize your statements focussing on the meaning, this kind
425
+ of slide show may be interesting.
426
+
427
+ .Markup to place a Parallax carousel (Asciidoc)
428
+ [source, apib, role="noclip"]
429
+ ----
430
+ .Parallax carousel
431
+ carousel::demo_text_carousel_parallax[role="mb-3"]
432
+ ----
433
+
434
+ .Parallax text carousel
435
+ carousel::demo_text_carousel_parallax[role="mb-3"]
436
+
437
+ [role="mt-4"]
438
+ === Text and Image Sliders
439
+
440
+ Master Slider is a premium image and content slider for any purposes, with
441
+ super smooth hardware accelerated transitions. MS is a well-known Slider Plugin
442
+ for _WordPress_. J1 implements the *free* version MS Lite of version v2.85.13
443
+ (Feb 2022).
444
+
445
+ masterslider::ms_00005[role="mt-4 mb-5"]
446
+
447
+ masterslider::ms_00006[role="mt-4 mb-5"]
448
+
449
+ masterslider::ms_00009[role="mt-4 mb-5"]
450
+
451
+ [role="mt-5"]
452
+ === Image and Video Galleries
453
+
454
+ Image and Video Galleries allow you to lay out groups of images or videos
455
+ in very different ways. J1 supports JustifiedGallery is a great jQuery plugin
456
+ to create responsive, infinite, and high-quality justified image galleries.
457
+ The gallery uses a so-called masonry grid layout. It works by placing
458
+ elements in an optimal position based on available horizontal and vertical
459
+ space. Sort of like mason fitting stones in a wall.
460
+
461
+ .Markup to place the Image Gallery (Asciidoc)
462
+ [source, apib, role="noclip"]
463
+ ----
464
+ .Image Gallery
465
+ gallery::jg_example[role="mb-5"]
466
+ ----
467
+
468
+ .Image Gallery
469
+ gallery::jg_customizer[role="mb-5"]
470
+
471
+ A JustifiedGallery provides not only images. See the next example of a gallery
472
+ for HTML5 video content.
473
+
474
+ .Markup to place the Video Gallery (Asciidoc)
475
+ [source, apib, role="noclip"]
476
+ ----
477
+ .Video Gallery (HTML5)
478
+ gallery::jg_video_html5[role="mb-5"]
479
+ ----
480
+
481
+ .Video Gallery (HTML5)
482
+ gallery::jg_video_html5[role="mb-5"]
483
+
484
+ [role="mt-4"]
485
+ == Extensions
486
+
487
+ Frameworks like _Bootstrap_ and Asciidoc are enormously flexible and customizable.
488
+ Changing or adding components to frameworks requires a lot of experience. That
489
+ is not the idea of J1. Customizations for the base frameworks are prepared,
490
+ simple to use, and usable out-of-the-box.
491
+
492
+ mdi:bootstrap[24px, md-blue ml-3 mr-2]
493
+ <<Bootstrap extensions>> +
494
+ mdi:group[24px, md-blue ml-3 mr-2]
495
+ <<Blog Post Navigation>> +
496
+ mdi:format-annotation-plus[24px, md-blue ml-3 mr-2]
497
+ <<Block elements>> +
498
+ mdi:near-me[24px, md-blue ml-3 mr-2]
499
+ <<Asciidoctor extensions>> +
500
+ mdi:content-duplicate[24px, md-blue ml-3 mr-2]
501
+ <<Featured example content>> +
502
+ mdi:image[24px, md-blue ml-3 mr-2]
503
+ <<Royalty Free Images>>
504
+
505
+ [role="mt-4"]
506
+ === Bootstrap extensions
507
+
508
+ A set of Advanced Bootstrap Modals (ABM), based on the free package of Material
509
+ Design for Bootstrap, is integrated with the template system. _Bootstrap_
510
+ modals are used to add dialogues to your web pages for user notifications.
511
+
512
+ To improve your visitor’s experience on important information that shouldn’t
513
+ be missed. ABMs are a great choice to bring the user’s attention. Using the
514
+ J1 Template predefined modal styles, some emotional weight is added to the
515
+ information displayed. Ranging from an info level, a simple warning to
516
+ critical messages.
517
+
518
+ Creating a design for responsive HTML tables is challenging. J1 integrates
519
+ responsible HTML tables for _Bootstrap_ to be used for Mobile Devices.
520
+
521
+ .Responsible HTML table (RTable)
522
+ [cols="6a,6a", options="header", width="100%", role="rtable mt-3"]
523
+ |===
524
+ |Variable |Description
525
+
526
+ |`page.content`
527
+ |The content of the Page, rendered or un-rendered
528
+ depending upon what Liquid is being processed and what `page` is.
529
+
530
+ |`page.title`
531
+ |The title of the Page.
532
+
533
+ |`page.date`
534
+ |The Date assigned to the Post. This can be overridden in a
535
+ Post's front matter by specifying a new date/time in the format
536
+ `YYYY-MM-DD HH:MM:SS` (assuming UTC), or `YYYY-MM-DD HH:MM:SS +/-TTTT`
537
+ (to specify a time zone using an offset from UTC. e.g.
538
+ `2008-12-14 10:30:00 +0900`).
539
+ |===
540
+
541
+ [role="mt-4"]
542
+ === Blog Post Navigation
543
+
544
+ To make your Blog Articles available to your vistors, J1 offers an easy to use
545
+ navigation module for all your posts. The Blog Post Navigator automatically
546
+ generates different views to explore articles by Categoy, Date, or all posts
547
+ from an Archive View.
548
+
549
+ .Blog Post Navigator
550
+ lightbox::images--blog-post-navigator[ 1920, {data-images--blog-post-navigator} ]
551
+
552
+ [role="mt-4"]
553
+ === Block elements
554
+
555
+ Banners and panels are complex but configurable building blocks, typically
556
+ used for home and landing pages. Examples how to use banners and panels
557
+ can be found with the included starter web for the homepage.
558
+
559
+ .Teaser Banner
560
+ lightbox::images--teaser-banner[ 1920, {data-images--teaser-banner} ]
561
+
562
+ .Intro Panel
563
+ lightbox::images--intro-panel[ 1920, {data-images--intro-panel} ]
564
+
565
+ [role="mt-4"]
566
+ === Asciidoctor extensions
567
+
568
+ J1 Template implements a bunch of incubating Ruby-based extensions for
569
+ Asciidoctor. Using Asciidoctor extensions, it's easy to integrate lightboxes,
570
+ galleries, icon fonts, and other complex elements using Asciidoc tags with
571
+ your content pages.
572
+
573
+ .MDI Icons
574
+ [source, noformat, role="noclip"]
575
+ ----
576
+ mdi:home[2x, mdi-pulsed ml-3 mr-2 mb-2] Symbol icon (pulsed)
577
+ mdi:font-awesome[2x, ml-3 mr-2 mb-2] Brand icon
578
+ mdi:apple[2x, md-indigo ml-3 mr-2] Brand icon (colored)
579
+ ----
580
+
581
+ [.result]
582
+ ====
583
+ mdi:home[2x, mdi-pulsed ml-3 mr-2 mb-2] Symbol icon (pulsed) +
584
+ mdi:font-awesome[2x, ml-3 mr-2 mb-2] Brand icon +
585
+ mdi:apple[2x, md-indigo ml-3 mr-2] Brand icon (colored)
586
+ ====
587
+
588
+ [role="mt-4"]
589
+ === Featured example content
590
+
591
+ All pages from the roundtrip section are provided by the starter web
592
+ included with the J1 Template. Many real-world examples for your content
593
+ could be taken from these pages and are easy to use with your website.
594
+
595
+ .Example Content (Icon Fonts)
596
+ lightbox::images--example-content[ 1920, {data-images--example-content} ]
597
+
598
+ [role="mt-4"]
599
+ === Royalty Free Images
600
+
601
+ All images for a *Starter Web*, for example, from the roundtrip section, are
602
+ included with J1 Template. All images are taken from Unsplash.com as
603
+ *Royalty Free* images and can be used without paying any license fees.
604
+
605
+
606
+ [role="mt-5"]
607
+ == Integrations
608
+
609
+ The Internet of today has changed a lot. The new digital world is called the cloud.
610
+ Services out of the cloud is a fast-growing business. J1 Template integrates cloud
611
+ services to extend the functionality of a web for commenting features or Bootstrap
612
+ themes, for example.
613
+
614
+ mdi:theme-light-dark[2x, md-blue ml-3 mr-2]
615
+ <<Bootstrap Themes>> (Bootswatch) +
616
+ mdi:comment[2x, md-blue ml-3 mr-2]
617
+ <<Comment providers>> +
618
+ mdi:google-analytics[2x, md-blue ml-3 mr-2]
619
+ <<Google Analytics>> +
620
+ mdi:google-ads[2x, md-blue ml-3 mr-2]
621
+ <<Google Adsense>> +
622
+ mdi:youtube[2x, md-blue ml-3 mr-2]
623
+ <<YouTube Video>> +
624
+ mdi:vimeo[2x, md-blue ml-3 mr-2]
625
+ <<Vimeo Video>>
626
+
627
+ [role="mt-4"]
628
+ === Bootstrap Themes
629
+
630
+ The Themes for the template system J1 are based on the free and Open Source
631
+ CSS front-end framework _Bootstrap_ of version V5. Using _Bootstrap_ base style
632
+ only results in a uniform appearance for the content in terms of the overall
633
+ layout, text, tables, and form elements across all modern web browsers
634
+ available on the market.
635
+
636
+ Thanks to the people at link:{url-bootswatch--home}[Bootswatch, {browser-window--new}],
637
+ a great set of already prepared _Bootstrap_ stylesheets in various designs are
638
+ available on their website. There is no need to start from scratch. Re-define
639
+ all the _Bootstrap_ variables, and rebuild the framework files to create a new
640
+ theme.
641
+
642
+ .Bootswatch Themes (Minty)
643
+ lightbox::images--bootswatch-themes[ 1920, {data-images--bootswatch-themes} ]
644
+
645
+ Many different styles are available. What is already available at
646
+ link:{url-bootswatch--home}[Bootswatch, {browser-window--new}] is at least a
647
+ good base for your modifications: your unique design. J1 integrates all
648
+ available themes from _Bootswatch_ with the navigator module.
649
+
650
+ [role="mt-4"]
651
+ === Comment providers
652
+
653
+ Comments became an integral part of almost each website on the web. People
654
+ want to talk about what they currently read on your web, listen to or see.
655
+ And they want it right there, under what they’ve read or seen, not on their
656
+ social networks.
657
+
658
+ J1 Template supports currently two comment providers: Disqus (DQC) and
659
+ Hyvor (HVC). The comment interfaces from the supported providers can be
660
+ integrated by pure configuration.
661
+
662
+ .Comments by Hyvor Talk
663
+ lightbox::images--comments-hyvor[ 1920, {data-images--comments-hyvor} ]
664
+
665
+ Enable the provider you want to use and add your access credentials to the
666
+ configuration, and you're done. On all posts or pages you want to use for
667
+ comments, the comment interface is shown automatically and can be used by
668
+ your visitors.
669
+
670
+ .Comments configuration for Hyvor (j1_config.yml)
671
+ [source, yaml, role="noclip"]
672
+ ----
673
+ comments:
674
+ enabled: true
675
+ provider: hyvor
676
+
677
+ comments_headline:
678
+ en: Leave a comment
679
+ de: Kommentieren
680
+
681
+ hyvor:
682
+ site_id: 'hyvor-site-id'
683
+
684
+ disqus:
685
+ site_id: '<your-site-short-name>'
686
+ ----
687
+
688
+ DQC is fully integrated with the GDPR-compatible Cookie Consent module. If
689
+ your visitors do not agree on cookies needed for Diqus, DQC gets
690
+ automatically disabled, and all related cookies are deleted from the user's
691
+ system.
692
+
693
+ [role="mt-4"]
694
+ === Google Analytics
695
+
696
+ Google Analytics (GAL) provides access to a massive amount of data related
697
+ to how users find and interact with your site. For example, you can see how
698
+ many people visited a specific page, how long they remained there, where your
699
+ users live, how certain keywords perform, and so forth.
700
+
701
+ Google Analytics is integrated by pure configuration. Simply enable the
702
+ provider and set your your access credentials to the configuration, and
703
+ you're done.
704
+
705
+ .Google Analytics configuration (j1_config.yml)
706
+ [source, yaml, role="noclip"]
707
+ ----
708
+ analytics:
709
+ enabled: true
710
+ provider: google
711
+
712
+ google:
713
+ tracking_id: '<your-tracking-id>'
714
+ ----
715
+
716
+ GAL is fully integrated with the GDPR-compatible Cookie Consent module.
717
+ If your visitors do not agree on cooies for *Analysis*, Google Analytics gets
718
+ automatically disabled and all cookies from Google are deleted from the
719
+ user's system.
720
+
721
+ [role="mt-4"]
722
+ === Google Adsense
723
+
724
+ Google Adsense (GAD) is integrated by pure configuration. Simply enable the
725
+ provider and set your your access credentials to the configuration, and
726
+ you're done.
727
+
728
+ [role="mt-4"]
729
+ === YouTube Video
730
+
731
+ J1 Template supports YouTube and Vimeo video content out-of-the-box.
732
+ The type of content is *automatically detected* with your video galleries
733
+ configured, and the player is started as needed.
734
+
735
+ .Asciidoc Markup
736
+ [source, apib, role="noclip"]
737
+ ----
738
+ gallery::jg_video_online_youtube_james_and_adele[]
739
+ ----
740
+
741
+ .YouTube Video
742
+ gallery::jg_video_online_youtube_james_and_adele[role="mb-5"]
743
+
744
+ [role="mt-4"]
745
+ === Vimeo Video
746
+
747
+ J1 Template supports Vimeo video content out-of-the-box. The type of content
748
+ is *automatically detected* with your video galleries configured, and the
749
+ player is started as needed.
750
+
751
+ .Asciidoc Markup
752
+ [source, apib, role="noclip"]
753
+ ----
754
+ gallery::jg_video_online_vimeo[role="mb-5"]
755
+ ----
756
+
757
+ .Vimeo Video
758
+ gallery::jg_video_online_vimeo[role="mb-7"]