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