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.
- checksums.yaml +4 -4
- data/_includes/themes/j1/modules/navigator/generator.html +6 -6
- data/_includes/themes/j1/modules/navigator/procedures/topsearch.proc +1 -1
- data/_includes/themes/j1/procedures/global/attributes_loader.proc +2 -2
- data/_layouts/raw.html +1 -1
- data/assets/data/fam.html +1 -1
- data/assets/data/gallery_customizer.html +1 -1
- data/assets/data/mdi_icons.json +69582 -14640
- data/assets/data/menu.html +36 -4
- data/assets/data/mmenu_toc.html +1 -1
- data/assets/themes/j1/adapter/js/fam.js +2 -2
- data/assets/themes/j1/adapter/js/j1.js +3 -2
- data/assets/themes/j1/adapter/js/themer.js +2 -1
- data/assets/themes/j1/core/css/animate.min.css +1 -7
- data/assets/themes/j1/core/css/icon-fonts/fontawesome.css +302 -22
- data/assets/themes/j1/core/css/icon-fonts/fontawesome.min.css +1 -1
- data/assets/themes/j1/core/css/icon-fonts/materialdesign.css +12505 -4812
- data/assets/themes/j1/core/css/icon-fonts/materialdesign.min.css +1 -1
- data/assets/themes/j1/core/css/icon-fonts/twemoji.min.css +1 -1
- data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.css +79 -49
- data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.min.css +1 -6
- data/assets/themes/j1/core/css/themes/uno-dark/bootstrap.css +78 -48
- data/assets/themes/j1/core/css/themes/uno-dark/bootstrap.min.css +1 -6
- data/assets/themes/j1/core/css/themes/uno-light/bootstrap.css +126 -52
- data/assets/themes/j1/core/css/themes/uno-light/bootstrap.min.css +1 -8
- data/assets/themes/j1/core/css/vendor.css +2 -2
- data/assets/themes/j1/core/css/vendor.min.css +1 -1
- data/assets/themes/j1/core/fonts/fontawesome_5/fonts/eot/fa-brands-400.eot +0 -0
- data/assets/themes/j1/core/fonts/fontawesome_5/fonts/eot/fa-regular-400.eot +0 -0
- data/assets/themes/j1/core/fonts/fontawesome_5/fonts/eot/fa-solid-900.eot +0 -0
- data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-brands-400.woff +0 -0
- data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-brands-400.woff2 +0 -0
- data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-regular-400.woff +0 -0
- data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-regular-400.woff2 +0 -0
- data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-solid-900.woff +0 -0
- data/assets/themes/j1/core/fonts/fontawesome_5/fonts/fa-solid-900.woff2 +0 -0
- data/assets/themes/j1/core/fonts/fontawesome_5/fonts/svg/fa-brands-400.svg +855 -597
- data/assets/themes/j1/core/fonts/fontawesome_5/fonts/svg/fa-regular-400.svg +94 -96
- data/assets/themes/j1/core/fonts/fontawesome_5/fonts/svg/fa-solid-900.svg +1272 -771
- data/assets/themes/j1/core/fonts/fontawesome_5/fonts/ttf/fa-brands-400.ttf +0 -0
- data/assets/themes/j1/core/fonts/fontawesome_5/fonts/ttf/fa-regular-400.ttf +0 -0
- data/assets/themes/j1/core/fonts/fontawesome_5/fonts/ttf/fa-solid-900.ttf +0 -0
- data/assets/themes/j1/core/fonts/{materialdesign_icons/fonts → material_design_icons/fonts/_versions/v3.3.92}/eot/materialdesignicons-webfont.eot +0 -0
- data/assets/themes/j1/core/fonts/{materialdesign_icons/fonts → material_design_icons/fonts/_versions/v3.3.92}/materialdesignicons-webfont.woff +0 -0
- data/assets/themes/j1/core/fonts/{materialdesign_icons/fonts → material_design_icons/fonts/_versions/v3.3.92}/materialdesignicons-webfont.woff2 +0 -0
- data/assets/themes/j1/core/fonts/{materialdesign_icons/fonts → material_design_icons/fonts/_versions/v3.3.92}/svg/materialdesignicons-webfont.svg +0 -0
- data/assets/themes/j1/core/fonts/{materialdesign_icons/fonts → material_design_icons/fonts/_versions/v3.3.92}/ttf/materialdesignicons-webfont.ttf +0 -0
- data/assets/themes/j1/core/fonts/material_design_icons/fonts/_versions/v5.9.55/eot/materialdesignicons-webfont.eot +0 -0
- data/assets/themes/j1/core/fonts/material_design_icons/fonts/_versions/v5.9.55/materialdesignicons-webfont.woff +0 -0
- data/assets/themes/j1/core/fonts/material_design_icons/fonts/_versions/v5.9.55/materialdesignicons-webfont.woff2 +0 -0
- data/assets/themes/j1/core/fonts/material_design_icons/fonts/_versions/v5.9.55/preview.html +717 -0
- data/assets/themes/j1/core/fonts/material_design_icons/fonts/_versions/v5.9.55/svg/materialdesignicons-webfont.svg +10188 -0
- data/assets/themes/j1/core/fonts/material_design_icons/fonts/_versions/v5.9.55/ttf/materialdesignicons-webfont.ttf +0 -0
- data/assets/themes/j1/core/fonts/material_design_icons/fonts/eot/materialdesignicons-webfont.eot +0 -0
- data/assets/themes/j1/core/fonts/material_design_icons/fonts/materialdesignicons-webfont.woff +0 -0
- data/assets/themes/j1/core/fonts/material_design_icons/fonts/materialdesignicons-webfont.woff2 +0 -0
- data/assets/themes/j1/core/fonts/material_design_icons/fonts/svg/materialdesignicons-webfont.svg +10188 -0
- data/assets/themes/j1/core/fonts/material_design_icons/fonts/ttf/materialdesignicons-webfont.ttf +0 -0
- data/assets/themes/j1/core/fonts/{materialdesign_icons → material_design_icons}/metadata/icons.json +0 -0
- data/assets/themes/j1/core/fonts/{materialdesign_icons → material_design_icons}/metadata/icons.yml +0 -0
- data/assets/themes/j1/core/js/template.min.js +23 -1
- data/assets/themes/j1/modules/jquery/js/jquery-3.5.1.min.map +1 -0
- data/assets/themes/j1/modules/justifiedGallery/_versions/v3.8.0/css/justifiedGallery.css +110 -0
- data/assets/themes/j1/modules/justifiedGallery/_versions/v3.8.0/css/justifiedGallery.min.css +110 -0
- data/assets/themes/j1/modules/justifiedGallery/_versions/v3.8.0/js/jquery.justifiedGallery.js +1245 -0
- data/assets/themes/j1/modules/justifiedGallery/_versions/v3.8.0/js/jquery.justifiedGallery.min.js +8 -0
- data/assets/themes/j1/modules/justifiedGallery/_versions/v3.8.0/justifiedGallery.min.zip +0 -0
- data/assets/themes/j1/modules/justifiedGallery/_versions/v3.8.0/justifiedGallery.zip +0 -0
- data/assets/themes/j1/modules/justifiedGallery/css/_archived/justifiedGallery.css +110 -0
- data/assets/themes/j1/modules/justifiedGallery/css/_archived/justifiedGallery.min.css +110 -0
- data/assets/themes/j1/modules/justifiedGallery/css/justifiedGallery.css +11 -10
- data/assets/themes/j1/modules/justifiedGallery/css/justifiedGallery.min.css +3 -106
- data/assets/themes/j1/modules/justifiedGallery/js/justifiedGallery.js +147 -146
- data/assets/themes/j1/modules/justifiedGallery/js/justifiedGallery.min.js +3 -3
- data/assets/themes/j1/modules/lightGallery/js/core/lightgallery.min.js +1 -2
- data/assets/themes/j1/modules/lightbox/js/lightbox.js +1 -1
- data/assets/themes/j1/modules/lunrSearch/js/quicksearch.min.js +1 -1
- data/assets/themes/j1/modules/mdiPreviewer/css/previewer.css +20 -5
- data/assets/themes/j1/modules/mdiPreviewer/css/previewer.min.css +1 -1
- data/assets/themes/j1/modules/mdiPreviewer/js/previewer.js +115 -0
- data/assets/themes/j1/modules/mdiPreviewer/js/previewer.min.js +15 -0
- data/assets/themes/j1/modules/mdiPreviewer/js/previewer.new.js +111 -0
- data/assets/themes/j1/modules/mdiPreviewer/js/previewer.old.js +103 -0
- data/assets/themes/j1/modules/mmenuLight/js/mmenu.js +2 -2
- data/assets/themes/j1/modules/mmenuLight/js/mmenu.min.js +3 -3
- data/assets/themes/j1/modules/twemoji/css/picker/twemoji-picker.css +4 -4
- data/assets/themes/j1/modules/twemoji/css/picker/twemoji-picker.min.css +1 -1
- data/assets/themes/j1/modules/twemoji/js/picker/twemoji-picker.js +46 -45
- data/assets/themes/j1/modules/twemoji/js/picker/twemoji-picker.min.js +1 -1
- data/lib/j1/commands/generate.rb +3 -2
- data/lib/j1/version.rb +1 -1
- data/lib/j1_app/j1_auth_manager/auth_manager.rb +15 -0
- data/lib/starter_web/Gemfile +18 -17
- data/lib/starter_web/_config.yml +9 -7
- data/lib/starter_web/_data/apps/light_gallery.yml +1 -1
- data/lib/starter_web/_data/asciidoc2pdf/themes/j1-theme.yml +225 -188
- data/lib/starter_web/_data/j1_config.yml +3 -3
- data/lib/starter_web/_data/modules/defaults/navigator.yml +1 -1
- data/lib/starter_web/_data/modules/defaults/quicksearch.yml +13 -4
- data/lib/starter_web/_data/modules/defaults/toccer.yml +1 -1
- data/lib/starter_web/_data/modules/navigator_menu.yml +28 -72
- data/lib/starter_web/_data/resources.yml +3 -26
- data/lib/starter_web/_includes/attributes.asciidoc +296 -96
- data/lib/starter_web/_includes/tables/jekyll_variables.asciidoc +1 -1
- data/lib/starter_web/_includes/tables/template_variables.asciidoc +1 -1
- data/lib/starter_web/_plugins/asciidoctor-extensions/fab-icon-inline.rb +1 -1
- data/lib/starter_web/_plugins/lunr_index.rb +20 -1
- data/lib/starter_web/_plugins/minifyJS.rb +3 -0
- data/lib/starter_web/assets/images/modules/attics/machine-generator-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/modules-apps-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/nicola-styles-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/no-time-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/responsive-text-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/icons/d1/scalable/d1.svg +1 -1
- data/lib/starter_web/assets/images/pages/panels/modules-apps-1920x800.jpg +0 -0
- data/lib/starter_web/assets/images/pages/panels/no-time-1920x800.jpg +0 -0
- data/lib/starter_web/assets/images/pages/panels/the-place-1920x800.jpg +0 -0
- data/lib/starter_web/assets/images/pages/roundtrip/600_quicksearch/quicksearch_icon-800x200.jpg +0 -0
- data/lib/starter_web/assets/images/pages/roundtrip/600_quicksearch/quicksearch_icon.jpg +0 -0
- data/lib/starter_web/assets/images/pages/roundtrip/600_quicksearch/quicksearch_input-800x200.jpg +0 -0
- data/lib/starter_web/assets/images/pages/roundtrip/600_quicksearch/quicksearch_input.jpg +0 -0
- data/lib/starter_web/assets/images/pages/roundtrip/600_quicksearch/quicksearch_results_jekyll-.jpg +0 -0
- data/lib/starter_web/assets/images/pages/roundtrip/600_quicksearch/quicksearch_results_jekyll.jpg +0 -0
- data/lib/starter_web/assets/images/pages/skeleton/annie-spratt-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/pages/skeleton/antonino-visalli-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/pages/skeleton/humble-lamb-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/pages/skeleton/library-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/pages/skeleton/romain-vignes-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/pages/skeleton/sigmund-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/pages/writers_guide/1280px-PDCA_Process.png +0 -0
- data/lib/starter_web/assets/images/pages/writers_guide/annie-spratt-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/pages/writers_guide/deming-cycle.png +0 -0
- data/lib/starter_web/assets/images/pages/writers_guide/humble-lamb-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/pages/writers_guide/john-schnobrich-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/pages/writers_guide/sigmund-1920x1280.jpg +0 -0
- data/lib/starter_web/collections/posts/public/featured/_posts/0000-00-00-welcome-to-j1-template.adoc.erb +10 -13
- 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
- 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
- data/lib/starter_web/collections/posts/public/featured/_posts/{2019-06-01-about-cookies.adoc → 2020-06-01-about-cookies.adoc} +10 -24
- data/lib/starter_web/collections/posts/public/series/_posts/2020-01-01-post-test-series.adoc +7 -18
- data/lib/starter_web/collections/posts/public/series/_posts/2020-01-02-post-test-series.adoc +7 -17
- data/lib/starter_web/collections/posts/public/series/_posts/2020-01-03-post-test-series.adoc +7 -17
- data/lib/starter_web/collections/posts/public/series/_posts/2020-01-04-post-test-series.adoc +7 -17
- data/{assets/themes/j1/modules/mdiPreviewer/js → lib/starter_web/collections/posts/public/series/_posts/_includes/documents}/readme +0 -0
- data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-20-minneapolis.adoc +5 -4
- data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-24-narcisse-snake-dens.adoc +13 -3
- data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-26-columbia-river.adoc +13 -3
- data/lib/starter_web/favicon.ico +0 -0
- data/lib/starter_web/index.html +4 -6
- data/lib/starter_web/package.json +3 -3
- data/lib/starter_web/pages/public/about/about_site.adoc +39 -16
- data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/asciidoc-extensions/blindtext.asciidoc +11 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/asciidoc-extensions/font_icons.asciidoc +23 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/asciidoc-extensions/gallery.asciidoc +5 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/asciidoc-extensions/lightbox.asciidoc +7 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/documents/chapter_document.asciidoc +9 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/documents/entry_document.asciidoc +3 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/images/image.asciidoc +6 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/tables/table_2_column.asciidoc +12 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/tables/table_2_column_options.asciidoc +30 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/tables/table_3_column.asciidoc +16 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/tables/table_4_column.asciidoc +25 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/000_intro.adoc +61 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/100_chapter.adoc +58 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/200_chapter.adoc +59 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/900_references.adoc +68 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/attributes.asciidoc +68 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/000_intro.asciidoc +33 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/100_chapter.asciidoc +7 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/100_chapter/100_chapter_document.asciidoc +21 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/100_chapter/110_chapter_document.asciidoc +36 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/200_chapter.asciidoc +5 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/200_chapter/200_chapter_document.asciidoc +53 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/900_references.asciidoc +23 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/900_references/000_intro.asciidoc +23 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/900_references/100_chapter_document.asciidoc +33 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/900_references/200_chapter_document.asciidoc +26 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/900_references/900_sources.asciidoc +81 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/tables/110_material_design_icons.asciidoc +102 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/a2p.bat +28 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/a2p.sh +26 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/book.a2p +114 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/book.adoc +128 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/book/book.pdf +5440 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/100_chapter.asciidoc +60 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/200_chapter.asciidoc +59 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/attributes.asciidoc +63 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/documents/100_chapter.asciidoc +53 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/documents/200_chapter.asciidoc +53 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/documents/tables/110_material_design_icons.asciidoc +102 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +84 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +236 -0
- data/lib/starter_web/pages/public/blog/navigator/archive.html +2 -0
- data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +3 -1
- data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +2 -0
- data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +2 -0
- data/lib/starter_web/pages/public/blog/navigator/index.html +2 -0
- data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +8 -4
- data/lib/starter_web/pages/public/learn/roundtrip/100_present_videos.adoc +3 -4
- data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +2 -270
- data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +168 -85
- data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +6 -9
- data/lib/starter_web/pages/public/learn/roundtrip/410_bs_modals_extentions.adoc +5 -6
- data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +2 -55
- data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +116 -57
- data/lib/starter_web/pages/public/learn/roundtrip/600_quicksearch.adoc +433 -0
- data/lib/starter_web/pages/public/learn/roundtrip/_includes/attributes.asciidoc +4 -1
- data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/{410_table_3_column.asciidoc → 410_table_bs_modal_examples.asciidoc} +0 -0
- data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/tables/bs_modal_examples.asciidoc +47 -0
- data/lib/starter_web/pages/public/learn/where_to_go.adoc +2 -2
- data/lib/starter_web/pages/public/legal/en/000_copyright.adoc +1 -1
- data/lib/starter_web/pages/public/legal/en/100_impress.adoc +1 -1
- data/lib/starter_web/pages/public/legal/en/200_terms_of_use.adoc +1 -1
- data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +1 -1
- data/lib/starter_web/pages/public/legal/en/400_license_agreement.adoc +1 -1
- data/lib/starter_web/pages/public/legal/en/500_support.adoc +1 -1
- data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +16 -5
- data/lib/starter_web/pages/public/previewer/_includes/attributes.asciidoc +5 -81
- data/lib/starter_web/pages/public/previewer/_includes/documents/rouge/100_language_examples.asciidoc +119 -0
- data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/100_absolute_sizes.asciidoc +1 -1
- data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/110_bs_grid_sizes.asciidoc +1 -1
- data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/120_relative_sizes.asciidoc +1 -1
- data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/200_rotate.asciidoc +1 -1
- data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/300_flip.asciidoc +1 -1
- data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/400_spin_pulsed.asciidoc +4 -4
- data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/500_bw_color_palette.asciidoc +1 -1
- data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/510_bs_color_palette.asciidoc +1 -1
- data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/600_md_color_palette.asciidoc +1 -1
- data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/601_md_color_palette_indigo.asciidoc +1 -1
- data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/602_md_color_palette_pink.asciidoc +1 -1
- data/lib/starter_web/pages/public/previewer/_includes/tables/rouge/200_rouge_attributes.asciidoc +41 -0
- data/lib/starter_web/pages/public/previewer/_includes/tables/rouge/300_supported_languages.asciidoc +857 -0
- data/lib/starter_web/pages/public/previewer/_includes/tables/twitter_emoji/100_bs_sizes.asciidoc +1 -1
- data/lib/starter_web/pages/public/previewer/_includes/tables/twitter_emoji/100_relative_sizes.asciidoc +1 -1
- data/lib/starter_web/pages/public/previewer/_includes/tables/twitter_emoji/200_rotate.asciidoc +1 -1
- data/lib/starter_web/pages/public/previewer/_includes/tables/twitter_emoji/300_flip.asciidoc +1 -1
- data/lib/starter_web/pages/public/previewer/_includes/tables/twitter_emoji/400_spin_pulsed.asciidoc +1 -1
- data/lib/starter_web/pages/public/previewer/bootstrap_theme.adoc +116 -78
- data/lib/starter_web/pages/public/previewer/iframer.adoc +1 -1
- data/lib/starter_web/pages/public/previewer/justified_gallery.html +1 -1
- data/lib/starter_web/pages/public/previewer/mdi_icons_preview.adoc +42 -109
- data/lib/starter_web/pages/public/previewer/rouge.adoc +77 -352
- data/lib/starter_web/pages/public/previewer/twitter_emoji_preview.adoc +3 -3
- data/lib/starter_web/utilsrv/_defaults/package.json +2 -2
- data/lib/starter_web/utilsrv/package.json +3 -3
- metadata +114 -37
- data/assets/themes/j1/modules/twemoji/js/LICENSE +0 -21
- data/lib/starter_web/_plugins/simple_search_filter.rb +0 -32
- data/lib/starter_web/collections/posts/public/featured/_posts/_includes/documents/unsplash-badge.asciidoc +0 -31
- data/lib/starter_web/collections/posts/public/series/_posts/_includes/documents/100-docker-using-shared-folders.asciidoc +0 -430
- data/lib/starter_web/collections/posts/public/series/_posts/_includes/documents/loop.sh +0 -28
- data/lib/starter_web/pages/public/about/become_a_patron.adoc +0 -46
- data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/100_meet_and_greet_jekyll.adoc +0 -79
- data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/200_preparations.adoc +0 -77
- data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/300_first_awesome_web.adoc +0 -75
- data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/_includes/attributes.asciidoc +0 -176
- data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/_includes/documents/100_meet_and_greet_jekyll.asciidoc +0 -31
- data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/_includes/documents/200_preparations.asciidoc +0 -14
- data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/_includes/documents/300_first_awesome_web.asciidoc +0 -11
- data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/_includes/parts.asciidoc +0 -193
- data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/_includes/tables/debug_variables.asciidoc +0 -47
- data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/_includes/tables/readme +0 -1
- data/lib/starter_web/pages/public/learn/roundtrip/600_lunr.adoc +0 -335
- data/lib/starter_web/pages/public/learn/roundtrip/610_fam.adoc +0 -294
- 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 +0,0 @@
|
|
1
|
-
bla
|
@@ -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
|
-
----
|