j1-template 2021.0.3 → 2021.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (155) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/modules/navigator/procedures/topsearch.proc +10 -10
  3. data/assets/data/quicklinks.html +2 -2
  4. data/assets/themes/j1/adapter/js/mmenu.js +18 -22
  5. data/assets/themes/j1/adapter/js/{lunr_search.js → quicksearch.js} +11 -11
  6. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/{fa-brands-400.eot → eot/fa-brands-400.eot} +0 -0
  7. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/{fa-regular-400.eot → eot/fa-regular-400.eot} +0 -0
  8. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/{fa-solid-900.eot → eot/fa-solid-900.eot} +0 -0
  9. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/{fa-brands-400.svg → svg/fa-brands-400.svg} +0 -0
  10. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/{fa-regular-400.svg → svg/fa-regular-400.svg} +0 -0
  11. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/{fa-solid-900.svg → svg/fa-solid-900.svg} +0 -0
  12. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/{fa-brands-400.ttf → ttf/fa-brands-400.ttf} +0 -0
  13. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/{fa-regular-400.ttf → ttf/fa-regular-400.ttf} +0 -0
  14. data/assets/themes/j1/core/fonts/fontawesome_5/fonts/{fa-solid-900.ttf → ttf/fa-solid-900.ttf} +0 -0
  15. data/assets/themes/j1/core/fonts/materialdesign_icons/fonts/{materialdesignicons-webfont.eot → eot/materialdesignicons-webfont.eot} +0 -0
  16. data/assets/themes/j1/core/fonts/materialdesign_icons/fonts/{materialdesignicons-webfont.svg → svg/materialdesignicons-webfont.svg} +0 -0
  17. data/assets/themes/j1/core/fonts/materialdesign_icons/fonts/{materialdesignicons-webfont.ttf → ttf/materialdesignicons-webfont.ttf} +0 -0
  18. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-Bold.eot → eot/Roboto-Bold.eot} +0 -0
  19. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-Light.eot → eot/Roboto-Light.eot} +0 -0
  20. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-Medium.eot → eot/Roboto-Medium.eot} +0 -0
  21. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-Regular.eot → eot/Roboto-Regular.eot} +0 -0
  22. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-Thin.eot → eot/Roboto-Thin.eot} +0 -0
  23. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-Black.ttf → ttf/Roboto-Black.ttf} +0 -0
  24. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-BlackItalic.ttf → ttf/Roboto-BlackItalic.ttf} +0 -0
  25. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-Bold.ttf → ttf/Roboto-Bold.ttf} +0 -0
  26. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-BoldItalic.ttf → ttf/Roboto-BoldItalic.ttf} +0 -0
  27. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-Italic.ttf → ttf/Roboto-Italic.ttf} +0 -0
  28. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-Light.ttf → ttf/Roboto-Light.ttf} +0 -0
  29. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-LightItalic.ttf → ttf/Roboto-LightItalic.ttf} +0 -0
  30. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-Medium.ttf → ttf/Roboto-Medium.ttf} +0 -0
  31. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-MediumItalic.ttf → ttf/Roboto-MediumItalic.ttf} +0 -0
  32. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-Regular.ttf → ttf/Roboto-Regular.ttf} +0 -0
  33. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-Thin.ttf → ttf/Roboto-Thin.ttf} +0 -0
  34. data/assets/themes/j1/core/fonts/roboto/fonts/{Roboto-ThinItalic.ttf → ttf/Roboto-ThinItalic.ttf} +0 -0
  35. data/assets/themes/j1/modules/datatables/css/DataTables-1.10.16/images/sort_asc.png +0 -0
  36. data/assets/themes/j1/modules/datatables/css/DataTables-1.10.16/images/sort_asc_disabled.png +0 -0
  37. data/assets/themes/j1/modules/datatables/css/DataTables-1.10.16/images/sort_both.png +0 -0
  38. data/assets/themes/j1/modules/datatables/css/DataTables-1.10.16/images/sort_desc.png +0 -0
  39. data/assets/themes/j1/modules/datatables/css/DataTables-1.10.16/images/sort_desc_disabled.png +0 -0
  40. data/assets/themes/j1/modules/datatables/css/datatables.css +1113 -0
  41. data/assets/themes/j1/modules/datatables/css/datatables.min.css +136 -0
  42. data/assets/themes/j1/modules/datatables/css/theme/uno.css +473 -0
  43. data/assets/themes/j1/modules/datatables/js/datatables.js +95360 -0
  44. data/assets/themes/j1/modules/datatables/js/datatables.min.js +533 -0
  45. data/assets/themes/j1/modules/lunrSearch/css/{lunr_search.css → quicksearch.css} +0 -0
  46. data/assets/themes/j1/modules/lunrSearch/css/{lunr_search.min.css → quicksearch.min.css} +0 -0
  47. data/assets/themes/j1/modules/lunrSearch/js/lunr.language.support.js +304 -0
  48. data/assets/themes/j1/modules/lunrSearch/js/lunr.language.support.min.js +1 -0
  49. data/assets/themes/j1/modules/lunrSearch/js/{lunr_search.js → quicksearch.js} +22 -3
  50. data/assets/themes/j1/modules/lunrSearch/js/{lunr_search.min.js → quicksearch.min.js} +0 -0
  51. data/assets/themes/j1/modules/lunrSearch/languages/lunr.ar.js +381 -0
  52. data/assets/themes/j1/modules/lunrSearch/languages/lunr.ar.min.js +1 -0
  53. data/assets/themes/j1/modules/lunrSearch/languages/lunr.da.js +284 -0
  54. data/assets/themes/j1/modules/lunrSearch/languages/lunr.da.min.js +18 -0
  55. data/assets/themes/j1/modules/lunrSearch/languages/lunr.de.js +384 -0
  56. data/assets/themes/j1/modules/lunrSearch/languages/lunr.de.min.js +18 -0
  57. data/assets/themes/j1/modules/lunrSearch/languages/lunr.du.js +450 -0
  58. data/assets/themes/j1/modules/lunrSearch/languages/lunr.du.min.js +18 -0
  59. data/assets/themes/j1/modules/lunrSearch/languages/lunr.es.js +599 -0
  60. data/assets/themes/j1/modules/lunrSearch/languages/lunr.es.min.js +18 -0
  61. data/assets/themes/j1/modules/lunrSearch/languages/lunr.fi.js +541 -0
  62. data/assets/themes/j1/modules/lunrSearch/languages/lunr.fi.min.js +18 -0
  63. data/assets/themes/j1/modules/lunrSearch/languages/lunr.fr.js +703 -0
  64. data/assets/themes/j1/modules/lunrSearch/languages/lunr.fr.min.js +18 -0
  65. data/assets/themes/j1/modules/lunrSearch/languages/lunr.hu.js +565 -0
  66. data/assets/themes/j1/modules/lunrSearch/languages/lunr.hu.min.js +18 -0
  67. data/assets/themes/j1/modules/lunrSearch/languages/lunr.it.js +617 -0
  68. data/assets/themes/j1/modules/lunrSearch/languages/lunr.it.min.js +18 -0
  69. data/assets/themes/j1/modules/lunrSearch/languages/lunr.ja.js +188 -0
  70. data/assets/themes/j1/modules/lunrSearch/languages/lunr.ja.min.js +1 -0
  71. data/assets/themes/j1/modules/lunrSearch/languages/lunr.jp.js +5 -0
  72. data/assets/themes/j1/modules/lunrSearch/languages/lunr.jp.min.js +1 -0
  73. data/assets/themes/j1/modules/lunrSearch/languages/lunr.multi.js +79 -0
  74. data/assets/themes/j1/modules/lunrSearch/languages/lunr.multi.min.js +1 -0
  75. data/assets/themes/j1/modules/lunrSearch/languages/lunr.nl.js +448 -0
  76. data/assets/themes/j1/modules/lunrSearch/languages/lunr.nl.min.js +18 -0
  77. data/assets/themes/j1/modules/lunrSearch/languages/lunr.no.js +258 -0
  78. data/assets/themes/j1/modules/lunrSearch/languages/lunr.no.min.js +18 -0
  79. data/assets/themes/j1/modules/lunrSearch/languages/lunr.pt.js +570 -0
  80. data/assets/themes/j1/modules/lunrSearch/languages/lunr.pt.min.js +18 -0
  81. data/assets/themes/j1/modules/lunrSearch/languages/lunr.ro.js +558 -0
  82. data/assets/themes/j1/modules/lunrSearch/languages/lunr.ro.min.js +18 -0
  83. data/assets/themes/j1/modules/lunrSearch/languages/lunr.ru.js +391 -0
  84. data/assets/themes/j1/modules/lunrSearch/languages/lunr.ru.min.js +18 -0
  85. data/assets/themes/j1/modules/lunrSearch/languages/lunr.sv.js +256 -0
  86. data/assets/themes/j1/modules/lunrSearch/languages/lunr.sv.min.js +18 -0
  87. data/assets/themes/j1/modules/lunrSearch/languages/lunr.th.js +97 -0
  88. data/assets/themes/j1/modules/lunrSearch/languages/lunr.tr.js +1087 -0
  89. data/assets/themes/j1/modules/lunrSearch/languages/lunr.tr.min.js +18 -0
  90. data/assets/themes/j1/modules/lunrSearch/languages/lunr.vi.js +84 -0
  91. data/assets/themes/j1/modules/lunrSearch/languages/lunr.vi.min.js +1 -0
  92. data/lib/j1/version.rb +1 -1
  93. data/lib/starter_web/Gemfile +1 -2
  94. data/lib/starter_web/_config.yml +2 -2
  95. data/lib/starter_web/_data/asciidoc2pdf/fonts/ABOUT-mplus1mn-subset +26 -0
  96. data/lib/starter_web/_data/asciidoc2pdf/fonts/ABOUT-mplus1p-subset +26 -0
  97. data/lib/starter_web/_data/asciidoc2pdf/fonts/ABOUT-notoemoji-subset +3 -0
  98. data/lib/starter_web/_data/asciidoc2pdf/fonts/ABOUT-notoserif-subset +26 -0
  99. data/lib/starter_web/_data/asciidoc2pdf/fonts/LICENSE-mplus +16 -0
  100. data/lib/starter_web/_data/asciidoc2pdf/fonts/LICENSE-notoemoji +201 -0
  101. data/lib/starter_web/_data/asciidoc2pdf/fonts/LICENSE-notoserif +201 -0
  102. data/lib/starter_web/_data/asciidoc2pdf/fonts/LICENSE-roboto +11 -0
  103. data/lib/starter_web/_data/asciidoc2pdf/fonts/Roboto-Black.ttf +0 -0
  104. data/lib/starter_web/_data/asciidoc2pdf/fonts/Roboto-BlackItalic.ttf +0 -0
  105. data/lib/starter_web/_data/asciidoc2pdf/fonts/Roboto-Bold.ttf +0 -0
  106. data/lib/starter_web/_data/asciidoc2pdf/fonts/Roboto-BoldItalic.ttf +0 -0
  107. data/lib/starter_web/_data/asciidoc2pdf/fonts/Roboto-Italic.ttf +0 -0
  108. data/lib/starter_web/_data/asciidoc2pdf/fonts/Roboto-Light.ttf +0 -0
  109. data/lib/starter_web/_data/asciidoc2pdf/fonts/Roboto-LightItalic.ttf +0 -0
  110. data/lib/starter_web/_data/asciidoc2pdf/fonts/Roboto-Medium.ttf +0 -0
  111. data/lib/starter_web/_data/asciidoc2pdf/fonts/Roboto-MediumItalic.ttf +0 -0
  112. data/lib/starter_web/_data/asciidoc2pdf/fonts/Roboto-Regular.ttf +0 -0
  113. data/lib/starter_web/_data/asciidoc2pdf/fonts/Roboto-Thin.ttf +0 -0
  114. data/lib/starter_web/_data/asciidoc2pdf/fonts/Roboto-ThinItalic.ttf +0 -0
  115. data/lib/starter_web/_data/asciidoc2pdf/fonts/mplus1mn-bold-subset.ttf +0 -0
  116. data/lib/starter_web/_data/asciidoc2pdf/fonts/mplus1mn-bold_italic-subset.ttf +0 -0
  117. data/lib/starter_web/_data/asciidoc2pdf/fonts/mplus1mn-italic-subset.ttf +0 -0
  118. data/lib/starter_web/_data/asciidoc2pdf/fonts/mplus1mn-regular-subset.ttf +0 -0
  119. data/{assets/themes/j1/core/fonts/roboto → lib/starter_web/_data/asciidoc2pdf}/fonts/mplus1p-regular-fallback.ttf +0 -0
  120. data/lib/starter_web/_data/asciidoc2pdf/fonts/notoemoji-subset.ttf +0 -0
  121. data/{assets/themes/j1/core/fonts/roboto → lib/starter_web/_data/asciidoc2pdf}/fonts/notoserif-bold-subset.ttf +0 -0
  122. data/{assets/themes/j1/core/fonts/roboto → lib/starter_web/_data/asciidoc2pdf}/fonts/notoserif-bold_italic-subset.ttf +0 -0
  123. data/{assets/themes/j1/core/fonts/roboto → lib/starter_web/_data/asciidoc2pdf}/fonts/notoserif-italic-subset.ttf +0 -0
  124. data/{assets/themes/j1/core/fonts/roboto → lib/starter_web/_data/asciidoc2pdf}/fonts/notoserif-regular-subset.ttf +0 -0
  125. data/lib/starter_web/_data/asciidoc2pdf/themes/base-theme.yml +130 -0
  126. data/lib/starter_web/_data/asciidoc2pdf/themes/default-for-print-theme.yml +36 -0
  127. data/lib/starter_web/_data/asciidoc2pdf/themes/default-for-print-with-fallback-font-theme.yml +15 -0
  128. data/lib/starter_web/_data/asciidoc2pdf/themes/default-theme.yml +298 -0
  129. data/lib/starter_web/_data/asciidoc2pdf/themes/default-with-fallback-font-theme.yml +21 -0
  130. data/lib/starter_web/_data/asciidoc2pdf/themes/j1-theme.yml +315 -0
  131. data/lib/starter_web/_data/modules/defaults/quicksearch.yml +73 -0
  132. data/lib/starter_web/_data/modules/navigator.yml +4 -6
  133. data/lib/starter_web/_data/modules/{lunr_search.yml → quicksearch.yml} +3 -3
  134. data/lib/starter_web/_data/modules/themer.yml +1 -1
  135. data/lib/starter_web/_data/resources.yml +34 -37
  136. data/lib/starter_web/_includes/attributes.asciidoc +3 -1
  137. data/lib/starter_web/_plugins/lunr_index.rb +19 -8
  138. data/lib/starter_web/assets/images/modules/icons/d1/scalable/d1.svg +1 -1
  139. data/lib/starter_web/dot.gitattributes +2 -16
  140. data/lib/starter_web/package.json +6 -6
  141. data/lib/starter_web/pages/protected/site_search.adoc +2 -7
  142. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/100_meet_and_greet_jekyll.adoc +1 -1
  143. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/200_preparations.adoc +2 -2
  144. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/300_first_awesome_web.adoc +2 -2
  145. data/lib/starter_web/pages/public/learn/roundtrip/600_lunr.adoc +146 -47
  146. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  147. data/lib/starter_web/utilsrv/package.json +1 -1
  148. metadata +127 -49
  149. data/assets/themes/j1/core/fonts/materialdesign_icons/license.md +0 -97
  150. data/assets/themes/j1/core/fonts/roboto/fonts/OpenSansEmoji.ttf +0 -0
  151. data/assets/themes/j1/core/fonts/roboto/fonts/mplus1mn-bold-ascii.ttf +0 -0
  152. data/assets/themes/j1/core/fonts/roboto/fonts/mplus1mn-bold_italic-ascii.ttf +0 -0
  153. data/assets/themes/j1/core/fonts/roboto/fonts/mplus1mn-italic-ascii.ttf +0 -0
  154. data/assets/themes/j1/core/fonts/roboto/fonts/mplus1mn-regular-ascii-conums.ttf +0 -0
  155. data/lib/starter_web/_data/modules/defaults/lunr_search.yml +0 -171
@@ -1,6 +1,6 @@
1
1
  # ------------------------------------------------------------------------------
2
2
  # ~/_data/modules/lunr_search.yml
3
- # User configuration settings for J1LunrSearch module
3
+ # User configuration settings for J1 QuickSearch module
4
4
  #
5
5
  # Product/Info:
6
6
  # https://jekyll.one
@@ -16,7 +16,7 @@
16
16
  #
17
17
  about_config:
18
18
 
19
- title: J1LunrSearch
19
+ title: J1 LunrSearch
20
20
  scope: User settings
21
21
  location: _data/modules/lunr_search.yml
22
22
 
@@ -29,7 +29,7 @@ settings:
29
29
  placement: navbar
30
30
  target: _blank
31
31
 
32
- stopwords_locale: de
32
+ stopwords_locale: en
33
33
  min_length: 3
34
34
 
35
35
  # ------------------------------------------------------------------------------
@@ -26,7 +26,7 @@ about_config:
26
26
  #
27
27
  settings:
28
28
 
29
- enabled: false
29
+ enabled: true
30
30
  saveToCookie: true
31
31
  debug: false
32
32
 
@@ -351,12 +351,11 @@ resources:
351
351
  # 5 log4javascript log4javascript@1.4.15
352
352
  # 6 Bootstrap bootstrap@4.4.1
353
353
  # 6 bs_material_design bootstrap-material-design@4.0.0-beta.4
354
- # 7 j1_template j1_template_4@2021.0.3
354
+ # 7 j1_template j1_template_4@2021.0.4
355
355
  # 8 tocbot tocbot@4.12.0
356
- # 9 jekyll_search simple_jekyll_search@1.1.5
357
356
  # 10 bs_theme_switcher bs_theme_switcher@1.1.5
358
357
  # 11 backstretch backstretch@2.1.16
359
- # 12 cookiebar cookiebar@2021.0.3
358
+ # 12 cookiebar cookiebar@2021.0.4
360
359
  #
361
360
  # ----------------------------------------------------------------------------
362
361
  # J1 Template Core, integrated CSS Resources
@@ -576,29 +575,6 @@ resources:
576
575
  js: []
577
576
  init_function: [ j1.adapter.back2top.init ]
578
577
 
579
- # ----------------------------------------------------------------------------
580
- # SimpleSearch, search engine for Jekyll sites based on Simple-Jekyll-Search
581
- # https://github.com/christian-fei/Simple-Jekyll-Search
582
- #
583
- #
584
- - name: J1 SimpleSearch
585
- resource:
586
- id: simple_search
587
- enabled: false # NOT longer used (lunr search preferred)
588
- comment: module quicksearch
589
- region: head
590
- layout: [ all ]
591
- required: always
592
- preload: false # property currently unused
593
- script_load: sync
594
- dependencies: false
595
- pass_init_data: false
596
- data:
597
- css: [ modules/jekyllSearch/css/jekyll-search ]
598
- files: [ adapter/js/searcher.js ]
599
- js: [ modules/jekyllSearch/js/simple-jekyll-search ]
600
- init_function: [ j1.adapter.searcher.init ]
601
-
602
578
  # ----------------------------------------------------------------------------
603
579
  # CookieBar
604
580
  #
@@ -712,7 +688,7 @@ resources:
712
688
  init_function: []
713
689
 
714
690
  # ----------------------------------------------------------------------------
715
- # Responsive HTML tables for J! Template (rtable)
691
+ # Responsive HTML tables for J1 Template (rtable)
716
692
  #
717
693
  - name: Responsive Tables
718
694
  resource:
@@ -1200,7 +1176,7 @@ resources:
1200
1176
  enabled: true
1201
1177
  comment: Floating Button Menu
1202
1178
  region: head
1203
- layout: [ all ]
1179
+ layout: [ page, post, collection ] # TODO: check if FAM makes sense for layout app
1204
1180
  required: always
1205
1181
  preload: false # property currently unused
1206
1182
  script_load: sync
@@ -1220,14 +1196,14 @@ resources:
1220
1196
  init_function: [ j1.adapter.fam.init ]
1221
1197
 
1222
1198
  # ----------------------------------------------------------------------------
1223
- # lunr
1199
+ # QuickSearch (lunr for J1 Template)
1224
1200
  # NOTE: This module is in state EXPERIMENTAL
1225
1201
  #
1226
- - name: lunr
1202
+ - name: QuickSearch
1227
1203
  resource:
1228
- id: lunr
1204
+ id: quicksearch
1229
1205
  enabled: true
1230
- comment: lunr search
1206
+ comment: J1 QuickSearch
1231
1207
  region: head
1232
1208
  layout: [ all ]
1233
1209
  required: always # always | ondemand
@@ -1236,17 +1212,38 @@ resources:
1236
1212
  dependencies: false
1237
1213
  pass_init_data: false
1238
1214
  data:
1239
- css: [ modules/lunrSearch/css/lunr_search ]
1240
- files: [ adapter/js/lunr_search.js ]
1215
+ css: [ modules/lunrSearch/css/quicksearch ]
1216
+ files: [ adapter/js/quicksearch.js ]
1241
1217
  js: [
1242
1218
  modules/lunrSearch/js/lunr,
1243
1219
  modules/lunrSearch/js/mustache,
1244
1220
  modules/lunrSearch/js/dateformat,
1245
1221
  modules/lunrSearch/js/uri,
1246
- # modules/jquery/js/require, # property currently unused, conflicts with some modules
1247
- modules/lunrSearch/js/lunr_search
1222
+ # modules/jquery/js/require, # require.js currently unused, but conflicts with some modules
1223
+ modules/lunrSearch/js/quicksearch
1248
1224
  ]
1249
- init_function: [ j1.adapter.lunr_search.init ]
1225
+ init_function: [ j1.adapter.quicksearch.init ]
1226
+
1227
+ # ----------------------------------------------------------------------------
1228
+ # Data tables for J1 Template
1229
+ #
1230
+ - name: Data Tables
1231
+ resource:
1232
+ id: datatables
1233
+ enabled: false
1234
+ comment: module datatables
1235
+ region: head
1236
+ layout: [ all ]
1237
+ required: ondemand
1238
+ preload: false # property currently unused
1239
+ script_load: async
1240
+ dependencies: false
1241
+ pass_init_data: false
1242
+ data:
1243
+ css: [ modules/datatables/css/datatables ]
1244
+ files: [ modules/datatables/css/theme/uno.css ]
1245
+ js: [ modules/datatables/js/datatables ]
1246
+ init_function: []
1250
1247
 
1251
1248
  # ------------------------------------------------------------------------------
1252
1249
  # END config
@@ -136,6 +136,7 @@ tag::tags[]
136
136
  :browser-window--new: window="_blank"
137
137
  :clipboard--noclip: noclip
138
138
  :level--beginner: icon:battery-quarter[role="md-blue"]
139
+ :level--intermediate: icon:battery-half[role="md-blue"]
139
140
  :level--advanced: icon:battery-full[role="md-blue"]
140
141
  :figure-caption--text: Figure
141
142
 
@@ -143,6 +144,7 @@ tag::tags[]
143
144
  :icon-times: icon:times[role="red"]
144
145
  :icon-file: icon:file-alt[role="blue"]
145
146
  :icon-battery--quarter: icon:battery-quarter[role="md-blue"]
147
+ :icon-battery--half: icon:battery-half[role="md-blue"]
146
148
  :icon-battery--full: icon:battery-full[role="md-blue"]
147
149
 
148
150
  :char-emdash: —
@@ -182,7 +184,7 @@ end::tables[]
182
184
  // -----------------------------------------------------------------------------
183
185
  tag::products[]
184
186
  :j1-license: MIT License
185
- :j1-version: 2021.0.3
187
+ :j1-version: 2021.0.4
186
188
  end::products[]
187
189
 
188
190
 
@@ -31,8 +31,8 @@ module Jekyll
31
31
  @module_path.slice! "_plugins"
32
32
  @module_config_path = File.join(@module_path, config['data_dir'], 'modules')
33
33
 
34
- @module_config_default = YAML::load(File.open(File.join(@module_config_path, 'defaults', 'lunr_search.yml')))
35
- @module_config_user = YAML::load(File.open(File.join(@module_config_path,'lunr_search.yml')))
34
+ @module_config_default = YAML::load(File.open(File.join(@module_config_path, 'defaults', 'quicksearch.yml')))
35
+ @module_config_user = YAML::load(File.open(File.join(@module_config_path,'quicksearch.yml')))
36
36
 
37
37
  @module_config_default_settings = @module_config_default['defaults']
38
38
  @module_config_user_settings = @module_config_user['settings']
@@ -83,17 +83,23 @@ module Jekyll
83
83
  #
84
84
  @strip_index_html = @lunr_config['strip_index_html']
85
85
 
86
+ # @strip_categories configuration
87
+ #
88
+ @strip_categories = @lunr_config['strip_categories']
89
+ @stripped_categories = @strip_categories.join(',').gsub!(',', ' ')
90
+
86
91
  # stop word exclusion configuration
87
92
  #
88
93
  @min_length = @lunr_config['min_length']
89
94
  @stopwords_file = @lunr_config['stopwords']
95
+
90
96
  end
91
97
 
92
98
  # Index all pages except pages matching any value in config['lunr_excludes']
93
99
  # or with frontmatter settings (exclude_from_search: true)
94
100
  #
95
101
  def generate(site)
96
- Jekyll.logger.info 'J1 LunrSearch:', 'creating search index ...'
102
+ Jekyll.logger.info 'J1 QuickSearch:', 'creating search index ...'
97
103
 
98
104
  @site = site
99
105
  # gather posts and pages
@@ -103,7 +109,7 @@ module Jekyll
103
109
  # index = []
104
110
 
105
111
  index_js = open(@lunr_path).read
106
- # all settings must be added within the index function
112
+ # NOTE: all settings must be added within the index function
107
113
  #
108
114
  index_js << 'var idx = lunr(function() {'
109
115
 
@@ -130,7 +136,11 @@ module Jekyll
130
136
  'body' => entry.body
131
137
  }
132
138
 
139
+ # remove unwanted categories
140
+ doc['categories'] -= @strip_categories
141
+
133
142
  index_js << 'this.add(' << ::JSON.generate(doc, quirks_mode: true) << ');'
143
+
134
144
  # reduce the size of the doc array by deleting the body key
135
145
  doc.delete('body')
136
146
  @docs[i] = doc
@@ -146,12 +156,13 @@ module Jekyll
146
156
  'docs' => @docs,
147
157
  'index' => ::JSON.parse(index, {:max_nesting => false})
148
158
  }
149
-
150
159
  filepath = File.join(site.dest, filename)
160
+
151
161
  # create data path if not already exists
162
+ #
152
163
  FileUtils.mkdir_p(File.dirname(filepath))
153
164
  File.open(filepath, 'w') { |f| f.write(JSON.dump(total)) }
154
- Jekyll.logger.info 'J1 LunrSearch:', "finished, index ready"
165
+ Jekyll.logger.info 'J1 QuickSearch:', "finished, index ready."
155
166
  added_files = [filename]
156
167
 
157
168
  # Keep the written files from being cleaned by Jekyll
@@ -250,7 +261,7 @@ module Jekyll
250
261
  elsif defined?(site.data['date'])
251
262
  date = site.data['date']
252
263
  else
253
- date = '2020-01-01 00:00:00'
264
+ date = '2021-01-01 00:00:00'
254
265
  end
255
266
 
256
267
  tagline = site.data['tagline']
@@ -311,6 +322,6 @@ end
311
322
 
312
323
  module Jekyll
313
324
  module J1LunrSearch
314
- VERSION = '1.0.0'
325
+ VERSION = '2021.0.4'
315
326
  end
316
327
  end
@@ -14,7 +14,7 @@
14
14
  version="1.1"
15
15
  inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
16
16
  sodipodi:docname="d1.svg"
17
- inkscape:export-filename="C:\Temp\d10n-2021.0.3\assets\images\modules\icons\d1\d1-256x256.png"
17
+ inkscape:export-filename="C:\Temp\d10n-2021.0.4\assets\images\modules\icons\d1\d1-256x256.png"
18
18
  inkscape:export-xdpi="49.152"
19
19
  inkscape:export-ydpi="49.152">
20
20
  <title
@@ -12,20 +12,6 @@
12
12
  #
13
13
  # ------------------------------------------------------------------------------
14
14
 
15
- # Enforce Unix newlines
15
+ # Enforce Unix newlines, all text files
16
16
  #
17
- *.css text eol=lf
18
- *.html text eol=lf
19
- *.js text eol=lf
20
- *.json text eol=lf
21
- *.md text eol=lf
22
- *.py text eol=lf
23
- *.rb text eol=lf
24
- *.scss text eol=lf
25
- *.svg text eol=lf
26
- *.yml text eol=lf
27
- # Don't diff or textually merge source maps
28
- *.map binary
29
-
30
- bootstrap.css linguist-vendored=false
31
- bootstrap.js linguist-vendored=false
17
+ * text=auto eol=lf
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "private": true,
3
3
  "name": "j1_starter",
4
- "version": "2021.0.3",
4
+ "version": "2021.0.4",
5
5
  "description": "J1 Template Starter Web",
6
6
  "homepage": "https://your.site",
7
7
  "author": {
@@ -41,14 +41,14 @@
41
41
  "opt_skip_initial_build": "--skip-initial-build",
42
42
  "opt_webserver": "puma",
43
43
  "opt_interface": "0.0.0.0",
44
- "opt_web_port": "4000",
45
- "opt_web_url": "http://localhost:4000/",
46
- "opt_app_port": "8000",
47
- "opt_app_url": "http://localhost:8000/",
44
+ "opt_web_port": "40000",
45
+ "opt_web_url": "http://localhost:40000/",
46
+ "opt_app_port": "40010",
47
+ "opt_app_url": "http://localhost:40010/",
48
48
  "opt_profile": "",
49
49
  "opt_watch": "--watch",
50
50
  "opt_livereload": "--livereload",
51
- "opt_livereload_port": "44000"
51
+ "opt_livereload_port": "40001"
52
52
  },
53
53
  "algolia": {
54
54
  "admin_key": "your-algolia-admin-key"
@@ -3,13 +3,8 @@ title: Site Search
3
3
  tagline: Full-text search engine
4
4
  description: Algolia Index for all documents
5
5
 
6
- tags: [
7
- Doc, Post, Documents, Full, Text,
8
- Site, Search, Engine, Algolia
9
- ]
10
- index: []
11
- categories: [ pages ]
12
-
6
+ tags: [ Algolia ]
7
+ categories: [ Search ]
13
8
  toc: false
14
9
 
15
10
  permalink: /pages/protected/site_search/
@@ -9,7 +9,7 @@ description: >
9
9
  J1 Template which all people needs to know for a successful
10
10
  way to a modern static website using Jekyll and J1 Template
11
11
 
12
- tags: [ Kickstarter, Introduction ]
12
+ tags: [ Introduction ]
13
13
  categories: [ Jekyll, Knowledge, Tutorial ]
14
14
 
15
15
  permalink: /pages/public/learn/kickstarter/web_in_a_day/meet_and_greet/
@@ -5,7 +5,7 @@ date: 2018-05-01 00:00:00
5
5
  description: >
6
6
  Modern static website in a day
7
7
 
8
- tags: [ Kickstarter, Introduction ]
8
+ tags: [ Preparations ]
9
9
  categories: [ Jekyll, Knowledge, Tutorial ]
10
10
 
11
11
  permalink: /pages/public/learn/kickstarter/web_in_a_day/preparations/
@@ -42,7 +42,7 @@ resource_options:
42
42
 
43
43
  // Load page attributes
44
44
  // -----------------------------------------------------------------------------
45
- {% include {{load_attributes}} scope="none" %}
45
+ {% include {{load_attributes}} scope="all" %}
46
46
 
47
47
 
48
48
  // Page content
@@ -5,7 +5,7 @@ date: 2018-05-01 00:00:00
5
5
  description: >
6
6
  Modern static website in a day
7
7
 
8
- tags: [ Kickstarter, Introduction ]
8
+ tags: [ WebDesign ]
9
9
  categories: [ Jekyll, Knowledge, Tutorial ]
10
10
 
11
11
  permalink: /pages/public/learn/kickstarter/web_in_a_day/first_awesome_web/
@@ -42,7 +42,7 @@ resource_options:
42
42
 
43
43
  // Load page attributes
44
44
  // -----------------------------------------------------------------------------
45
- {% include {{load_attributes}} scope="none" %}
45
+ {% include {{load_attributes}} scope="all" %}
46
46
 
47
47
 
48
48
  // Page content
@@ -3,10 +3,10 @@ title: Lunr
3
3
  tagline: full index search
4
4
  date: 2020-11-08 12:00:00
5
5
  description: >
6
- Learn the search query language used by Lunr. The DSL used by Lunr
7
- is quite close to Solr to support a powerful search experience
8
- for better result. Using search expressions with wildcards, conditions
9
- like and|or and fuzzy search algorithms are supported.
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
10
 
11
11
  tags: [ Roundtrip, Introduction ]
12
12
  categories: [ Search ]
@@ -49,74 +49,173 @@ resource_options:
49
49
  // Page content
50
50
  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
51
51
 
52
- == Searching
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.
53
55
 
54
- After you have built an index of your documents, the next step is to
55
- perform a search.
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.
56
61
 
57
- The simplest way to start is to pass the text on which you want to
58
- search into the search method:
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.
59
65
 
60
- [source, javascript]
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
61
82
  ----
62
- idx.search('foo')
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
+ ....
63
91
  ----
64
92
 
65
- The above will return details of all documents that match the term
66
- “foo”. Although it looks like a string, the `search` method parses the
67
- string into a search query. This supports special syntax for defining
68
- more complex queries.
93
+ Or, if you're running a website in development mode, the index gets refreshed
94
+ for all files added or modified.
69
95
 
70
- Searches for multiple terms are also supported. If a document matches
71
- _at least_ one of the search terms, it will show in the results. The
72
- search terms are combined with OR.
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
+ ----
73
104
 
74
- [source, javascript]
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 ]
75
113
  ----
76
- idx.search('foo bar')
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
+ }
77
131
  ----
78
132
 
79
- The above example will match documents that contain either “foo” or
80
- “bar”. Documents that contain _both_ will score more highly and will be
81
- returned first.
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.
82
141
 
83
142
  === Scoring
84
143
 
85
- The score (also known as relevance) of a document is calculated by the
86
- https://en.wikipedia.org/wiki/Okapi_BM25[BM25] algorithm, along with
87
- other factors such as link:#Boosts[boosts]. You don’t need to worry too
88
- much about the details of how BM25 works; to summarize, the more a
89
- search term occurs in a single document, the more that term will
90
- increase that document’s score, but the more a search term occurs in the
91
- overall _collection_ of documents, the less that term will increase a
92
- document’s score.
93
-
94
- For example, let’s say you’re indexing a collection of documents about
95
- JavaScript testing libraries. The terms “JavaScript”, “library”, and
96
- “test” may occur very frequently throughout the entire collection, so
97
- finding a document that mentions one of these terms isn’t very
98
- significant. However, if you’re searching for “integration test”, only
99
- three documents in the collection have the term “integration” in them,
100
- and _one_ of them mentions “integration” many times, that will bring the
101
- score for that one document higher up.
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`.
102
203
 
103
204
  === Wildcards
104
205
 
105
- Lunr supports wildcards when performing searches. A wildcard is
206
+ QuickSearch supports wildcards when performing searches. A wildcard is
106
207
  represented as an asterisk (`*`) and can appear anywhere in a search
107
208
  term. For example, the following will match all documents with words
108
- beginning with “foo”:
209
+ beginning with `Jek`:
109
210
 
110
- [source, javascript]
111
211
  ----
112
- idx.search('foo*')
212
+ jek*
113
213
  ----
114
214
 
115
- This will match all documents that end with ‘oo’:
215
+ This will match all documents that end with `kyll`:
116
216
 
117
- [source, javascript]
118
217
  ----
119
- idx.search('*oo')
218
+ *kyll
120
219
  ----
121
220
 
122
221
  Leading wildcards, as in the above example, should be used sparingly.