j1-template 2024.3.13 → 2024.3.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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"]