j1-template 2021.0.4 → 2021.0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (265) 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 +1 -1
  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 +36 -4
  10. data/assets/data/mmenu_toc.html +1 -1
  11. data/assets/themes/j1/adapter/js/fam.js +2 -2
  12. data/assets/themes/j1/adapter/js/j1.js +3 -2
  13. data/assets/themes/j1/adapter/js/themer.js +2 -1
  14. data/assets/themes/j1/core/css/animate.min.css +1 -7
  15. data/assets/themes/j1/core/css/icon-fonts/fontawesome.css +302 -22
  16. data/assets/themes/j1/core/css/icon-fonts/fontawesome.min.css +1 -1
  17. data/assets/themes/j1/core/css/icon-fonts/materialdesign.css +12505 -4812
  18. data/assets/themes/j1/core/css/icon-fonts/materialdesign.min.css +1 -1
  19. data/assets/themes/j1/core/css/icon-fonts/twemoji.min.css +1 -1
  20. data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.css +79 -49
  21. data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.min.css +1 -6
  22. data/assets/themes/j1/core/css/themes/uno-dark/bootstrap.css +78 -48
  23. data/assets/themes/j1/core/css/themes/uno-dark/bootstrap.min.css +1 -6
  24. data/assets/themes/j1/core/css/themes/uno-light/bootstrap.css +126 -52
  25. data/assets/themes/j1/core/css/themes/uno-light/bootstrap.min.css +1 -8
  26. data/assets/themes/j1/core/css/vendor.css +2 -2
  27. data/assets/themes/j1/core/css/vendor.min.css +1 -1
  28. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/eot/fa-brands-400.eot +0 -0
  29. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/eot/fa-regular-400.eot +0 -0
  30. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/eot/fa-solid-900.eot +0 -0
  31. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-brands-400.woff +0 -0
  32. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-brands-400.woff2 +0 -0
  33. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-regular-400.woff +0 -0
  34. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-regular-400.woff2 +0 -0
  35. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-solid-900.woff +0 -0
  36. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-solid-900.woff2 +0 -0
  37. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/svg/fa-brands-400.svg +855 -597
  38. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/svg/fa-regular-400.svg +94 -96
  39. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/svg/fa-solid-900.svg +1272 -771
  40. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/ttf/fa-brands-400.ttf +0 -0
  41. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/ttf/fa-regular-400.ttf +0 -0
  42. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/ttf/fa-solid-900.ttf +0 -0
  43. data/assets/themes/j1/core/fonts/{materialdesign_icons/fonts → material_design_icons/fonts/_versions/v3.3.92}/eot/materialdesignicons-webfont.eot +0 -0
  44. data/assets/themes/j1/core/fonts/{materialdesign_icons/fonts → material_design_icons/fonts/_versions/v3.3.92}/materialdesignicons-webfont.woff +0 -0
  45. data/assets/themes/j1/core/fonts/{materialdesign_icons/fonts → material_design_icons/fonts/_versions/v3.3.92}/materialdesignicons-webfont.woff2 +0 -0
  46. data/assets/themes/j1/core/fonts/{materialdesign_icons/fonts → material_design_icons/fonts/_versions/v3.3.92}/svg/materialdesignicons-webfont.svg +0 -0
  47. data/assets/themes/j1/core/fonts/{materialdesign_icons/fonts → material_design_icons/fonts/_versions/v3.3.92}/ttf/materialdesignicons-webfont.ttf +0 -0
  48. data/assets/themes/j1/core/fonts/material_design_icons/fonts/_versions/v5.9.55/eot/materialdesignicons-webfont.eot +0 -0
  49. data/assets/themes/j1/core/fonts/material_design_icons/fonts/_versions/v5.9.55/materialdesignicons-webfont.woff +0 -0
  50. data/assets/themes/j1/core/fonts/material_design_icons/fonts/_versions/v5.9.55/materialdesignicons-webfont.woff2 +0 -0
  51. data/assets/themes/j1/core/fonts/material_design_icons/fonts/_versions/v5.9.55/preview.html +717 -0
  52. data/assets/themes/j1/core/fonts/material_design_icons/fonts/_versions/v5.9.55/svg/materialdesignicons-webfont.svg +10188 -0
  53. data/assets/themes/j1/core/fonts/material_design_icons/fonts/_versions/v5.9.55/ttf/materialdesignicons-webfont.ttf +0 -0
  54. data/assets/themes/j1/core/fonts/material_design_icons/fonts/eot/materialdesignicons-webfont.eot +0 -0
  55. data/assets/themes/j1/core/fonts/material_design_icons/fonts/materialdesignicons-webfont.woff +0 -0
  56. data/assets/themes/j1/core/fonts/material_design_icons/fonts/materialdesignicons-webfont.woff2 +0 -0
  57. data/assets/themes/j1/core/fonts/material_design_icons/fonts/svg/materialdesignicons-webfont.svg +10188 -0
  58. data/assets/themes/j1/core/fonts/material_design_icons/fonts/ttf/materialdesignicons-webfont.ttf +0 -0
  59. data/assets/themes/j1/core/fonts/{materialdesign_icons → material_design_icons}/metadata/icons.json +0 -0
  60. data/assets/themes/j1/core/fonts/{materialdesign_icons → material_design_icons}/metadata/icons.yml +0 -0
  61. data/assets/themes/j1/core/js/template.min.js +23 -1
  62. data/assets/themes/j1/modules/jquery/js/jquery-3.5.1.min.map +1 -0
  63. data/assets/themes/j1/modules/justifiedGallery/_versions/v3.8.0/css/justifiedGallery.css +110 -0
  64. data/assets/themes/j1/modules/justifiedGallery/_versions/v3.8.0/css/justifiedGallery.min.css +110 -0
  65. data/assets/themes/j1/modules/justifiedGallery/_versions/v3.8.0/js/jquery.justifiedGallery.js +1245 -0
  66. data/assets/themes/j1/modules/justifiedGallery/_versions/v3.8.0/js/jquery.justifiedGallery.min.js +8 -0
  67. data/assets/themes/j1/modules/justifiedGallery/_versions/v3.8.0/justifiedGallery.min.zip +0 -0
  68. data/assets/themes/j1/modules/justifiedGallery/_versions/v3.8.0/justifiedGallery.zip +0 -0
  69. data/assets/themes/j1/modules/justifiedGallery/css/_archived/justifiedGallery.css +110 -0
  70. data/assets/themes/j1/modules/justifiedGallery/css/_archived/justifiedGallery.min.css +110 -0
  71. data/assets/themes/j1/modules/justifiedGallery/css/justifiedGallery.css +11 -10
  72. data/assets/themes/j1/modules/justifiedGallery/css/justifiedGallery.min.css +3 -106
  73. data/assets/themes/j1/modules/justifiedGallery/js/justifiedGallery.js +147 -146
  74. data/assets/themes/j1/modules/justifiedGallery/js/justifiedGallery.min.js +3 -3
  75. data/assets/themes/j1/modules/lightGallery/js/core/lightgallery.min.js +1 -2
  76. data/assets/themes/j1/modules/lightbox/js/lightbox.js +1 -1
  77. data/assets/themes/j1/modules/lunrSearch/js/quicksearch.min.js +1 -1
  78. data/assets/themes/j1/modules/mdiPreviewer/css/previewer.css +20 -5
  79. data/assets/themes/j1/modules/mdiPreviewer/css/previewer.min.css +1 -1
  80. data/assets/themes/j1/modules/mdiPreviewer/js/previewer.js +115 -0
  81. data/assets/themes/j1/modules/mdiPreviewer/js/previewer.min.js +15 -0
  82. data/assets/themes/j1/modules/mdiPreviewer/js/previewer.new.js +111 -0
  83. data/assets/themes/j1/modules/mdiPreviewer/js/previewer.old.js +103 -0
  84. data/assets/themes/j1/modules/mmenuLight/js/mmenu.js +2 -2
  85. data/assets/themes/j1/modules/mmenuLight/js/mmenu.min.js +3 -3
  86. data/assets/themes/j1/modules/twemoji/css/picker/twemoji-picker.css +4 -4
  87. data/assets/themes/j1/modules/twemoji/css/picker/twemoji-picker.min.css +1 -1
  88. data/assets/themes/j1/modules/twemoji/js/picker/twemoji-picker.js +46 -45
  89. data/assets/themes/j1/modules/twemoji/js/picker/twemoji-picker.min.js +1 -1
  90. data/lib/j1/commands/generate.rb +3 -2
  91. data/lib/j1/version.rb +1 -1
  92. data/lib/j1_app/j1_auth_manager/auth_manager.rb +15 -0
  93. data/lib/starter_web/Gemfile +18 -17
  94. data/lib/starter_web/_config.yml +9 -7
  95. data/lib/starter_web/_data/apps/light_gallery.yml +1 -1
  96. data/lib/starter_web/_data/asciidoc2pdf/themes/j1-theme.yml +225 -188
  97. data/lib/starter_web/_data/j1_config.yml +3 -3
  98. data/lib/starter_web/_data/modules/defaults/navigator.yml +1 -1
  99. data/lib/starter_web/_data/modules/defaults/quicksearch.yml +13 -4
  100. data/lib/starter_web/_data/modules/defaults/toccer.yml +1 -1
  101. data/lib/starter_web/_data/modules/navigator_menu.yml +28 -72
  102. data/lib/starter_web/_data/resources.yml +3 -26
  103. data/lib/starter_web/_includes/attributes.asciidoc +296 -96
  104. data/lib/starter_web/_includes/tables/jekyll_variables.asciidoc +1 -1
  105. data/lib/starter_web/_includes/tables/template_variables.asciidoc +1 -1
  106. data/lib/starter_web/_plugins/asciidoctor-extensions/fab-icon-inline.rb +1 -1
  107. data/lib/starter_web/_plugins/lunr_index.rb +20 -1
  108. data/lib/starter_web/_plugins/minifyJS.rb +3 -0
  109. data/lib/starter_web/assets/images/modules/attics/machine-generator-1920x1280.jpg +0 -0
  110. data/lib/starter_web/assets/images/modules/attics/modules-apps-1920x1280.jpg +0 -0
  111. data/lib/starter_web/assets/images/modules/attics/nicola-styles-1920x1280.jpg +0 -0
  112. data/lib/starter_web/assets/images/modules/attics/no-time-1920x1280.jpg +0 -0
  113. data/lib/starter_web/assets/images/modules/attics/responsive-text-1920x1280.jpg +0 -0
  114. data/lib/starter_web/assets/images/modules/icons/d1/scalable/d1.svg +1 -1
  115. data/lib/starter_web/assets/images/pages/panels/modules-apps-1920x800.jpg +0 -0
  116. data/lib/starter_web/assets/images/pages/panels/no-time-1920x800.jpg +0 -0
  117. data/lib/starter_web/assets/images/pages/panels/the-place-1920x800.jpg +0 -0
  118. data/lib/starter_web/assets/images/pages/roundtrip/600_quicksearch/quicksearch_icon-800x200.jpg +0 -0
  119. data/lib/starter_web/assets/images/pages/roundtrip/600_quicksearch/quicksearch_icon.jpg +0 -0
  120. data/lib/starter_web/assets/images/pages/roundtrip/600_quicksearch/quicksearch_input-800x200.jpg +0 -0
  121. data/lib/starter_web/assets/images/pages/roundtrip/600_quicksearch/quicksearch_input.jpg +0 -0
  122. data/lib/starter_web/assets/images/pages/roundtrip/600_quicksearch/quicksearch_results_jekyll-.jpg +0 -0
  123. data/lib/starter_web/assets/images/pages/roundtrip/600_quicksearch/quicksearch_results_jekyll.jpg +0 -0
  124. data/lib/starter_web/assets/images/pages/skeleton/annie-spratt-1920x1280.jpg +0 -0
  125. data/lib/starter_web/assets/images/pages/skeleton/antonino-visalli-1920x1280.jpg +0 -0
  126. data/lib/starter_web/assets/images/pages/skeleton/humble-lamb-1920x1280.jpg +0 -0
  127. data/lib/starter_web/assets/images/pages/skeleton/library-1920x1280.jpg +0 -0
  128. data/lib/starter_web/assets/images/pages/skeleton/romain-vignes-1920x1280.jpg +0 -0
  129. data/lib/starter_web/assets/images/pages/skeleton/sigmund-1920x1280.jpg +0 -0
  130. data/lib/starter_web/assets/images/pages/writers_guide/1280px-PDCA_Process.png +0 -0
  131. data/lib/starter_web/assets/images/pages/writers_guide/annie-spratt-1920x1280.jpg +0 -0
  132. data/lib/starter_web/assets/images/pages/writers_guide/deming-cycle.png +0 -0
  133. data/lib/starter_web/assets/images/pages/writers_guide/humble-lamb-1920x1280.jpg +0 -0
  134. data/lib/starter_web/assets/images/pages/writers_guide/john-schnobrich-1920x1280.jpg +0 -0
  135. data/lib/starter_web/assets/images/pages/writers_guide/sigmund-1920x1280.jpg +0 -0
  136. data/lib/starter_web/collections/posts/public/featured/_posts/0000-00-00-welcome-to-j1-template.adoc.erb +10 -13
  137. 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
  138. 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
  139. data/lib/starter_web/collections/posts/public/featured/_posts/{2019-06-01-about-cookies.adoc → 2020-06-01-about-cookies.adoc} +10 -24
  140. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-01-post-test-series.adoc +7 -18
  141. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-02-post-test-series.adoc +7 -17
  142. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-03-post-test-series.adoc +7 -17
  143. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-04-post-test-series.adoc +7 -17
  144. data/{assets/themes/j1/modules/mdiPreviewer/js → lib/starter_web/collections/posts/public/series/_posts/_includes/documents}/readme +0 -0
  145. data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-20-minneapolis.adoc +5 -4
  146. data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-24-narcisse-snake-dens.adoc +13 -3
  147. data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-26-columbia-river.adoc +13 -3
  148. data/lib/starter_web/favicon.ico +0 -0
  149. data/lib/starter_web/index.html +4 -6
  150. data/lib/starter_web/package.json +3 -3
  151. data/lib/starter_web/pages/public/about/about_site.adoc +39 -16
  152. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/asciidoc-extensions/blindtext.asciidoc +11 -0
  153. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/asciidoc-extensions/font_icons.asciidoc +23 -0
  154. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/asciidoc-extensions/gallery.asciidoc +5 -0
  155. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/asciidoc-extensions/lightbox.asciidoc +7 -0
  156. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/documents/chapter_document.asciidoc +9 -0
  157. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/documents/entry_document.asciidoc +3 -0
  158. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/images/image.asciidoc +6 -0
  159. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/tables/table_2_column.asciidoc +12 -0
  160. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/tables/table_2_column_options.asciidoc +30 -0
  161. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/tables/table_3_column.asciidoc +16 -0
  162. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/tables/table_4_column.asciidoc +25 -0
  163. data/lib/starter_web/pages/public/asciidoc_skeletons/book/000_intro.adoc +61 -0
  164. data/lib/starter_web/pages/public/asciidoc_skeletons/book/100_chapter.adoc +58 -0
  165. data/lib/starter_web/pages/public/asciidoc_skeletons/book/200_chapter.adoc +59 -0
  166. data/lib/starter_web/pages/public/asciidoc_skeletons/book/900_references.adoc +68 -0
  167. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/attributes.asciidoc +68 -0
  168. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/000_intro.asciidoc +33 -0
  169. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/100_chapter.asciidoc +7 -0
  170. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/100_chapter/100_chapter_document.asciidoc +21 -0
  171. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/100_chapter/110_chapter_document.asciidoc +36 -0
  172. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/200_chapter.asciidoc +5 -0
  173. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/200_chapter/200_chapter_document.asciidoc +53 -0
  174. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/900_references.asciidoc +23 -0
  175. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/900_references/000_intro.asciidoc +23 -0
  176. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/900_references/100_chapter_document.asciidoc +33 -0
  177. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/900_references/200_chapter_document.asciidoc +26 -0
  178. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/900_references/900_sources.asciidoc +81 -0
  179. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/tables/110_material_design_icons.asciidoc +102 -0
  180. data/lib/starter_web/pages/public/asciidoc_skeletons/book/a2p.bat +28 -0
  181. data/lib/starter_web/pages/public/asciidoc_skeletons/book/a2p.sh +26 -0
  182. data/lib/starter_web/pages/public/asciidoc_skeletons/book/book.a2p +114 -0
  183. data/lib/starter_web/pages/public/asciidoc_skeletons/book/book.adoc +128 -0
  184. data/lib/starter_web/pages/public/asciidoc_skeletons/book/book.pdf +5440 -0
  185. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/100_chapter.asciidoc +60 -0
  186. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/200_chapter.asciidoc +59 -0
  187. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/attributes.asciidoc +63 -0
  188. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/documents/100_chapter.asciidoc +53 -0
  189. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/documents/200_chapter.asciidoc +53 -0
  190. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/documents/tables/110_material_design_icons.asciidoc +102 -0
  191. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +84 -0
  192. data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +236 -0
  193. data/lib/starter_web/pages/public/blog/navigator/archive.html +2 -0
  194. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +3 -1
  195. data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +2 -0
  196. data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +2 -0
  197. data/lib/starter_web/pages/public/blog/navigator/index.html +2 -0
  198. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +8 -4
  199. data/lib/starter_web/pages/public/learn/roundtrip/100_present_videos.adoc +3 -4
  200. data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +2 -270
  201. data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +168 -85
  202. data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +6 -9
  203. data/lib/starter_web/pages/public/learn/roundtrip/410_bs_modals_extentions.adoc +5 -6
  204. data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +2 -55
  205. data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +116 -57
  206. data/lib/starter_web/pages/public/learn/roundtrip/600_quicksearch.adoc +433 -0
  207. data/lib/starter_web/pages/public/learn/roundtrip/_includes/attributes.asciidoc +4 -1
  208. data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/{410_table_3_column.asciidoc → 410_table_bs_modal_examples.asciidoc} +0 -0
  209. data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/tables/bs_modal_examples.asciidoc +47 -0
  210. data/lib/starter_web/pages/public/learn/where_to_go.adoc +2 -2
  211. data/lib/starter_web/pages/public/legal/en/000_copyright.adoc +1 -1
  212. data/lib/starter_web/pages/public/legal/en/100_impress.adoc +1 -1
  213. data/lib/starter_web/pages/public/legal/en/200_terms_of_use.adoc +1 -1
  214. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +1 -1
  215. data/lib/starter_web/pages/public/legal/en/400_license_agreement.adoc +1 -1
  216. data/lib/starter_web/pages/public/legal/en/500_support.adoc +1 -1
  217. data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +16 -5
  218. data/lib/starter_web/pages/public/previewer/_includes/attributes.asciidoc +5 -81
  219. data/lib/starter_web/pages/public/previewer/_includes/documents/rouge/100_language_examples.asciidoc +119 -0
  220. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/100_absolute_sizes.asciidoc +1 -1
  221. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/110_bs_grid_sizes.asciidoc +1 -1
  222. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/120_relative_sizes.asciidoc +1 -1
  223. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/200_rotate.asciidoc +1 -1
  224. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/300_flip.asciidoc +1 -1
  225. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/400_spin_pulsed.asciidoc +4 -4
  226. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/500_bw_color_palette.asciidoc +1 -1
  227. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/510_bs_color_palette.asciidoc +1 -1
  228. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/600_md_color_palette.asciidoc +1 -1
  229. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/601_md_color_palette_indigo.asciidoc +1 -1
  230. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/602_md_color_palette_pink.asciidoc +1 -1
  231. data/lib/starter_web/pages/public/previewer/_includes/tables/rouge/200_rouge_attributes.asciidoc +41 -0
  232. data/lib/starter_web/pages/public/previewer/_includes/tables/rouge/300_supported_languages.asciidoc +857 -0
  233. data/lib/starter_web/pages/public/previewer/_includes/tables/twitter_emoji/100_bs_sizes.asciidoc +1 -1
  234. data/lib/starter_web/pages/public/previewer/_includes/tables/twitter_emoji/100_relative_sizes.asciidoc +1 -1
  235. data/lib/starter_web/pages/public/previewer/_includes/tables/twitter_emoji/200_rotate.asciidoc +1 -1
  236. data/lib/starter_web/pages/public/previewer/_includes/tables/twitter_emoji/300_flip.asciidoc +1 -1
  237. data/lib/starter_web/pages/public/previewer/_includes/tables/twitter_emoji/400_spin_pulsed.asciidoc +1 -1
  238. data/lib/starter_web/pages/public/previewer/bootstrap_theme.adoc +116 -78
  239. data/lib/starter_web/pages/public/previewer/iframer.adoc +1 -1
  240. data/lib/starter_web/pages/public/previewer/justified_gallery.html +1 -1
  241. data/lib/starter_web/pages/public/previewer/mdi_icons_preview.adoc +42 -109
  242. data/lib/starter_web/pages/public/previewer/rouge.adoc +77 -352
  243. data/lib/starter_web/pages/public/previewer/twitter_emoji_preview.adoc +3 -3
  244. data/lib/starter_web/utilsrv/_defaults/package.json +2 -2
  245. data/lib/starter_web/utilsrv/package.json +3 -3
  246. metadata +114 -37
  247. data/assets/themes/j1/modules/twemoji/js/LICENSE +0 -21
  248. data/lib/starter_web/_plugins/simple_search_filter.rb +0 -32
  249. data/lib/starter_web/collections/posts/public/featured/_posts/_includes/documents/unsplash-badge.asciidoc +0 -31
  250. data/lib/starter_web/collections/posts/public/series/_posts/_includes/documents/100-docker-using-shared-folders.asciidoc +0 -430
  251. data/lib/starter_web/collections/posts/public/series/_posts/_includes/documents/loop.sh +0 -28
  252. data/lib/starter_web/pages/public/about/become_a_patron.adoc +0 -46
  253. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/100_meet_and_greet_jekyll.adoc +0 -79
  254. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/200_preparations.adoc +0 -77
  255. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/300_first_awesome_web.adoc +0 -75
  256. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/_includes/attributes.asciidoc +0 -176
  257. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/_includes/documents/100_meet_and_greet_jekyll.asciidoc +0 -31
  258. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/_includes/documents/200_preparations.asciidoc +0 -14
  259. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/_includes/documents/300_first_awesome_web.asciidoc +0 -11
  260. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/_includes/parts.asciidoc +0 -193
  261. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/_includes/tables/debug_variables.asciidoc +0 -47
  262. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/_includes/tables/readme +0 -1
  263. data/lib/starter_web/pages/public/learn/roundtrip/600_lunr.adoc +0 -335
  264. data/lib/starter_web/pages/public/learn/roundtrip/610_fam.adoc +0 -294
  265. data/lib/starter_web/pages/public/learn/roundtrip/_includes/tables/readme +0 -0
@@ -1,31 +0,0 @@
1
-
2
- *Web in a Day* is the first in a series of tutorials to learn how to
3
- create modern websites using Jekyll. This Kickstarter focuses on the basics
4
- of Jekyll and the J1 Template, which all people needs to know for a successful
5
- way to a modern static website using Jekyll and J1 Template.
6
-
7
- It is highly recommended to read and work on this tutorial by everyone -
8
- independently from what level of knowledge they begin. Jekyll is from classic
9
- Content Management Systems (CMS) like Joomla, WordPress or Drupal.
10
- No surprise: Jekyll and J1 are different as well.
11
-
12
- It sounds much, spending a whole day to get Jekyll to know - yes, it is much.
13
- You'll find a lot of Blog articles like *Jekyll in 15 minutes*. But what can
14
- be *learned* in 15 minutes?
15
-
16
- To be fair, most of these blogs are intended to help *installing Jekyll* and
17
- get the very first steps managed out of the box. If you run Jekyll out of the
18
- box, the resulting website (from the build-in theme scaffold) might somewhat
19
- frustrating. You'll get an elementary site created based on Jekyll's theme
20
- *minima*.
21
-
22
- To not waste time, get through the tutorial and find out what is the
23
- *Jekyll Way*. And if this the way you want to go.
24
-
25
- Have a good time, a good day learning Jekyll.
26
-
27
-
28
- == Meet and greet Jekyll
29
-
30
- lorem:sentences[5] +
31
- lorem:sentences[3] +
@@ -1,14 +0,0 @@
1
- lorem:sentences[5]
2
-
3
- To not waste time, get through the turorial and find out what is the *Jekyll Way*.
4
- And if this the way you want to go.
5
-
6
- Have a good time, a good day learning Jekyll.
7
-
8
- == Preparations
9
-
10
- lorem:sentences[5] +
11
- lorem:sentences[3] +
12
-
13
-
14
-
@@ -1,11 +0,0 @@
1
- lorem:sentences[5]
2
-
3
- To not waste time, get through the turorial and find out what is the *Jekyll Way*.
4
- And if this the way you want to go.
5
-
6
- Have a good time, a good day learning Jekyll.
7
-
8
- == First awesome website
9
-
10
- lorem:sentences[5] +
11
- lorem:sentences[3] +
@@ -1,193 +0,0 @@
1
- // ~/document_base_folder/000_includes
2
- // Asciidoc part includes: parts.asciidoc
3
- // -----------------------------------------------------------------------------
4
-
5
-
6
- // Summarize
7
- // -----------------------------------------------------------------------------
8
- // tag::summarize[]
9
- //
10
- A lot you've learned, time to summarize what is in behind. The last chapter
11
- *Summarize!* should help on that. Summarize! offer some handy sections to
12
- remember what was presented this chapter, giving an outlook what could be
13
- done next, an overview on all chapters this tutorial and finally useful
14
- links to read more.
15
-
16
- See all *sections* below: +
17
- mdi:backup-restore[24px, md-grey ml-3]
18
- <<Recap>> -- What has been done, what's *explored in current section* +
19
- mdi:skip-next[24px, md-grey ml-3]
20
- <<Whats Next>> -- Find to go further, what's *planned next* +
21
- mdi:format-section[24px, md-grey ml-3]
22
- <<All Chapters>> -- The full chain, *all chapters* +
23
- // mdi:book-open[24px, md-grey ml-3]
24
- // <<Further Reading>> -- List of helpful links to *get more* +
25
-
26
- //
27
- // end::summarize[]
28
-
29
- // End Summarize ---------------------------------------------------------------
30
-
31
-
32
- // Recap
33
- // -----------------------------------------------------------------------------
34
- // tag::recap_100_meet_and_greet_jekyll[]
35
- //
36
- To manage controlled page access, a web is transformed into an application.
37
- Additional software is needed for that: the J1 *AuthManager*. Build on the
38
- _Ruby_ software framework _Rack_.
39
-
40
- A middleware system based on Rack is not a *monolithic* block. It is a *stack*
41
- of *multiple* middleware components -- what the name *Rack* implies. What is
42
- called *Middlewares* is the next great magic: _Ruby_ libraries (Gem)
43
- managing a *specific* job as *service* in such a *chain*.
44
-
45
- For now folks, keep in mind a *Jekyll Site* can be transformed into an
46
- *Web Application* as a additional *mode* using *Rack*. Rack provides the
47
- *magic* in the middle to add additional dynamic processes provided by
48
- J1 AuthManager: *Services*.
49
- //
50
- // end::recap_100_meet_and_greet_jekyll[]
51
-
52
- // tag::recap_200_preparations[]
53
- //
54
- Running a web as an app is not that hard, isn't it? The magic is under the
55
- hood - the middlewares used by J1 AuthManager.
56
-
57
- lorem:sentences[5] +
58
- lorem:sentences[3] +
59
-
60
- Find here is a list of the basic Chocolatey commands used this section.
61
- And some more related ones. If you'd like to explore the Chocolatey CLI a bit
62
- *more*, give it a try before moving on.
63
-
64
- [cols="8a,4", options="header", role="rtable, full-width"]
65
- |===============================================================================
66
- |Command |Description
67
-
68
- |
69
- [source, bash]
70
- ----
71
- docker build -t first-app .
72
- ----
73
- |Create the `image` *friendlyname* using this directory's Dockerfile
74
-
75
- |
76
- [source, bash]
77
- ----
78
- docker run -p 4000:80 first-app
79
- ----
80
- |Run `container` *friendlyname* with a mapping of port 4000 to 80
81
-
82
- |
83
- [source, bash]
84
- ----
85
- docker run -d -p 4000:80 first-app
86
- ----
87
- |Run container *friendlyname* with mapping, but in `detached mode`
88
-
89
- |===============================================================================
90
- //
91
- // end::recap_200_preparations[]
92
-
93
- // tag::recap_300_first_awesome_web[]
94
- //
95
- OAuth2 is an authentication framework, a protocol suite that enables
96
- applications to obtain (limited) access to user account data hosted at
97
- service providers.
98
-
99
- The protocol suite introduces four roles, discussed in section <<OAuth Roles>>,
100
- that interacts each other in a sequence, a *flow*. In section <<Base OAuth Flow>>
101
- the sequence was discussed in more detail.
102
-
103
- // ifdef::backend-html5[]
104
- // .High Level OAuth Protocol Flow
105
- // lightbox::oauth-abstract-protocol-flow[ 800, {data-oauth-abstract-protocol-flow} ]
106
- // endif::[]
107
-
108
- Keep in mind the *roles* and the fact, the OAuth framework introduce a sequence,
109
- a *flow*. All this is theory - yes for sure, but good to know.
110
- //
111
- // end::recap_300_first_awesome_web[]
112
-
113
- // End Recap -------------------------------------------------------------------
114
-
115
-
116
- // Whats Next
117
- // -----------------------------------------------------------------------------
118
- // tag::whats_next_100_meet_and_greet_jekyll[]
119
- //
120
- Well done, folks. You learned all the basics, started an transformed web as
121
- an app. And you've seen what is basicly going on under the hood. Now, you're
122
- well prepared for going further, to have a more inside view.
123
-
124
- For the next, a bit more knowledge, some theory is needed what *service providers*
125
- are and how *authentication* works. You need to know what is *OAuth*, what
126
- is *authentication* using the OAuth *framework*.
127
-
128
- Welcome to the world of *OAuth2*, a leading technology for authentication,
129
- for creating relationships (associations) across different providers for
130
- your new amazing site, for your new project.
131
-
132
- mdi:skip-next[24px, md-grey]
133
- Go for link:{j1-web-in-a-day-preparations}[Preparations] then!
134
- //
135
- // end::whats_next_100_meet_and_greet_jekyll[]
136
-
137
- // tag::whats_next_200_preparations[]
138
- //
139
- After some practise and theory, you got a picture of what the OAuth
140
- framework is, a base understanding about the flow - what will happen. Now
141
- it's the time to see in real world what was discsused sofar.
142
-
143
- The following chapter is focussing a web that is *protected*. The app is not
144
- longer passing all the content pages. The content will be under *control*.
145
-
146
- // mdi:skip-next[24px, md-grey]
147
- // To make protected *J1 Webs* real, continue on link:{j1-web-apps-run-an-secured-app}[Run an Secured J1 App]
148
- // then!
149
-
150
- //
151
- // end::whats_next_200_preparations[]
152
-
153
- // tag::whats_next_300_first_awesome_web[]
154
- //
155
- After some practise and theory, you got a picture of what the OAuth
156
- framework is, a base understanding about the flow - what will happen. Now
157
- it's the time to see in real world what was discsused sofar.
158
-
159
- The following chapter is focussing a web that is *protected*. The app is not
160
- longer passing all the content pages. The content will be under *control*.
161
-
162
- // mdi:skip-next[24px, md-grey]
163
- // To make protected *J1 Webs* real, continue on link:{j1-web-apps-run-an-secured-app}[Run an Secured J1 App]
164
- // then!
165
-
166
- //
167
- // end::whats_next_300_first_awesome_web[]
168
-
169
- // End Whats Next --------------------------------------------------------------
170
-
171
-
172
- // Chapters
173
- // -----------------------------------------------------------------------------
174
- // tag::chapters[]
175
- //
176
- Find here an overview on *all* chapters this tutorial. +
177
- //
178
- // end::chapters[]
179
-
180
- // tag::chapters_100_meet_and_greet_jekyll[]
181
- //
182
- mdi:format-section[24px, md-grey ml-3]
183
- link:#[You are here -- Meet & Greet Jekyll] +
184
- mdi:format-section[24px, md-indigo ml-3]
185
- link:{j1-web-in-a-day-preparations}[Preparations] +
186
- mdi:format-section[24px, md-indigo ml-3]
187
- link:{j1-web-in-a-day-first-awesome-web}[A first awesome Web]
188
- //
189
- // end::chapters_100_meet_and_greet_jekyll[]
190
-
191
-
192
- // End Chapters ----------------------------------------------------------------
193
-
@@ -1,47 +0,0 @@
1
- ifeval::["{debug}" == "true"]
2
- .Liquid variables
3
- [cols="2,4,6a, options="header", role="table-responsive, full-width"]
4
- |===============================================================================
5
- |name |value |description
6
-
7
- |`page.path`
8
- |{{ page.path }}
9
- |The path to the raw post or page. Example usage: Linking back to the page
10
- or post's source on GitHub. This can be overridden in the `YAML Front Matter`.
11
-
12
- |`site.collections_dir`
13
- |{{ site.collections_dir }}
14
- |lorem:sentences[1]
15
-
16
- |`page.images.dir`
17
- |{{ page.images.dir }}
18
- |Image path set pagewise. See FRONTMATTER defaults in `_config.yml` for the
19
- images path specified by: `images.dir` for specific page *type*. See the
20
- example below for a page of type *pages*.
21
- [source, yaml]
22
- ----
23
- defaults:
24
- - scope:
25
- path: pages
26
- type: pages
27
-
28
- values:
29
- images:
30
- dir: /assets/images/pages
31
- ----
32
-
33
- |`page-imagesdir`
34
- |{{ page-imagesdir }}
35
- | Images path set in the page by `:page-imagesdir:`.
36
-
37
- |`template`
38
- |{{ site.template.name }}
39
- |Name of the template used for rendering a page. Settings are taken from
40
- sitewide configuration defined by `_config.yml`.
41
-
42
- |`includedir`
43
- |{{ includedir }}
44
- |lorem:sentences[1]
45
-
46
- |===============================================================================
47
- endif::[]
@@ -1,335 +0,0 @@
1
- ---
2
- title: Lunr
3
- tagline: full index search
4
- date: 2020-11-08 12:00:00
5
- description: >
6
- The search engine Lunr is fully integrated with
7
- J1 Template. Designed to be small, yet full featured,
8
- to provide a great search experience without the
9
- need for external, server-side, search services.
10
-
11
- tags: [ Roundtrip, Introduction ]
12
- categories: [ Search ]
13
-
14
- toc: true
15
- scrollbar: false
16
-
17
- permalink: /pages/public/learn/roundtrip/lunr/
18
- regenerate: true
19
-
20
- resources: [ lunr, rouge ]
21
- resource_options:
22
- - attic:
23
- padding_top: 400
24
- padding_bottom: 50
25
- opacity: 0.5
26
- slides:
27
- - url: /assets/images/modules/attics/banner/lunr-banner-1280x800.jpg
28
- alt: Lunr
29
- ---
30
-
31
- // Page Initializer
32
- // =============================================================================
33
- // Enable the Liquid Preprocessor
34
- :page-liquid:
35
-
36
- // Set page (local) attributes here
37
- // -----------------------------------------------------------------------------
38
- // :page--attr: <attr-value>
39
-
40
- // Load Liquid procedures
41
- // -----------------------------------------------------------------------------
42
- {% capture load_attributes %}themes/{{site.template.name}}/procedures/global/attributes_loader.proc{%endcapture%}
43
-
44
- // Load page attributes
45
- // -----------------------------------------------------------------------------
46
- {% include {{load_attributes}} scope="all" %}
47
-
48
-
49
- // Page content
50
- // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
51
-
52
- The search engine Lunr is fully integrated with J1 Template. Designed to be
53
- small, yet full featured, to provide a great search experience without the
54
- need for external, server-side search services.
55
-
56
- Searching a website using Lunr a different in compare to search engines
57
- like Google or Microsoft Bing. These search platforms using complex algorithm
58
- to provide a simple interface to the public using a lot of artificial
59
- intelligence (AI) methods to make senseful results out of a handfull words
60
- given for a search.
61
-
62
- Nevertheless, a QuickSearch, the J1 implementation of Lunr, is simple like
63
- searching at Google, but offers additional features to do searches more
64
- specific. QuickSearch provides a easy to use query language for better results.
65
-
66
- == Core concepts
67
-
68
- Understanding some of the concepts and terminology that QuickSearch (based on
69
- Lunr) uses will allow you to provide powerful search functionality to get more
70
- relevant search results.
71
-
72
- === Indexing documnents
73
-
74
- QuickSearch, the J1 implementation of Lunr, offers searches on *all* documents
75
- of website generated by J1, but only for this site. No internet access is done,
76
- or needed. Searches are based on a pre-build *local index* generated by the
77
- Jekyll plugin `lunr_index.rb` located in the `_plugins` folder.
78
-
79
- The index is generated at build-time:
80
-
81
- .Index creation at buildtime
82
- ----
83
- Startup the site ..
84
- Configuration file: ...
85
-
86
- Incremental build: enabled
87
- Generating...
88
- J1 LunrSearch: creating search index ...
89
- J1 LunrSearch: finished, index ready.
90
- ....
91
- ----
92
-
93
- Or, if you're running a website in development mode, the index gets refreshed
94
- for all files added or modified.
95
-
96
- .Index creation if files added, or modified
97
- ----
98
- site: Regenerating: n file(s) changed at ...
99
- site: ...
100
- site: J1 LunrSearch: creating search index ...
101
- site: J1 LunrSearch: finished, index ready.
102
- ...
103
- ----
104
-
105
- === Documents
106
-
107
- The searchable data in an index is organized as documents that contains the
108
- text that you want to be able to search. A document is a JSON object with one
109
- or more fields and an identifier that is returned in the results from a search.
110
- A document representing an article might look like this:
111
-
112
- [ source, json ]
113
- ----
114
- {
115
- "id": 0,
116
- "title": "Web in a Day",
117
- "tagline": "meet & greet jekyll",
118
- "url": "/pages/public/learn/kickstarter/web_in_a_day/meet_and_greet/",
119
- "date": "2018-05-01 00:00:00 +0000",
120
- "tags": [
121
- "Introduction"
122
- ],
123
- "categories": [
124
- "Jekyll",
125
- "Knowledge",
126
- "Tutorial"
127
- ],
128
- "description": "Web in a Day is the first in a series of tutorials ... J1 Template\n",
129
- "is_post": false
130
- }
131
- ----
132
-
133
- In this document there are several fields, like `title`, `tagline`, or
134
- `description` that could be used for *full-text* searches. But additional
135
- fields are available, like `tags` or `categories` that can be used for
136
- more specific searches based on `identifiers`.
137
-
138
- To do a simple full-text search as well as more specific searches, QuickSearch
139
- offers a query language, a DSL (domain specific language). Find more about
140
- *QuickSearch DSL* queries below.
141
-
142
- === Scoring
143
-
144
- The relevance (the `score`) of a document is calculated by an algorithm
145
- called BM25, along with other factors. You don’t need to worry too much about
146
- the details of how BM25 works. To summarize, the more a search term occurs in
147
- a single document, the more that term will increase that document’s score,
148
- but the more a search term occurs in the *overall collection* of documents,
149
- the less that term will increase a document’s score. In other words: seldom
150
- words count, increase the score.
151
-
152
- Scoring information, generated by the BM25 algorithm, is added to the (local)
153
- index. This allows a very fast calculation of the relevance of documents for
154
- a query.
155
-
156
- For example, imagine you’re website contains documents about Jekyll. The
157
- term `Jekyll` may occur very frequently throughout the entire website
158
- (used quite often for the content), so finding a document that mentions the
159
- term Jekyll isn’t very significant.
160
-
161
- However, if you’re searching for `Jekyll Generator`, only some documents of
162
- the website have the term `Generator` in them, and that will bring the score
163
- (relevance) for documents having both terms (words) in them at a higher score,
164
- bring them higher up in your search results.
165
-
166
- Matching and scoring is used by all search engines; the same to J1 QuickSearch.
167
- You'll see for QuickSearch a similiar behavior in *sorting* search results as
168
- you already know from internet search engines like Google. The top results
169
- are the more relevant ones.
170
-
171
- == Searching
172
-
173
- Search queries looks like simple text. But the search `engine` Lunr under the
174
- hood transforms the given search string (text) always into a search query.
175
- This supports special syntax, the DSL, for defining more complex queries.
176
-
177
- As always: start simple!
178
-
179
- === Simple searches
180
-
181
- The simplest way to run a search is to pass the text (words) on which you
182
- want to search on:
183
-
184
- ----
185
- jekyll
186
- ----
187
-
188
- The above will return details of all documents that match the term
189
- `jekyll`. Searches for *multiple* terms (words) are also supported. If
190
- a document matches *at least* one of the search terms, it will show in the
191
- results. The search terms are combined with `OR`.
192
-
193
- ----
194
- jekyll generator
195
- ----
196
-
197
- The above example will match documents that contain either `jekyll` *or*
198
- `generator`. Documents that contain _both_ will score more highly and will
199
- be returned first.
200
-
201
- NOTE: In difference to a Google search (terms are combined at Google by
202
- `AND`) a Quicksearch combines the terms by `OR`.
203
-
204
- === Wildcards
205
-
206
- QuickSearch supports wildcards when performing searches. A wildcard is
207
- represented as an asterisk (`*`) and can appear anywhere in a search
208
- term. For example, the following will match all documents with words
209
- beginning with `Jek`:
210
-
211
- ----
212
- jek*
213
- ----
214
-
215
- This will match all documents that end with `kyll`:
216
-
217
- ----
218
- *kyll
219
- ----
220
-
221
- Leading wildcards, as in the above example, should be used sparingly.
222
- They can have a negative impact on the performance of a search,
223
- especially in large indexes.
224
-
225
- Finally, a wildcard can be in the middle of a term. The following will
226
- match any documents that contain a term that begins with “f” and ends in
227
- “o”:
228
-
229
- [source, javascript]
230
- ----
231
- idx.search('f*o')
232
- ----
233
-
234
- It is also worth noting that, when a search term contains a wildcard, no
235
- stemming is performed on the search term.
236
-
237
- === Fields
238
-
239
- By default, Lunr will search all fields in a document for the query
240
- term, and it is possible to restrict a term to a specific field. The
241
- following example searches for the term “foo” in the field title:
242
-
243
- [source, javascript]
244
- ----
245
- idx.search('title:foo')
246
- ----
247
-
248
- The search term is prefixed with the name of the field, followed by a
249
- colon (`:`). The field _must_ be one of the fields defined when building
250
- the index. Unrecognised fields will lead to an error.
251
-
252
- Field-based searches can be combined with all other term modifiers and
253
- wildcards, as well as other terms. For example, to search for words
254
- beginning with “foo” in the title or with “bar” in any field the
255
- following query can be used:
256
-
257
- [source, javascript]
258
- ----
259
- idx.search('title:foo* bar')
260
- ----
261
-
262
- === Boosts
263
-
264
- In multi-term searches, a single term may be important than others. For
265
- these cases Lunr supports term level boosts. Any document that matches a
266
- boosted term will get a higher relevance score, and appear higher up in
267
- the results. A boost is applied by appending a caret (`^`) and then a
268
- positive integer to a term.
269
-
270
- [source, javascript]
271
- ----
272
- idx.search('foo^10 bar')
273
- ----
274
-
275
- The above example weights the term “foo” 10 times higher than the term
276
- “bar”. The boost value can be any positive integer, and different terms
277
- can have different boosts:
278
-
279
- [source, javascript]
280
- ----
281
- idx.search('foo^10 bar^5 baz')
282
- ----
283
-
284
- === Fuzzy Matches
285
-
286
- Lunr supports fuzzy matching search terms in documents, which can be
287
- helpful if the spelling of a term is unclear, or to increase the number
288
- of search results that are returned. The amount of fuzziness to allow
289
- when searching can also be controlled. Fuzziness is applied by appending
290
- a tilde (`~`) and then a positive integer to a term. The following
291
- search matches all documents that have a word within 1 edit distance of
292
- “foo”:
293
-
294
- [source, javascript]
295
- ----
296
- idx.search('foo~1')
297
- ----
298
-
299
- An edit distance of 1 allows words to match if either adding, removing,
300
- changing or transposing a character in the word would lead to a match.
301
- For example “boo” requires a single edit (replacing “f” with “b”) and
302
- would match, but “boot” would not as it also requires an additional “t”
303
- at the end.
304
-
305
- === Term Presence
306
-
307
- By default, Lunr combines multiple terms together in a search with a
308
- logical OR. That is, a search for “foo bar” will match documents that
309
- contain “foo” or contain “bar” or contain both. This behaviour is
310
- controllable at the term level, i.e. the presence of each term in
311
- matching documents can be specified. By default each term is optional in
312
- a matching document, though a document must have at least one matching
313
- term. It is possible to specify that a term must be present in matching
314
- documents, or that it must be absent in matching documents.
315
-
316
- To indicate that a term must be present in matching documents the term
317
- should be prefixed with a plus (`+`) and to indicate that a term must be
318
- absent the term should be prefixed with a minus (`-`). Without either
319
- prefix the term’s presence in matching documents is optional.
320
-
321
- The below example searches for documents that must contain “foo”, might
322
- contain “bar” and must not contain “baz”:
323
-
324
- [source, javascript]
325
- ----
326
- idx.search("+foo bar -baz")
327
- ----
328
-
329
- To simulate a logical AND search of “foo AND bar” mark both terms as
330
- required:
331
-
332
- [source, javascript]
333
- ----
334
- idx.search("+foo +bar")
335
- ----