j1-template 2021.0.3 → 2021.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (388) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/modules/navigator/generator.html +6 -6
  3. data/_includes/themes/j1/modules/navigator/procedures/topsearch.proc +11 -11
  4. data/_includes/themes/j1/procedures/global/attributes_loader.proc +2 -2
  5. data/_layouts/raw.html +1 -1
  6. data/assets/data/fam.html +1 -1
  7. data/assets/data/gallery_customizer.html +1 -1
  8. data/assets/data/mdi_icons.json +69582 -14640
  9. data/assets/data/menu.html +33 -4
  10. data/assets/data/mmenu_toc.html +1 -1
  11. data/assets/data/quicklinks.html +2 -2
  12. data/assets/themes/j1/adapter/js/fam.js +2 -2
  13. data/assets/themes/j1/adapter/js/j1.js +3 -2
  14. data/assets/themes/j1/adapter/js/mmenu.js +18 -22
  15. data/assets/themes/j1/adapter/js/{lunr_search.js → quicksearch.js} +11 -11
  16. data/assets/themes/j1/core/css/animate.min.css +1 -7
  17. data/assets/themes/j1/core/css/icon-fonts/fontawesome.css +302 -22
  18. data/assets/themes/j1/core/css/icon-fonts/fontawesome.min.css +1 -1
  19. data/assets/themes/j1/core/css/icon-fonts/materialdesign.css +12505 -4812
  20. data/assets/themes/j1/core/css/icon-fonts/materialdesign.min.css +1 -1
  21. data/assets/themes/j1/core/css/icon-fonts/twemoji.min.css +1 -1
  22. data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.css +79 -49
  23. data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.min.css +1 -6
  24. data/assets/themes/j1/core/css/themes/uno-dark/bootstrap.css +78 -48
  25. data/assets/themes/j1/core/css/themes/uno-dark/bootstrap.min.css +1 -6
  26. data/assets/themes/j1/core/css/themes/uno-light/bootstrap.css +124 -52
  27. data/assets/themes/j1/core/css/themes/uno-light/bootstrap.min.css +1 -8
  28. data/assets/themes/j1/core/css/vendor.css +2 -2
  29. data/assets/themes/j1/core/css/vendor.min.css +1 -1
  30. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/{fa-brands-400.eot → eot/fa-brands-400.eot} +0 -0
  31. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/{fa-regular-400.eot → eot/fa-regular-400.eot} +0 -0
  32. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/{fa-solid-900.eot → eot/fa-solid-900.eot} +0 -0
  33. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-brands-400.woff +0 -0
  34. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-brands-400.woff2 +0 -0
  35. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-regular-400.woff +0 -0
  36. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-regular-400.woff2 +0 -0
  37. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-solid-900.woff +0 -0
  38. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-solid-900.woff2 +0 -0
  39. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/{fa-brands-400.svg → svg/fa-brands-400.svg} +855 -597
  40. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/{fa-regular-400.svg → svg/fa-regular-400.svg} +94 -96
  41. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/{fa-solid-900.svg → svg/fa-solid-900.svg} +1272 -771
  42. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/{fa-brands-400.ttf → ttf/fa-brands-400.ttf} +0 -0
  43. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/{fa-regular-400.ttf → ttf/fa-regular-400.ttf} +0 -0
  44. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/{fa-solid-900.ttf → ttf/fa-solid-900.ttf} +0 -0
  45. data/assets/themes/j1/core/fonts/{materialdesign_icons/fonts → material_design_icons/fonts/_versions/v3.3.92/eot}/materialdesignicons-webfont.eot +0 -0
  46. data/assets/themes/j1/core/fonts/{materialdesign_icons/fonts → material_design_icons/fonts/_versions/v3.3.92}/materialdesignicons-webfont.woff +0 -0
  47. data/assets/themes/j1/core/fonts/{materialdesign_icons/fonts → material_design_icons/fonts/_versions/v3.3.92}/materialdesignicons-webfont.woff2 +0 -0
  48. data/assets/themes/j1/core/fonts/{materialdesign_icons/fonts → material_design_icons/fonts/_versions/v3.3.92/svg}/materialdesignicons-webfont.svg +0 -0
  49. data/assets/themes/j1/core/fonts/{materialdesign_icons/fonts → material_design_icons/fonts/_versions/v3.3.92/ttf}/materialdesignicons-webfont.ttf +0 -0
  50. data/assets/themes/j1/core/fonts/material_design_icons/fonts/_versions/v5.9.55/eot/materialdesignicons-webfont.eot +0 -0
  51. data/assets/themes/j1/core/fonts/material_design_icons/fonts/_versions/v5.9.55/materialdesignicons-webfont.woff +0 -0
  52. data/assets/themes/j1/core/fonts/material_design_icons/fonts/_versions/v5.9.55/materialdesignicons-webfont.woff2 +0 -0
  53. data/assets/themes/j1/core/fonts/material_design_icons/fonts/_versions/v5.9.55/preview.html +717 -0
  54. data/assets/themes/j1/core/fonts/material_design_icons/fonts/_versions/v5.9.55/svg/materialdesignicons-webfont.svg +10188 -0
  55. data/assets/themes/j1/core/fonts/material_design_icons/fonts/_versions/v5.9.55/ttf/materialdesignicons-webfont.ttf +0 -0
  56. data/assets/themes/j1/core/fonts/material_design_icons/fonts/eot/materialdesignicons-webfont.eot +0 -0
  57. data/assets/themes/j1/core/fonts/material_design_icons/fonts/materialdesignicons-webfont.woff +0 -0
  58. data/assets/themes/j1/core/fonts/material_design_icons/fonts/materialdesignicons-webfont.woff2 +0 -0
  59. data/assets/themes/j1/core/fonts/material_design_icons/fonts/svg/materialdesignicons-webfont.svg +10188 -0
  60. data/assets/themes/j1/core/fonts/material_design_icons/fonts/ttf/materialdesignicons-webfont.ttf +0 -0
  61. data/assets/themes/j1/core/fonts/{materialdesign_icons → material_design_icons}/metadata/icons.json +0 -0
  62. data/assets/themes/j1/core/fonts/{materialdesign_icons → material_design_icons}/metadata/icons.yml +0 -0
  63. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-Bold.eot → eot/Roboto-Bold.eot} +0 -0
  64. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-Light.eot → eot/Roboto-Light.eot} +0 -0
  65. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-Medium.eot → eot/Roboto-Medium.eot} +0 -0
  66. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-Regular.eot → eot/Roboto-Regular.eot} +0 -0
  67. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-Thin.eot → eot/Roboto-Thin.eot} +0 -0
  68. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-Black.ttf → ttf/Roboto-Black.ttf} +0 -0
  69. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-BlackItalic.ttf → ttf/Roboto-BlackItalic.ttf} +0 -0
  70. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-Bold.ttf → ttf/Roboto-Bold.ttf} +0 -0
  71. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-BoldItalic.ttf → ttf/Roboto-BoldItalic.ttf} +0 -0
  72. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-Italic.ttf → ttf/Roboto-Italic.ttf} +0 -0
  73. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-Light.ttf → ttf/Roboto-Light.ttf} +0 -0
  74. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-LightItalic.ttf → ttf/Roboto-LightItalic.ttf} +0 -0
  75. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-Medium.ttf → ttf/Roboto-Medium.ttf} +0 -0
  76. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-MediumItalic.ttf → ttf/Roboto-MediumItalic.ttf} +0 -0
  77. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-Regular.ttf → ttf/Roboto-Regular.ttf} +0 -0
  78. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-Thin.ttf → ttf/Roboto-Thin.ttf} +0 -0
  79. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-ThinItalic.ttf → ttf/Roboto-ThinItalic.ttf} +0 -0
  80. data/assets/themes/j1/core/js/template.min.js +23 -1
  81. data/assets/themes/j1/modules/datatables/css/DataTables-1.10.16/images/sort_asc.png +0 -0
  82. data/assets/themes/j1/modules/datatables/css/DataTables-1.10.16/images/sort_asc_disabled.png +0 -0
  83. data/assets/themes/j1/modules/datatables/css/DataTables-1.10.16/images/sort_both.png +0 -0
  84. data/assets/themes/j1/modules/datatables/css/DataTables-1.10.16/images/sort_desc.png +0 -0
  85. data/assets/themes/j1/modules/datatables/css/DataTables-1.10.16/images/sort_desc_disabled.png +0 -0
  86. data/assets/themes/j1/modules/datatables/css/datatables.css +1113 -0
  87. data/assets/themes/j1/modules/datatables/css/datatables.min.css +136 -0
  88. data/assets/themes/j1/modules/datatables/css/theme/uno.css +473 -0
  89. data/assets/themes/j1/modules/datatables/js/datatables.js +95360 -0
  90. data/assets/themes/j1/modules/datatables/js/datatables.min.js +533 -0
  91. data/assets/themes/j1/modules/jquery/js/jquery-3.5.1.min.map +1 -0
  92. data/assets/themes/j1/modules/justifiedGallery/_versions/v3.8.0/css/justifiedGallery.css +110 -0
  93. data/assets/themes/j1/modules/justifiedGallery/_versions/v3.8.0/css/justifiedGallery.min.css +110 -0
  94. data/assets/themes/j1/modules/justifiedGallery/_versions/v3.8.0/js/jquery.justifiedGallery.js +1245 -0
  95. data/assets/themes/j1/modules/justifiedGallery/_versions/v3.8.0/js/jquery.justifiedGallery.min.js +8 -0
  96. data/assets/themes/j1/modules/justifiedGallery/_versions/v3.8.0/justifiedGallery.min.zip +0 -0
  97. data/assets/themes/j1/modules/justifiedGallery/_versions/v3.8.0/justifiedGallery.zip +0 -0
  98. data/assets/themes/j1/modules/justifiedGallery/css/_archived/justifiedGallery.css +110 -0
  99. data/assets/themes/j1/modules/justifiedGallery/css/_archived/justifiedGallery.min.css +110 -0
  100. data/assets/themes/j1/modules/justifiedGallery/css/justifiedGallery.css +11 -10
  101. data/assets/themes/j1/modules/justifiedGallery/css/justifiedGallery.min.css +3 -106
  102. data/assets/themes/j1/modules/justifiedGallery/js/justifiedGallery.js +147 -146
  103. data/assets/themes/j1/modules/justifiedGallery/js/justifiedGallery.min.js +3 -3
  104. data/assets/themes/j1/modules/lightGallery/js/core/lightgallery.min.js +1 -2
  105. data/assets/themes/j1/modules/lightbox/js/lightbox.js +1 -1
  106. data/assets/themes/j1/modules/lunrSearch/css/{lunr_search.css → quicksearch.css} +0 -0
  107. data/assets/themes/j1/modules/lunrSearch/css/{lunr_search.min.css → quicksearch.min.css} +0 -0
  108. data/assets/themes/j1/modules/lunrSearch/js/lunr.language.support.js +304 -0
  109. data/assets/themes/j1/modules/lunrSearch/js/lunr.language.support.min.js +1 -0
  110. data/assets/themes/j1/modules/lunrSearch/js/{lunr_search.js → quicksearch.js} +22 -3
  111. data/assets/themes/j1/modules/lunrSearch/js/quicksearch.min.js +17 -0
  112. data/assets/themes/j1/modules/lunrSearch/languages/lunr.ar.js +381 -0
  113. data/assets/themes/j1/modules/lunrSearch/languages/lunr.ar.min.js +1 -0
  114. data/assets/themes/j1/modules/lunrSearch/languages/lunr.da.js +284 -0
  115. data/assets/themes/j1/modules/lunrSearch/languages/lunr.da.min.js +18 -0
  116. data/assets/themes/j1/modules/lunrSearch/languages/lunr.de.js +384 -0
  117. data/assets/themes/j1/modules/lunrSearch/languages/lunr.de.min.js +18 -0
  118. data/assets/themes/j1/modules/lunrSearch/languages/lunr.du.js +450 -0
  119. data/assets/themes/j1/modules/lunrSearch/languages/lunr.du.min.js +18 -0
  120. data/assets/themes/j1/modules/lunrSearch/languages/lunr.es.js +599 -0
  121. data/assets/themes/j1/modules/lunrSearch/languages/lunr.es.min.js +18 -0
  122. data/assets/themes/j1/modules/lunrSearch/languages/lunr.fi.js +541 -0
  123. data/assets/themes/j1/modules/lunrSearch/languages/lunr.fi.min.js +18 -0
  124. data/assets/themes/j1/modules/lunrSearch/languages/lunr.fr.js +703 -0
  125. data/assets/themes/j1/modules/lunrSearch/languages/lunr.fr.min.js +18 -0
  126. data/assets/themes/j1/modules/lunrSearch/languages/lunr.hu.js +565 -0
  127. data/assets/themes/j1/modules/lunrSearch/languages/lunr.hu.min.js +18 -0
  128. data/assets/themes/j1/modules/lunrSearch/languages/lunr.it.js +617 -0
  129. data/assets/themes/j1/modules/lunrSearch/languages/lunr.it.min.js +18 -0
  130. data/assets/themes/j1/modules/lunrSearch/languages/lunr.ja.js +188 -0
  131. data/assets/themes/j1/modules/lunrSearch/languages/lunr.ja.min.js +1 -0
  132. data/assets/themes/j1/modules/lunrSearch/languages/lunr.jp.js +5 -0
  133. data/assets/themes/j1/modules/lunrSearch/languages/lunr.jp.min.js +1 -0
  134. data/assets/themes/j1/modules/lunrSearch/languages/lunr.multi.js +79 -0
  135. data/assets/themes/j1/modules/lunrSearch/languages/lunr.multi.min.js +1 -0
  136. data/assets/themes/j1/modules/lunrSearch/languages/lunr.nl.js +448 -0
  137. data/assets/themes/j1/modules/lunrSearch/languages/lunr.nl.min.js +18 -0
  138. data/assets/themes/j1/modules/lunrSearch/languages/lunr.no.js +258 -0
  139. data/assets/themes/j1/modules/lunrSearch/languages/lunr.no.min.js +18 -0
  140. data/assets/themes/j1/modules/lunrSearch/languages/lunr.pt.js +570 -0
  141. data/assets/themes/j1/modules/lunrSearch/languages/lunr.pt.min.js +18 -0
  142. data/assets/themes/j1/modules/lunrSearch/languages/lunr.ro.js +558 -0
  143. data/assets/themes/j1/modules/lunrSearch/languages/lunr.ro.min.js +18 -0
  144. data/assets/themes/j1/modules/lunrSearch/languages/lunr.ru.js +391 -0
  145. data/assets/themes/j1/modules/lunrSearch/languages/lunr.ru.min.js +18 -0
  146. data/assets/themes/j1/modules/lunrSearch/languages/lunr.sv.js +256 -0
  147. data/assets/themes/j1/modules/lunrSearch/languages/lunr.sv.min.js +18 -0
  148. data/assets/themes/j1/modules/lunrSearch/languages/lunr.th.js +97 -0
  149. data/assets/themes/j1/modules/lunrSearch/languages/lunr.tr.js +1087 -0
  150. data/assets/themes/j1/modules/lunrSearch/languages/lunr.tr.min.js +18 -0
  151. data/assets/themes/j1/modules/lunrSearch/languages/lunr.vi.js +84 -0
  152. data/assets/themes/j1/modules/lunrSearch/languages/lunr.vi.min.js +1 -0
  153. data/assets/themes/j1/modules/mdiPreviewer/css/previewer.css +20 -5
  154. data/assets/themes/j1/modules/mdiPreviewer/css/previewer.min.css +1 -1
  155. data/assets/themes/j1/modules/mdiPreviewer/js/previewer.js +115 -0
  156. data/assets/themes/j1/modules/mdiPreviewer/js/previewer.min.js +15 -0
  157. data/assets/themes/j1/modules/mdiPreviewer/js/previewer.new.js +111 -0
  158. data/assets/themes/j1/modules/mdiPreviewer/js/previewer.old.js +103 -0
  159. data/assets/themes/j1/modules/mmenuLight/js/mmenu.js +2 -2
  160. data/assets/themes/j1/modules/mmenuLight/js/mmenu.min.js +3 -3
  161. data/assets/themes/j1/modules/twemoji/css/picker/twemoji-picker.css +4 -4
  162. data/assets/themes/j1/modules/twemoji/css/picker/twemoji-picker.min.css +1 -1
  163. data/assets/themes/j1/modules/twemoji/js/picker/twemoji-picker.js +46 -45
  164. data/assets/themes/j1/modules/twemoji/js/picker/twemoji-picker.min.js +1 -1
  165. data/lib/j1/commands/generate.rb +3 -2
  166. data/lib/j1/version.rb +1 -1
  167. data/lib/j1_app/j1_auth_manager/auth_manager.rb +15 -0
  168. data/lib/starter_web/Gemfile +18 -18
  169. data/lib/starter_web/_config.yml +10 -8
  170. data/lib/starter_web/_data/apps/light_gallery.yml +1 -1
  171. data/lib/starter_web/_data/asciidoc2pdf/fonts/ABOUT-mplus1mn-subset +26 -0
  172. data/lib/starter_web/_data/asciidoc2pdf/fonts/ABOUT-mplus1p-subset +26 -0
  173. data/lib/starter_web/_data/asciidoc2pdf/fonts/ABOUT-notoemoji-subset +3 -0
  174. data/lib/starter_web/_data/asciidoc2pdf/fonts/ABOUT-notoserif-subset +26 -0
  175. data/lib/starter_web/_data/asciidoc2pdf/fonts/LICENSE-mplus +16 -0
  176. data/lib/starter_web/_data/asciidoc2pdf/fonts/LICENSE-notoemoji +201 -0
  177. data/lib/starter_web/_data/asciidoc2pdf/fonts/LICENSE-notoserif +201 -0
  178. data/lib/starter_web/_data/asciidoc2pdf/fonts/LICENSE-roboto +11 -0
  179. data/lib/starter_web/_data/asciidoc2pdf/fonts/Roboto-Black.ttf +0 -0
  180. data/lib/starter_web/_data/asciidoc2pdf/fonts/Roboto-BlackItalic.ttf +0 -0
  181. data/lib/starter_web/_data/asciidoc2pdf/fonts/Roboto-Bold.ttf +0 -0
  182. data/lib/starter_web/_data/asciidoc2pdf/fonts/Roboto-BoldItalic.ttf +0 -0
  183. data/lib/starter_web/_data/asciidoc2pdf/fonts/Roboto-Italic.ttf +0 -0
  184. data/lib/starter_web/_data/asciidoc2pdf/fonts/Roboto-Light.ttf +0 -0
  185. data/lib/starter_web/_data/asciidoc2pdf/fonts/Roboto-LightItalic.ttf +0 -0
  186. data/lib/starter_web/_data/asciidoc2pdf/fonts/Roboto-Medium.ttf +0 -0
  187. data/lib/starter_web/_data/asciidoc2pdf/fonts/Roboto-MediumItalic.ttf +0 -0
  188. data/lib/starter_web/_data/asciidoc2pdf/fonts/Roboto-Regular.ttf +0 -0
  189. data/lib/starter_web/_data/asciidoc2pdf/fonts/Roboto-Thin.ttf +0 -0
  190. data/lib/starter_web/_data/asciidoc2pdf/fonts/Roboto-ThinItalic.ttf +0 -0
  191. data/lib/starter_web/_data/asciidoc2pdf/fonts/mplus1mn-bold-subset.ttf +0 -0
  192. data/lib/starter_web/_data/asciidoc2pdf/fonts/mplus1mn-bold_italic-subset.ttf +0 -0
  193. data/lib/starter_web/_data/asciidoc2pdf/fonts/mplus1mn-italic-subset.ttf +0 -0
  194. data/lib/starter_web/_data/asciidoc2pdf/fonts/mplus1mn-regular-subset.ttf +0 -0
  195. data/{assets/themes/j1/core/fonts/roboto → lib/starter_web/_data/asciidoc2pdf}/fonts/mplus1p-regular-fallback.ttf +0 -0
  196. data/lib/starter_web/_data/asciidoc2pdf/fonts/notoemoji-subset.ttf +0 -0
  197. data/{assets/themes/j1/core/fonts/roboto → lib/starter_web/_data/asciidoc2pdf}/fonts/notoserif-bold-subset.ttf +0 -0
  198. data/{assets/themes/j1/core/fonts/roboto → lib/starter_web/_data/asciidoc2pdf}/fonts/notoserif-bold_italic-subset.ttf +0 -0
  199. data/{assets/themes/j1/core/fonts/roboto → lib/starter_web/_data/asciidoc2pdf}/fonts/notoserif-italic-subset.ttf +0 -0
  200. data/{assets/themes/j1/core/fonts/roboto → lib/starter_web/_data/asciidoc2pdf}/fonts/notoserif-regular-subset.ttf +0 -0
  201. data/lib/starter_web/_data/asciidoc2pdf/themes/base-theme.yml +130 -0
  202. data/lib/starter_web/_data/asciidoc2pdf/themes/default-for-print-theme.yml +36 -0
  203. data/lib/starter_web/_data/asciidoc2pdf/themes/default-for-print-with-fallback-font-theme.yml +15 -0
  204. data/lib/starter_web/_data/asciidoc2pdf/themes/default-theme.yml +298 -0
  205. data/lib/starter_web/_data/asciidoc2pdf/themes/default-with-fallback-font-theme.yml +21 -0
  206. data/lib/starter_web/_data/asciidoc2pdf/themes/j1-theme.yml +352 -0
  207. data/lib/starter_web/_data/j1_config.yml +3 -3
  208. data/lib/starter_web/_data/modules/defaults/navigator.yml +1 -1
  209. data/lib/starter_web/_data/modules/defaults/quicksearch.yml +82 -0
  210. data/lib/starter_web/_data/modules/defaults/toccer.yml +1 -1
  211. data/lib/starter_web/_data/modules/navigator.yml +4 -6
  212. data/lib/starter_web/_data/modules/navigator_menu.yml +28 -72
  213. data/lib/starter_web/_data/modules/{lunr_search.yml → quicksearch.yml} +3 -3
  214. data/lib/starter_web/_data/modules/themer.yml +1 -1
  215. data/lib/starter_web/_data/resources.yml +34 -60
  216. data/lib/starter_web/_includes/attributes.asciidoc +297 -95
  217. data/lib/starter_web/_includes/tables/jekyll_variables.asciidoc +1 -1
  218. data/lib/starter_web/_includes/tables/template_variables.asciidoc +1 -1
  219. data/lib/starter_web/_plugins/asciidoctor-extensions/fab-icon-inline.rb +1 -1
  220. data/lib/starter_web/_plugins/lunr_index.rb +38 -8
  221. data/lib/starter_web/_plugins/minifyJS.rb +3 -0
  222. data/lib/starter_web/assets/images/modules/attics/machine-generator-1920x1280.jpg +0 -0
  223. data/lib/starter_web/assets/images/modules/attics/modules-apps-1920x1280.jpg +0 -0
  224. data/lib/starter_web/assets/images/modules/attics/nicola-styles-1920x1280.jpg +0 -0
  225. data/lib/starter_web/assets/images/modules/attics/no-time-1920x1280.jpg +0 -0
  226. data/lib/starter_web/assets/images/modules/attics/responsive-text-1920x1280.jpg +0 -0
  227. data/lib/starter_web/assets/images/modules/icons/d1/scalable/d1.svg +1 -1
  228. data/lib/starter_web/assets/images/pages/panels/modules-apps-1920x800.jpg +0 -0
  229. data/lib/starter_web/assets/images/pages/panels/no-time-1920x800.jpg +0 -0
  230. data/lib/starter_web/assets/images/pages/panels/the-place-1920x800.jpg +0 -0
  231. data/lib/starter_web/assets/images/pages/roundtrip/600_quicksearch/quicksearch_icon-800x200.jpg +0 -0
  232. data/lib/starter_web/assets/images/pages/roundtrip/600_quicksearch/quicksearch_icon.jpg +0 -0
  233. data/lib/starter_web/assets/images/pages/roundtrip/600_quicksearch/quicksearch_input-800x200.jpg +0 -0
  234. data/lib/starter_web/assets/images/pages/roundtrip/600_quicksearch/quicksearch_input.jpg +0 -0
  235. data/lib/starter_web/assets/images/pages/roundtrip/600_quicksearch/quicksearch_results_jekyll-.jpg +0 -0
  236. data/lib/starter_web/assets/images/pages/roundtrip/600_quicksearch/quicksearch_results_jekyll.jpg +0 -0
  237. data/lib/starter_web/assets/images/pages/skeleton/annie-spratt-1920x1280.jpg +0 -0
  238. data/lib/starter_web/assets/images/pages/skeleton/antonino-visalli-1920x1280.jpg +0 -0
  239. data/lib/starter_web/assets/images/pages/skeleton/humble-lamb-1920x1280.jpg +0 -0
  240. data/lib/starter_web/assets/images/pages/skeleton/library-1920x1280.jpg +0 -0
  241. data/lib/starter_web/assets/images/pages/skeleton/romain-vignes-1920x1280.jpg +0 -0
  242. data/lib/starter_web/assets/images/pages/skeleton/sigmund-1920x1280.jpg +0 -0
  243. data/lib/starter_web/assets/images/pages/writers_guide/1280px-PDCA_Process.png +0 -0
  244. data/lib/starter_web/assets/images/pages/writers_guide/annie-spratt-1920x1280.jpg +0 -0
  245. data/lib/starter_web/assets/images/pages/writers_guide/deming-cycle.png +0 -0
  246. data/lib/starter_web/assets/images/pages/writers_guide/humble-lamb-1920x1280.jpg +0 -0
  247. data/lib/starter_web/assets/images/pages/writers_guide/john-schnobrich-1920x1280.jpg +0 -0
  248. data/lib/starter_web/assets/images/pages/writers_guide/sigmund-1920x1280.jpg +0 -0
  249. data/lib/starter_web/collections/posts/public/featured/_posts/0000-00-00-welcome-to-j1-template.adoc.erb +10 -13
  250. data/lib/starter_web/collections/posts/public/featured/_posts/{2018-05-01-confusion-about-base-url.adoc → 2020-04-01-confusion-about-base-url.adoc} +7 -5
  251. data/lib/starter_web/collections/posts/public/featured/_posts/{2019-05-01-top-open-source-static-site-generators.adoc → 2020-05-01-top-open-source-static-site-generators.adoc} +16 -14
  252. data/lib/starter_web/collections/posts/public/featured/_posts/{2019-06-01-about-cookies.adoc → 2020-06-01-about-cookies.adoc} +10 -24
  253. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-01-post-test-series.adoc +7 -18
  254. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-02-post-test-series.adoc +7 -17
  255. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-03-post-test-series.adoc +7 -17
  256. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-04-post-test-series.adoc +7 -17
  257. data/{assets/themes/j1/modules/mdiPreviewer/js → lib/starter_web/collections/posts/public/series/_posts/_includes/documents}/readme +0 -0
  258. data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-20-minneapolis.adoc +5 -4
  259. data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-24-narcisse-snake-dens.adoc +13 -3
  260. data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-26-columbia-river.adoc +13 -3
  261. data/lib/starter_web/dot.gitattributes +2 -16
  262. data/lib/starter_web/favicon.ico +0 -0
  263. data/lib/starter_web/index.html +4 -6
  264. data/lib/starter_web/package.json +8 -8
  265. data/lib/starter_web/pages/protected/site_search.adoc +2 -7
  266. data/lib/starter_web/pages/public/about/about_site.adoc +39 -16
  267. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/asciidoc-extensions/blindtext.asciidoc +11 -0
  268. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/asciidoc-extensions/font_icons.asciidoc +23 -0
  269. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/asciidoc-extensions/gallery.asciidoc +5 -0
  270. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/asciidoc-extensions/lightbox.asciidoc +7 -0
  271. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/documents/chapter_document.asciidoc +9 -0
  272. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/documents/entry_document.asciidoc +3 -0
  273. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/images/image.asciidoc +6 -0
  274. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/tables/table_2_column.asciidoc +12 -0
  275. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/tables/table_2_column_options.asciidoc +30 -0
  276. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/tables/table_3_column.asciidoc +16 -0
  277. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/tables/table_4_column.asciidoc +25 -0
  278. data/lib/starter_web/pages/public/asciidoc_skeletons/book/000_intro.adoc +61 -0
  279. data/lib/starter_web/pages/public/asciidoc_skeletons/book/100_chapter.adoc +58 -0
  280. data/lib/starter_web/pages/public/asciidoc_skeletons/book/200_chapter.adoc +59 -0
  281. data/lib/starter_web/pages/public/asciidoc_skeletons/book/900_references.adoc +68 -0
  282. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/attributes.asciidoc +68 -0
  283. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/000_intro.asciidoc +33 -0
  284. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/100_chapter.asciidoc +7 -0
  285. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/100_chapter/100_chapter_document.asciidoc +21 -0
  286. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/100_chapter/110_chapter_document.asciidoc +36 -0
  287. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/200_chapter.asciidoc +5 -0
  288. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/200_chapter/200_chapter_document.asciidoc +53 -0
  289. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/900_references.asciidoc +23 -0
  290. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/900_references/000_intro.asciidoc +23 -0
  291. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/900_references/100_chapter_document.asciidoc +33 -0
  292. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/900_references/200_chapter_document.asciidoc +26 -0
  293. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/900_references/900_sources.asciidoc +81 -0
  294. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/tables/110_material_design_icons.asciidoc +102 -0
  295. data/lib/starter_web/pages/public/asciidoc_skeletons/book/a2p.bat +28 -0
  296. data/lib/starter_web/pages/public/asciidoc_skeletons/book/a2p.sh +26 -0
  297. data/lib/starter_web/pages/public/asciidoc_skeletons/book/book.a2p +114 -0
  298. data/lib/starter_web/pages/public/asciidoc_skeletons/book/book.adoc +128 -0
  299. data/lib/starter_web/pages/public/asciidoc_skeletons/book/book.pdf +5440 -0
  300. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/100_chapter.asciidoc +60 -0
  301. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/200_chapter.asciidoc +59 -0
  302. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/attributes.asciidoc +63 -0
  303. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/documents/100_chapter.asciidoc +53 -0
  304. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/documents/200_chapter.asciidoc +53 -0
  305. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/documents/tables/110_material_design_icons.asciidoc +102 -0
  306. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +84 -0
  307. data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +236 -0
  308. data/lib/starter_web/pages/public/blog/navigator/archive.html +2 -0
  309. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +3 -1
  310. data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +2 -0
  311. data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +2 -0
  312. data/lib/starter_web/pages/public/blog/navigator/index.html +2 -0
  313. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +8 -4
  314. data/lib/starter_web/pages/public/learn/roundtrip/100_present_videos.adoc +3 -4
  315. data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +2 -270
  316. data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +168 -85
  317. data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +6 -9
  318. data/lib/starter_web/pages/public/learn/roundtrip/410_bs_modals_extentions.adoc +5 -6
  319. data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +2 -55
  320. data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +113 -57
  321. data/lib/starter_web/pages/public/learn/roundtrip/600_quicksearch.adoc +433 -0
  322. data/lib/starter_web/pages/public/learn/roundtrip/_includes/attributes.asciidoc +4 -1
  323. data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/{410_table_3_column.asciidoc → 410_table_bs_modal_examples.asciidoc} +0 -0
  324. data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/tables/bs_modal_examples.asciidoc +47 -0
  325. data/lib/starter_web/pages/public/learn/where_to_go.adoc +2 -2
  326. data/lib/starter_web/pages/public/legal/en/000_copyright.adoc +1 -1
  327. data/lib/starter_web/pages/public/legal/en/100_impress.adoc +1 -1
  328. data/lib/starter_web/pages/public/legal/en/200_terms_of_use.adoc +1 -1
  329. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +1 -1
  330. data/lib/starter_web/pages/public/legal/en/400_license_agreement.adoc +1 -1
  331. data/lib/starter_web/pages/public/legal/en/500_support.adoc +1 -1
  332. data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +16 -5
  333. data/lib/starter_web/pages/public/previewer/_includes/attributes.asciidoc +5 -81
  334. data/lib/starter_web/pages/public/previewer/_includes/documents/rouge/100_language_examples.asciidoc +119 -0
  335. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/100_absolute_sizes.asciidoc +1 -1
  336. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/110_bs_grid_sizes.asciidoc +1 -1
  337. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/120_relative_sizes.asciidoc +1 -1
  338. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/200_rotate.asciidoc +1 -1
  339. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/300_flip.asciidoc +1 -1
  340. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/400_spin_pulsed.asciidoc +4 -4
  341. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/500_bw_color_palette.asciidoc +1 -1
  342. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/510_bs_color_palette.asciidoc +1 -1
  343. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/600_md_color_palette.asciidoc +1 -1
  344. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/601_md_color_palette_indigo.asciidoc +1 -1
  345. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/602_md_color_palette_pink.asciidoc +1 -1
  346. data/lib/starter_web/pages/public/previewer/_includes/tables/rouge/200_rouge_attributes.asciidoc +41 -0
  347. data/lib/starter_web/pages/public/previewer/_includes/tables/rouge/300_supported_languages.asciidoc +857 -0
  348. data/lib/starter_web/pages/public/previewer/_includes/tables/twitter_emoji/100_bs_sizes.asciidoc +1 -1
  349. data/lib/starter_web/pages/public/previewer/_includes/tables/twitter_emoji/100_relative_sizes.asciidoc +1 -1
  350. data/lib/starter_web/pages/public/previewer/_includes/tables/twitter_emoji/200_rotate.asciidoc +1 -1
  351. data/lib/starter_web/pages/public/previewer/_includes/tables/twitter_emoji/300_flip.asciidoc +1 -1
  352. data/lib/starter_web/pages/public/previewer/_includes/tables/twitter_emoji/400_spin_pulsed.asciidoc +1 -1
  353. data/lib/starter_web/pages/public/previewer/bootstrap_theme.adoc +116 -78
  354. data/lib/starter_web/pages/public/previewer/iframer.adoc +1 -1
  355. data/lib/starter_web/pages/public/previewer/justified_gallery.html +1 -1
  356. data/lib/starter_web/pages/public/previewer/mdi_icons_preview.adoc +42 -109
  357. data/lib/starter_web/pages/public/previewer/rouge.adoc +74 -352
  358. data/lib/starter_web/pages/public/previewer/twitter_emoji_preview.adoc +3 -3
  359. data/lib/starter_web/utilsrv/_defaults/package.json +2 -2
  360. data/lib/starter_web/utilsrv/package.json +3 -3
  361. metadata +236 -81
  362. data/assets/themes/j1/core/fonts/materialdesign_icons/license.md +0 -97
  363. data/assets/themes/j1/core/fonts/roboto/fonts/OpenSansEmoji.ttf +0 -0
  364. data/assets/themes/j1/core/fonts/roboto/fonts/mplus1mn-bold-ascii.ttf +0 -0
  365. data/assets/themes/j1/core/fonts/roboto/fonts/mplus1mn-bold_italic-ascii.ttf +0 -0
  366. data/assets/themes/j1/core/fonts/roboto/fonts/mplus1mn-italic-ascii.ttf +0 -0
  367. data/assets/themes/j1/core/fonts/roboto/fonts/mplus1mn-regular-ascii-conums.ttf +0 -0
  368. data/assets/themes/j1/modules/lunrSearch/js/lunr_search.min.js +0 -17
  369. data/assets/themes/j1/modules/twemoji/js/LICENSE +0 -21
  370. data/lib/starter_web/_data/modules/defaults/lunr_search.yml +0 -171
  371. data/lib/starter_web/_plugins/simple_search_filter.rb +0 -32
  372. data/lib/starter_web/collections/posts/public/featured/_posts/_includes/documents/unsplash-badge.asciidoc +0 -31
  373. data/lib/starter_web/collections/posts/public/series/_posts/_includes/documents/100-docker-using-shared-folders.asciidoc +0 -430
  374. data/lib/starter_web/collections/posts/public/series/_posts/_includes/documents/loop.sh +0 -28
  375. data/lib/starter_web/pages/public/about/become_a_patron.adoc +0 -46
  376. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/100_meet_and_greet_jekyll.adoc +0 -79
  377. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/200_preparations.adoc +0 -77
  378. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/300_first_awesome_web.adoc +0 -75
  379. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/_includes/attributes.asciidoc +0 -176
  380. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/_includes/documents/100_meet_and_greet_jekyll.asciidoc +0 -31
  381. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/_includes/documents/200_preparations.asciidoc +0 -14
  382. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/_includes/documents/300_first_awesome_web.asciidoc +0 -11
  383. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/_includes/parts.asciidoc +0 -193
  384. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/_includes/tables/debug_variables.asciidoc +0 -47
  385. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/_includes/tables/readme +0 -1
  386. data/lib/starter_web/pages/public/learn/roundtrip/600_lunr.adoc +0 -236
  387. data/lib/starter_web/pages/public/learn/roundtrip/610_fam.adoc +0 -294
  388. data/lib/starter_web/pages/public/learn/roundtrip/_includes/tables/readme +0 -0
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: Roundtrip
3
3
  tagline: asciidoc extensions
4
- date: 2020-11-07 12:00:00
4
+ date: 2020-11-07 00:00:00
5
5
  description: >
6
6
  J1 Template implements some incubating Ruby-based extensions
7
7
  for Asciidoctor. Most extensions are based on the examples
@@ -37,7 +37,7 @@ resource_options:
37
37
  // Enable the Liquid Preprocessor
38
38
  :page-liquid:
39
39
 
40
- // Set page (local) attributes here
40
+ // Set (local) page attributes here
41
41
  // -----------------------------------------------------------------------------
42
42
  // :page--attr: <attr-value>
43
43
  :images-dir: {imagesdir}/pages/roundtrip/100_present_images
@@ -491,19 +491,16 @@ lorem:email[]
491
491
 
492
492
  // Include documents
493
493
  // -----------------------------------------------------------------------------
494
-
495
494
  include::{documentdir}/100_gistblock.asciidoc[]
496
495
 
497
496
 
498
497
  == Whats next
499
498
 
500
499
  Asciidoc, respectively Asciidoctor, extensions open up the Markup language to
501
- new use cases; using the full power of programming languages to extend what's
502
- needed whether it be Ruby, Java, Groovy or JavaScript.
503
-
504
- The number of extensions will grow - to get handy and powerful functionality
505
- that is needed for modern Web pages based on the Asciidoc Markup language
506
- generated by Jekyll. For sure!
500
+ new use cases. Using the full power of programming languages to extend what's
501
+ needed whether it be Ruby, Java, Groovy or JavaScript. The number of extensions
502
+ will grow - to get handy and powerful functionality that is needed for modern
503
+ web pages based on the Asciidoc Markup language generated by Jekyll. For sure!
507
504
 
508
505
  The next preview is focussing advanced Bootstrap Modals. The modals feature
509
506
  is currently in beta status, but it is a great option to customize your
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: Roundtrip
3
3
  tagline: advanced bootstrap modals
4
- date: 2020-11-08 12:00:00
4
+ date: 2020-11-08 00:00:00
5
5
  description: >
6
6
  Bootstrap modals are used to add dialogues to your web pages for user
7
7
  notifications. To highlight important information to your visitor's. Modals
@@ -32,7 +32,7 @@ resource_options:
32
32
  // Enable the Liquid Preprocessor
33
33
  :page-liquid:
34
34
 
35
- // Set page (local) attributes here
35
+ // Set (local) page attributes here
36
36
  // -----------------------------------------------------------------------------
37
37
  // :page--attr: <attr-value>
38
38
  :images-dir: {imagesdir}/pages/roundtrip/100_present_images
@@ -71,9 +71,8 @@ critical messages.
71
71
  NOTE: For more information on how to use Bootstrap’s JavaScript modal
72
72
  plugin, refer to: link:{bs_doc_components_modal}[Bootstrap Docs, {browser-window--new}].
73
73
 
74
- // Include sub-documents
75
- // -----------------------------------------------------------------------------
76
- include::{documentdir}/410_table_3_column.asciidoc[]
74
+ // include::{documentdir}/tables/bs_modal_examples.asciidoc[]
75
+ include::{documentdir}/410_table_bs_modal_examples.asciidoc[]
77
76
 
78
77
  == Whats next
79
78
 
@@ -89,5 +88,5 @@ what the link:{roundtrip-responsive-tables}[BS tables extensions] can do!
89
88
 
90
89
 
91
90
  // Include the modals HTML portion
92
- // -------------------------------------------------------------------
91
+ // -----------------------------------------------------------------------------
93
92
  include::{documentdir}/419_advanced_modals_demo.asciidoc[]
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: Roundtrip
3
3
  tagline: responsive tables
4
- date: 2020-11-09 12:00:00
4
+ date: 2020-11-09 00:00:00
5
5
  description: >
6
6
  Creating a design for responsive tables is challenging. The approach used by
7
7
  J1 Template is based on pure CSS on top of the classic Bootstrap styles for
@@ -35,10 +35,9 @@ resource_options:
35
35
  // Enable the Liquid Preprocessor
36
36
  :page-liquid:
37
37
 
38
- // Set page (local) attributes here
38
+ // Set (local) page attributes here
39
39
  // -----------------------------------------------------------------------------
40
40
  // :page--attr: <attr-value>
41
- :debug:
42
41
  :images-dir: {imagesdir}/pages/roundtrip/100_present_images
43
42
 
44
43
  // Load Liquid procedures
@@ -57,58 +56,6 @@ Creating a design for responsive tables is challenging. The approach used by
57
56
  J1 Template is based on pure CSS on top of the classic Bootstrap styles for
58
57
  simplicity and portability to be viewed best on all devices and browsers.
59
58
 
60
- ifdef::debug[]
61
-
62
- .Source, options NOT set
63
- [source, md, role="noclip"]
64
- ----
65
- [cols=",", options="header", ]
66
- |===============================================================================
67
- |Bratze |Bru
68
-
69
- |Fick
70
- |dich
71
-
72
- |===============================================================================
73
- ----
74
-
75
-
76
- .Options NOT set
77
- [cols=",", options="header", ]
78
- |===============================================================================
79
- |Bratze |Bru
80
-
81
- |Fick
82
- |dich
83
-
84
- |===============================================================================
85
-
86
- .Source, options SET
87
- [source, adoc, role="noclip"]
88
- ----
89
- [cols="6a,6a", options="header", width="100%", role="table-responsive mt-3"]
90
- |===============================================================================
91
- |Bratze |Bru
92
-
93
- |Fick
94
- |dich
95
-
96
- |===============================================================================
97
- ----
98
-
99
- .options set
100
- [cols="6a,6a", options="header", width="100%", role="table-responsive mt-3"]
101
- |===============================================================================
102
- |Bratze |Bru
103
-
104
- |Fick
105
- |dich
106
-
107
- |===============================================================================
108
- endif::[]
109
-
110
-
111
-
112
59
  == Table types
113
60
 
114
61
  But, for sure, the solution provided is a compromise. To fit the common needs
@@ -1,14 +1,17 @@
1
1
  ---
2
2
  title: Roundtrip
3
3
  tagline: themes
4
- date: 2020-11-10 12:00:00
4
+ date: 2020-11-10 00:00:00
5
5
  description: >
6
- The themes feature for J1 is in an experimental state for the template
7
- system. Anyway, it makes sense to present what is possible using different
6
+ The themes feature for J1 is in an experimental
7
+ state for the template system. Anyway, it makes
8
+ sense to present what is possible using different
8
9
  versions of Bootstrap's CSS styles for a website.
9
10
 
10
- tags: [ Roundtrip, Introduction ]
11
- categories: [ Theme, Module ]
11
+ tags: [ Bootstrap, Themes ]
12
+ categories: [ Introduction, Features ]
13
+
14
+ scrollbar: false
12
15
 
13
16
  permalink: /pages/public/learn/roundtrip/themes/
14
17
  regenerate: false
@@ -33,7 +36,7 @@ resource_options:
33
36
  // Enable the Liquid Preprocessor
34
37
  :page-liquid:
35
38
 
36
- // Set page (local) attributes here
39
+ // Set (local) page attributes here
37
40
  // -----------------------------------------------------------------------------
38
41
  // :page--attr: <attr-value>
39
42
  :images-dir: {imagesdir}/pages/roundtrip/100_present_images
@@ -46,15 +49,26 @@ resource_options:
46
49
  // -----------------------------------------------------------------------------
47
50
  {% include {{load_attributes}} scope="all" %}
48
51
 
49
-
50
52
  // Page content
51
53
  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
52
54
 
53
- ++++
54
- <!-- page_path: {{page_path | debug}} -->
55
- <!-- site.source: {{site.source | debug}} -->
56
- <!-- site.source.size: {{site.source.size | debug}} -->
57
- ++++
55
+ // Include sub-documents
56
+ // -----------------------------------------------------------------------------
57
+
58
+ Themes for the template system J1 are based on the free and open-source CSS
59
+ front-end framework {url-bs--home}[Bootstrap, {browser-window--new}] of
60
+ version V4.
61
+
62
+ Bootstrap is a HTML, CSS & JS Library that focuses on simplifying the
63
+ development of modern web pages. The primary purpose to apply the framework
64
+ to J1 is to provide a general standard colors, sizes, fonts and the overall
65
+ layout of a J1-based site. Bootstrap provides basic style definitions for all
66
+ common used HTML elements.
67
+
68
+ This results in a uniform appearance for the content in terms of the overall
69
+ layout, text, tables and form elements across all modern web browsers available
70
+ on the market. In addition, developers can take advantage of CSS classes
71
+ defined in Bootstrap to customize content individually.
58
72
 
59
73
  The themes feature for J1 is in an experimental state for the template
60
74
  system. Anyway, it makes sense to present what is possible using different
@@ -62,6 +76,13 @@ versions of Bootstrap's CSS styles for a website.
62
76
 
63
77
  == Template themes
64
78
 
79
+ Themes step in the framework to further adjust the appearance of a website
80
+ based on the core CSS rules and definitions of Bootstrap. Themes does not
81
+ change the functionality of the framwork, but modifies rule-based e.g. the
82
+ color scheme, fonts, sizes or the appearance of more complex elements like
83
+ forms or tables. Additionally, a theme may add additonal components but in
84
+ the *sense* of Bootstrap's framework rules and philosophy.
85
+
65
86
  It is expected that many people will change the template for their needs. To
66
87
  really create unique websites. Fundamental to do this is are CSS styles
67
88
  defined by Bootstrap.
@@ -70,7 +91,8 @@ Modifying the CSS styles of link:{bootstrap-home}[Bootstrap, {browser-window--ne
70
91
  is not rocket science. But, to be honest, some knowledge is needed to
71
92
  link:{w3org-css-spec}[the CSS technology] to do so. We encourage you to spend
72
93
  some time first on learning CSS. To learn what is the
73
- link:{w3schools-css-tutorial}[design base, {browser-window--new}] of each and every website.
94
+ link:{w3schools-css-tutorial}[design base, {browser-window--new}] of each and
95
+ every website.
74
96
 
75
97
  Thanks to the people at link:{bootswatch-home}[Bootswatch, {browser-window--new}],
76
98
  a great set of already prepared Bootstrap stylesheets in various designs are
@@ -85,7 +107,6 @@ that helps a lot to integrate available designs into an existing site. This API
85
107
  is the base to integrate selectable Bootswatch stylesheets into the J1 Template
86
108
  navigation system for easy use.
87
109
 
88
-
89
110
  === Apply a template theme
90
111
 
91
112
  The base for designing pages using J1 Template is the theme Uno, a modern
@@ -106,49 +127,90 @@ not all of them for now.
106
127
  Simply select a theme from this menu, and a new BS-based stylesheet is
107
128
  automatically applied to your pages.
108
129
 
109
-
110
130
  == Code Highlighter Rouge
111
131
 
112
- lorem:sentences[5]
132
+ _Rouge_ is a pure Ruby and themeable syntax highlighter. It can highlight
133
+ 100+ different languages, and output HTML or ANSI 256-color text. Find with
134
+ this section all available themes and examples for several lanuguages how
135
+ highlightning works using _Rouge_.
136
+
137
+ For the default theme `Uno` of J1 Template, the following _Rouge_ themes
138
+ are used:
139
+
140
+ * light: `igorpro`
141
+ * dark: `monokai.sublime`
142
+
143
+ NOTE: The default themes used for J1 Template can be configured with the
144
+ global template config file `~/_data/j1_config.yml`.
113
145
 
114
- lorem:sentences[3]
115
146
 
116
147
  === Apply a theme
117
148
 
118
- Make a selection of theme below to preview a theme.
149
+ Make a selection of a theme below to preview.
119
150
 
120
151
  ++++
121
152
  <div class="btn-group">
122
- <button class="btn btn-primary btn-raised btn-flex btn-lg dropdown-toggle" type="button" data-toggle="dropdown" data-target="#navbarDropdown" aria-haspopup="true" aria-expanded="false">
123
- Select a theme<span class="caret"></span>
153
+ <!-- See: https://stackoverflow.com/questions/47242702/force-bootstrap-dropdown-menu-to-always-display-at-the-bottom-and-allow-it-go-of -->
154
+ <!-- NOTE: control the behaviour of popper.js for positioning -->
155
+ <!-- NOTE: set attribute data-flip="false" to open the SELECT list at the BOTTOM of the BUTTON -->
156
+ <button class="btn btn-primary btn-raised btn-flex btn-lg dropdown-toggle" data-flip="false" type="button" data-toggle="dropdown" data-target="#navbarDropdown" aria-haspopup="true" aria-expanded="false">
157
+ Select Theme<span class="caret"></span>
124
158
  </button>
125
- <div class="dropdown-menu">
126
- <a class="dropdown-item" active="true" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('base16')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>base16</a>
127
- <a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('base16.dark')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>base16.dark</a>
128
- <a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('base16.light')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>base16.light</a>
129
- <a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('base16.monokai')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>base16.monokai</a>
130
- <a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('base16.monokai.dark')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>base16.monokai.dark</a>
131
- <a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('base16.monokai.light')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>base16.monokai.light</a>
132
- <a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('base16.solarized')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>base16.solarized</a>
133
- <a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('base16.solarized.dark')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>base16.solarized.dark</a>
134
- <a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('base16.solarized.light')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>base16.solarized.light</a>
135
- <a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('colorful')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>colorful</a>
136
- <a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('github')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>github</a>
137
- <a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('gruvbox')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>gruvbox</a>
138
- <a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('gruvbox.light')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>gruvbox.light</a>
139
- <a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('igorpro')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>igorpro</a>
140
- <a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('molokai')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>molokai</a>
141
- <a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('monokai')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>monokai</a>
142
- <a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('monokai.sublime')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>monokai.sublime</a>
143
- <a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('pastie')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>pastie</a>
144
- <a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('thankful_eyes')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>thankful_eyes</a>
145
- <a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('tulip')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>tulip</a>
146
- </div>
159
+ <ul class="dropdown-menu scrollable-menu" role="menu">
160
+ <li><a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('base16')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>base16</a></li>
161
+ <li><a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('base16.dark')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>base16.dark</a></li>
162
+ <li><a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('base16.light')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>base16.light</a></li>
163
+ <li><a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('base16.monokai')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>base16.monokai</a></li>
164
+ <li><a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('base16.monokai.dark')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>base16.monokai.dark</a></li>
165
+ <li><a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('base16.monokai.light')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>base16.monokai.light</a></li>
166
+ <li><a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('base16.solarized')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>base16.solarized</a></li>
167
+ <li><a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('base16.solarized.dark')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>base16.solarized.dark</a></li>
168
+ <li><a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('base16.solarized.light')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>base16.solarized.light</a></li>
169
+ <li><a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('colorful')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>colorful</a></li>
170
+ <li><a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('github')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>github</a></li>
171
+ <li><a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('gruvbox')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>gruvbox</a></li>
172
+ <li><a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('gruvbox.light')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>gruvbox.light</a></li>
173
+ <li><a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('igorpro')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>igorpro</a></li>
174
+ <li><a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('molokai')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>molokai</a></li>
175
+ <li><a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('monokai')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>monokai</a></li>
176
+ <li><a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('monokai.sublime')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>monokai.sublime</a></li>
177
+ <li><a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('pastie')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>pastie</a></li>
178
+ <li><a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('thankful_eyes')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>thankful_eyes</a></li>
179
+ <li><a class="dropdown-item" href="javascript:void(0)" onclick="j1.adapter.rouge.reaplyStyles('tulip')"> <i class="mdi mdi-view-quilt mdi-18px mr-2" style="color: #9E9E9E"></i>tulip</a></li>
180
+ </ul>
147
181
  </div>
148
182
  <div id="selected" class="mt-1 mb-3"></div>
183
+
184
+ <style>
185
+ /* jadams, 2021-02-16: unclear why global styles defined in CSS file */
186
+ /* (bootsttrap.css) not applied. For that reason, given locally for now */
187
+ .scrollable-menu {
188
+ height: auto;
189
+ max-height: 300px;
190
+ overflow-x: hidden;
191
+ }
192
+
193
+ .scrollable-menu::-webkit-scrollbar {
194
+ -webkit-appearance: none;
195
+ width: 12px;
196
+ background-color: #f5f5f5;
197
+ }
198
+
199
+ .scrollable-menu::-webkit-scrollbar-thumb {
200
+ border-radius: 10px;
201
+ -webkit-box-shadow: inset 0 0 6px rgba(255, 255, 255, 0.3);
202
+ background-color: #424242;
203
+ }
204
+
205
+ .scrollable-menu::-webkit-scrollbar-track {
206
+ -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
207
+ border-radius: 0px;
208
+ background-color: #f5f5f5;
209
+ }
210
+ </style>
149
211
  ++++
150
212
 
151
- === Liquid
213
+ === Highlight Liquid code
152
214
 
153
215
  {% raw %}
154
216
  [source, liquid]
@@ -162,7 +224,7 @@ Hello {{ 'now' | date: "%Y %h" }}
162
224
  ----
163
225
  {% endraw %}
164
226
 
165
- === Javascript
227
+ === Highlight Javascript code
166
228
 
167
229
  [source, javascript]
168
230
  ----
@@ -181,7 +243,7 @@ function styleSheetLoaded(styleSheet) {
181
243
  }
182
244
  ----
183
245
 
184
- === Ruby
246
+ === Highlight Ruby code
185
247
 
186
248
  [source, ruby]
187
249
  ----
@@ -207,16 +269,10 @@ end
207
269
 
208
270
  == Whats next
209
271
 
210
- You've explored some of the possibilities J1 offers for
211
- managing themes. But much, much more can the J1 do for your website.
212
-
213
- This was the last place to go for the roundtrip. More details of the most
214
- common elements of Bootstrap can be found on the previewer for a theme. Have
215
- a look at the link:{previewer-theme}[Theme previewer].
216
-
217
- To make things real for your new site, go for Web in a day. This tutorial
218
- guides you through all the steps on how to build a website - your site using
219
- Jekyll and the template system J1. It's really a pleasant journey to learn to
220
- create today's static webs.
272
+ Using a theme, the character of a website can change a lot. If you don't want
273
+ to support multiple themes with your site, a theme is a good base to create
274
+ your own theme, anayway.
221
275
 
222
- Start your journey from here: link:{kickstarter-web-in-a-day}[Web in a day].
276
+ An important feature for larger webs is searching. The visitors should be able
277
+ to search your site to find pages and posts they are interested in. Check what
278
+ is searching a J1 websites all about at link:{roundtrip-quicksearch}[Quicksearch].
@@ -0,0 +1,433 @@
1
+ ---
2
+ title: QuickSearch
3
+ tagline: full index search based on lunr
4
+ date: 2020-11-08 00:00:00
5
+ description: >
6
+ QuickSearch is based on the search engine Lunr,
7
+ fully integrated with J1 Template. Lunr is designed
8
+ to be lightweight, yet full featured to provide a
9
+ great search experience. No need for complex external,
10
+ server-sideed search engines, or commercial services
11
+ on the Internet like Google.
12
+
13
+ tags: [ Roundtrip, QuickSearch ]
14
+ categories: [ Search ]
15
+
16
+ toc: true
17
+ scrollbar: false
18
+
19
+ permalink: /pages/public/learn/roundtrip/quicksearch/
20
+ regenerate: false
21
+
22
+ resources: [ lunr, rouge, lightbox, clipboard ]
23
+ resource_options:
24
+ - toccer:
25
+ collapseDepth: 3
26
+ - attic:
27
+ padding_top: 400
28
+ padding_bottom: 50
29
+ opacity: 0.5
30
+ slides:
31
+ - url: /assets/images/modules/attics/banner/lunr-banner-1280x800.jpg
32
+ alt: Lunr
33
+ ---
34
+
35
+ // Page Initializer
36
+ // =============================================================================
37
+ // Enable the Liquid Preprocessor
38
+ :page-liquid:
39
+
40
+ // Set (local) page attributes here
41
+ // -----------------------------------------------------------------------------
42
+ // :page--attr: <attr-value>
43
+
44
+ // Load Liquid procedures
45
+ // -----------------------------------------------------------------------------
46
+ {% capture load_attributes %}themes/{{site.template.name}}/procedures/global/attributes_loader.proc{%endcapture%}
47
+
48
+ // Load page attributes
49
+ // -----------------------------------------------------------------------------
50
+ {% include {{load_attributes}} scope="all" %}
51
+
52
+ // Page content
53
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
54
+
55
+ // Include sub-documents
56
+ // -----------------------------------------------------------------------------
57
+
58
+
59
+ QuickSearch is based on the search engine Lunr, fully integrated with J1
60
+ Template. Lunr is designed to be lightweight, yet full featured to provide a
61
+ great search experience. No need for complex external, server-sideed search
62
+ engines, or commercial services on the Internet like Google.
63
+
64
+ Searching a website using QuickSearch is different in compare to search engines
65
+ like Google or Microsoft Bing. Those search platforms using complex algorithm
66
+ to provide a simple interface to the public, but using a lot of artificial
67
+ intelligence (AI) methods in behind to make senseful results out of a handfull
68
+ words given for a search.
69
+
70
+ Nevertheless, QuickSearch, the J1 implementation of Lunr, is simple like
71
+ searching at Google, but offers additional features to do searches more
72
+ specific - if wanted. QuickSearch provides a easy to use query language for
73
+ better results - anyway!
74
+
75
+ == Core concepts
76
+
77
+ Understanding some of the concepts and terminology that QuickSearch (Lunr)
78
+ uses will allow users to provide powerful search functionality - to get more
79
+ relevant search results.
80
+
81
+ === Indexing documents
82
+
83
+ QuickSearch, offers searches on *all* documents of website generated by J1
84
+ but only for this site. Advantage, no internet access is done for searches,
85
+ because it's not needed. Searches are based on a pre-build local site
86
+ *full-text* index loaded by the browser on a page request. The index for a
87
+ site is generated by the (Jekyll) plugin `lunr_index.rb` located in the
88
+ `_plugins` folder.
89
+
90
+ The full-text index is always generated by Jekyll at build-time:
91
+
92
+ .Index creation at buildtime
93
+ ----
94
+ Startup the site ..
95
+ Configuration file: ...
96
+
97
+ Incremental build: enabled
98
+ Generating...
99
+ J1 QuickSearch: creating search index ...
100
+ J1 QuickSearch: finished, index ready.
101
+ ....
102
+ ----
103
+
104
+ Or, if you're running a website in development mode, the index gets refreshed
105
+ for all files added or modified.
106
+
107
+ .Index creation if files added, or modified
108
+ ----
109
+ site: Regenerating: n file(s) changed at ...
110
+ site: ...
111
+ site: J1 QuickSearch: creating search index ...
112
+ site: J1 QuickSearch: finished, index ready.
113
+ ...
114
+ ----
115
+
116
+ === Documents
117
+
118
+ The searchable data in an index is organized as documents that contains the
119
+ text, the words (terms), that you want to be able to search on. A document is
120
+ a data set (JSON object) with a set of fields that are processed to create the
121
+ result list for a search.
122
+
123
+ A document data set might look like this:
124
+
125
+ [source, json, role="noclip"]
126
+ ----
127
+ {
128
+ "title": "Web in a Day",
129
+ "tagline": "meet & greet jekyll",
130
+ "url": "/pages/public/learn/kickstarter/web_in_a_day/meet_and_greet/",
131
+ "date": "2018-05-01 00:00:00 +0000",
132
+ "tags": [
133
+ "Introduction"
134
+ ],
135
+ "categories": [
136
+ "Jekyll",
137
+ "Knowledge",
138
+ "Tutorial"
139
+ ],
140
+ "description": "Web in a Day is the first in a series of tutorials ..."
141
+ }
142
+ ----
143
+
144
+ In this document there are several fields, like `title`, `tagline`, or
145
+ `description` that could be used for *full-text* searches. But additional
146
+ fields are available, like `tags` or `categories` that can be used for
147
+ more specific searches based on `identifiers`.
148
+
149
+ NOTE: The document *content* is collected by the (intrinsic) field `body`.
150
+ To limit the size of the index data loaded by the browser, the body
151
+ field is removed from a document. The `body` field not available as an
152
+ *explicit* field for searches, but the *content* is fully searchable.
153
+
154
+ To do a simple full-text search as well as more specific searches, the
155
+ QuickSearch core engine Lunr offers a query language, a DSL (domain specific
156
+ language). Find more about *QuickSearch|Lunr DSL* queries with section
157
+ <<Searching>>.
158
+
159
+ === Scoring
160
+
161
+ The relevance (the `score`) of a document is calculated based on an algorithm
162
+ called *BM25*, along with other factors. You don’t need to worry too much about
163
+ the details of how this technically works. To summarize: the more a search term
164
+ occurs in a single document, the more that term will increase that document’s
165
+ score, but the more a search term occurs in the *overall* collection of
166
+ documents, the less that term will increase a document’s score. In other words,
167
+ seldom words counts, and increase the score.
168
+
169
+ Scoring information, generated by the BM25 algorithm, is added to the (local)
170
+ search index. This allows a very fast calculation of the relevance of documents
171
+ for queries.
172
+
173
+ Imagine you’re website contains documents about Jekyll. The term `Jekyll` may
174
+ occur very frequently throughout the entire website; used quite often for the
175
+ content. So finding a document that mentions the term Jekyll isn’t very
176
+ significant for a search.
177
+
178
+ However, if you’re searching for `Jekyll Generator`, only some documents of
179
+ the website have the word `Generator` in them, and that will bring the score
180
+ (relevance) for documents having both words in them at a higher level,
181
+ bring them higher up in the search results.
182
+
183
+ Matching and scoring is used by all search engines; the same to J1 QuickSearch.
184
+ You'll see for QuickSearch a similiar behavior in *sorting* search results as
185
+ you already know from commercial internet search engines like Google: the top
186
+ results are the more relevant ones.
187
+
188
+ == Searching
189
+
190
+ To access QuickSearch, a magnifier button is available in the `Quicklinks`
191
+ area in the menu bar at the top-right of every page.
192
+
193
+ .Search button (magnifier) in the quick access area
194
+ lightbox::quicksearch-icon[ 800, {data-quicksearch-icon} ]
195
+
196
+ A mouse-click on the magnifier button opens the search input and disables
197
+ all other navigation to focus on what you're itended to do: searching.
198
+
199
+ .Input bar for a QuickSearch
200
+ lightbox::quicksearch-input[ 800, {data-quicksearch-input} ]
201
+
202
+ Search queries looks like simple text. But the search `engine` under the
203
+ hood of QuickSearch transforms the given search string (text) always into a
204
+ search query. This supports a special syntax, the DSL, for defining more
205
+ complex queries for better (scored) results.
206
+
207
+ As always: start simple!
208
+
209
+ === Simple searches
210
+
211
+ The simplest way to run a search is to pass the text (words, terms) on which
212
+ you want to search on:
213
+
214
+ [source, text]
215
+ ----
216
+ jekyll
217
+ ----
218
+
219
+ The above will return all documents that match the term `jekyll`. Searches for
220
+ *multiple* terms (words) are also supported. If a document matches *at least*
221
+ one of the search terms, it will show in the results. The search terms are
222
+ combined by a logical `OR`.
223
+
224
+ [source, text]
225
+ ----
226
+ jekyll tutorial
227
+ ----
228
+
229
+ The above example will match documents that contain either `jekyll` *OR*
230
+ `tutorial`. Documents that contain _both_ will increase the score, and those
231
+ documents be returned first.
232
+
233
+ NOTE: In difference to a Google search (terms are combined at Google by a
234
+ logical `AND`) a Quicksearch combines the terms by an `OR`.
235
+
236
+ To combine search terms in a QuickSearch query by a logical *AND*, the terms
237
+ could be prepended by a plus sign (`+`) to mark them as for the QuickSearch
238
+ query (DSL) as *required*:
239
+
240
+ [source, text]
241
+ ----
242
+ +jekyll +tutorial
243
+ ----
244
+
245
+ === Wildcards
246
+
247
+ QuickSearch supports wildcards when performing searches. A wildcard is
248
+ represented as an asterisk (`*`) and can appear anywhere in a search
249
+ term. For example, the following will match all documents with words
250
+ beginning with `Jek`:
251
+
252
+ [source, text]
253
+ ----
254
+ jek*
255
+ ----
256
+
257
+ NOTE: Language grammar rules are not relevant for searches. To simplify an
258
+ index, all words (terms) are transformed to lower case. As result, a word
259
+ `Jekyll` is the same as `jekyll` from a search-engines prospective. Language
260
+ variations of words like `Jekyll's` or plurals like `Generators` are reduced
261
+ to their base form. For searches, don't take care of grammar rules but the
262
+ spelling. If you're unsure about the spelling of a word, use wildcards.
263
+
264
+
265
+ === Fields
266
+
267
+ By default, Lunr will search *all fields* in a document for the given query
268
+ terms, and it is possible to restrict a term to a specific *field*. The
269
+ following example searches for the term `jekyll` in the field title:
270
+
271
+ [source, text]
272
+ ----
273
+ title:jekyll
274
+ ----
275
+
276
+ The search term is prefixed with the name of the field, followed by a
277
+ colon (`:`). The field _must_ be one of the fields defined when building
278
+ the index. Unrecognised fields will lead to an error.
279
+
280
+ Field-based searches can be combined with all other term modifiers and
281
+ wildcards, as well as other terms. For example, to search for words
282
+ beginning with `jek` in the title *AND* the wildcard `coll*` in a document,
283
+ the following query can be used:
284
+
285
+ [source, text]
286
+ ----
287
+ +title:jek* +coll*
288
+ ----
289
+
290
+ ==== Available fields
291
+
292
+ Beside the document *body*, an intrinsic field to create the full-text index
293
+ out of the document *content*, some more specific fields are available for
294
+ searches.
295
+
296
+ .Available fields (all documents)
297
+ [cols="3a,3a,6a, options="header", width="100%", role="rtable mt-3"]
298
+ |===============================================================================
299
+ |Name |Value |Description\|Example\|s
300
+
301
+ |`title`
302
+ |`string`
303
+ |The headline of a document (article, post)
304
+
305
+ Example\|s: QuickSearch
306
+ [source, text]
307
+ ----
308
+ title:QuickSearch
309
+ ----
310
+
311
+ |`tagline`
312
+ |`string`
313
+ |The subtitle of a document (article, post)
314
+
315
+ Example\|s: full index search
316
+
317
+ |`tags`
318
+ |`string`
319
+ |Tags describe the content of a document.
320
+
321
+ Example\|s: Roundtrip, QuickSearch
322
+
323
+ |`categories`
324
+ |`string`
325
+ |Categories describe the group of documnets a document belongs to.
326
+
327
+ Example\|s: Search
328
+
329
+ |`description`
330
+ |`string`
331
+ |The description is given by the author for a document. It gives a brief
332
+ summary what the document is all about.
333
+
334
+ Example\|s: QuickSearch is based on the search engine Lunr, fully integrated
335
+ with J1 Template ...
336
+
337
+ |===============================================================================
338
+
339
+
340
+ ////
341
+ === Boosts
342
+
343
+ In multi-term searches, a single term may be important than others. For
344
+ these cases Lunr supports term level boosts. Any document that matches a
345
+ boosted term will get a higher relevance score, and appear higher up in
346
+ the results. A boost is applied by appending a caret (`^`) and then a
347
+ positive integer to a term.
348
+
349
+ [source, javascript]
350
+ ----
351
+ idx.search('foo^10 bar')
352
+ ----
353
+
354
+ The above example weights the term “foo” 10 times higher than the term
355
+ “bar”. The boost value can be any positive integer, and different terms
356
+ can have different boosts:
357
+
358
+ [source, javascript]
359
+ ----
360
+ idx.search('foo^10 bar^5 baz')
361
+ ----
362
+
363
+ === Fuzzy Matches
364
+
365
+ Lunr supports fuzzy matching search terms in documents, which can be
366
+ helpful if the spelling of a term is unclear, or to increase the number
367
+ of search results that are returned. The amount of fuzziness to allow
368
+ when searching can also be controlled. Fuzziness is applied by appending
369
+ a tilde (`~`) and then a positive integer to a term. The following
370
+ search matches all documents that have a word within 1 edit distance of
371
+ “foo”:
372
+
373
+ [source, javascript]
374
+ ----
375
+ idx.search('foo~1')
376
+ ----
377
+
378
+ An edit distance of 1 allows words to match if either adding, removing,
379
+ changing or transposing a character in the word would lead to a match.
380
+ For example “boo” requires a single edit (replacing “f” with “b”) and
381
+ would match, but “boot” would not as it also requires an additional “t”
382
+ at the end.
383
+ ////
384
+
385
+ === Term presence
386
+
387
+ By default, Lunr combines multiple terms together in a search with a
388
+ logical OR. That is, a search for `jekyll collections` will match documents
389
+ that contain `jekyll` or contain `collections` or contain both. This behaviour
390
+ is controllable at the term level, i.e. the presence of each term in
391
+ matching documents can be specified.
392
+
393
+ By default each term is optional in a matching document, though a document
394
+ must have at least one matching term. It is possible to specify that a term
395
+ must be present in matching documents, or that it must be absent in matching
396
+ documents.
397
+
398
+ To indicate that a term must be *present* in matching documents the term
399
+ could be prefixed with a plus sign (`+`) (required) and to indicate that a
400
+ term must be *absent* (not wanted) the term should be prefixed with a minus
401
+ (`-`).
402
+
403
+ The below example searches for documents that *must* contain `jekyll`, and
404
+ must *not* contain the word `collection`:
405
+
406
+ [source, text]
407
+ ----
408
+ +jekyll -collection
409
+ ----
410
+
411
+ To simulate a logical *AND* search of documents that contains the word `jekyll`
412
+ *AND* the word `collection`, mark both terms as required:
413
+
414
+ [source, text]
415
+ ----
416
+ +jekyll +collection
417
+ ----
418
+
419
+
420
+ == Whats next
421
+
422
+ You've explored some of the possibilities J1 offers for websites. But much,
423
+ much more can J1 do for your project. This was the last place to go for the
424
+ roundtrip. More details of the most common elements of Bootstrap can be found
425
+ on the previewer for a theme. Have a look at the
426
+ link:{previewer-theme}[Theme previewer].
427
+
428
+ To make things real for your new site, go for *Web in a day*. This tutorial
429
+ guides you through all the steps on how to build a website. Your site using
430
+ Jekyll and the template system J1. It's really a pleasant journey to learn what
431
+ modern static webs can offer today.
432
+
433
+ // Start your journey from here: link:{kickstarter-web-in-a-day}[Web in a day].