j1-template 2020.0.22 → 2020.0.24
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/layouts/content_generator_page.html +1 -1
- data/_includes/themes/j1/layouts/content_generator_post.html +63 -161
- data/_includes/themes/j1/modules/connectors/ad/google-adsense.html +14 -0
- data/_includes/themes/j1/modules/connectors/analytic/google-analytics.html +1 -3
- data/_includes/themes/j1/modules/connectors/comment/disqus.html +37 -24
- data/_includes/themes/j1/modules/navigator/generator.html +8 -3
- data/_includes/themes/j1/modules/navigator/procedures/topsearch.proc +36 -26
- data/_includes/themes/j1/procedures/layouts/module_writer.proc +1 -1
- data/_includes/themes/j1/procedures/posts/create_series_header.proc +9 -5
- data/assets/data/banner.html +1 -1
- data/assets/data/fam.html +124 -0
- data/assets/data/mmenu_sidebar.html +3 -3
- data/assets/data/panel.html +9 -9
- data/assets/data/quicklinks.html +13 -13
- data/assets/error_pages/HTTP204.html +1 -0
- data/assets/error_pages/HTTP400.html +3 -2
- data/assets/error_pages/HTTP401.html +3 -2
- data/assets/error_pages/HTTP403.html +3 -2
- data/assets/error_pages/HTTP404.html +3 -2
- data/assets/error_pages/HTTP500.html +3 -2
- data/assets/error_pages/HTTP501.html +3 -2
- data/assets/error_pages/HTTP502.html +3 -2
- data/assets/error_pages/HTTP503.html +3 -2
- data/assets/error_pages/HTTP520.html +3 -2
- data/assets/error_pages/HTTP521.html +3 -2
- data/assets/error_pages/HTTP533.html +3 -2
- data/assets/themes/j1/adapter/js/{ssm.js → fam.js} +248 -138
- data/assets/themes/j1/adapter/js/framer.js +72 -56
- data/assets/themes/j1/adapter/js/gallery_customizer.js +2 -1
- data/assets/themes/j1/adapter/js/j1.js +8 -2
- data/assets/themes/j1/adapter/js/{searcher.js → lunr_search.js} +68 -65
- data/assets/themes/j1/adapter/js/toccer.js +62 -30
- data/assets/themes/j1/core/css/bootstrap.css +7154 -0
- data/assets/themes/j1/core/css/bootstrap.min.css +6 -0
- data/assets/themes/j1/core/css/custom.scss +28 -0
- data/assets/themes/j1/core/css/globals.css +14523 -0
- data/assets/themes/j1/core/css/globals.min.css +1 -0
- data/assets/themes/j1/core/css/globals.scss +28 -0
- data/assets/themes/j1/core/css/theme_extensions.css +11558 -0
- data/assets/themes/j1/core/css/theme_extensions.min.css +1 -0
- data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.css +7 -4
- data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.min.css +2 -2
- data/assets/themes/j1/core/css/themes/uno-dark/bootstrap.css +7 -4
- data/assets/themes/j1/core/css/themes/uno-dark/bootstrap.min.css +2 -2
- data/assets/themes/j1/core/css/themes/uno-light/bootstrap.css +514 -417
- data/assets/themes/j1/core/css/themes/uno-light/bootstrap.min.css +2 -2
- data/assets/themes/j1/core/css/uno.css +11823 -0
- data/assets/themes/j1/core/css/uno.min.css +1 -0
- data/assets/themes/j1/core/css/uno.scss +28 -0
- data/assets/themes/j1/core/css/vendor.css +5 -4
- data/assets/themes/j1/core/css/vendor.min.css +1 -1
- data/assets/themes/j1/core/css/vendor.scss +28 -0
- data/assets/themes/j1/core/js/template.js +6 -11
- data/assets/themes/j1/core/js/template.js.map +1 -1
- data/assets/themes/j1/core/js/template.min.js +1 -1
- data/assets/themes/j1/modules/bmd/js/bootstrap-material-design.js +6 -0
- data/assets/themes/j1/modules/cash/js/cash.js +1374 -0
- data/assets/themes/j1/modules/cash/js/cash.min.js +42 -0
- data/assets/themes/j1/modules/fam/css/uno/fam.css +369 -0
- data/assets/themes/j1/modules/fam/js/fam.js +477 -0
- data/assets/themes/j1/modules/iframeResizer/examples/frame.nested.html +1 -1
- data/assets/themes/j1/modules/iframeResizer/js/{iframeResizer.js → resizer.js} +0 -0
- data/assets/themes/j1/modules/iframeResizer/js/{iframeResizer.map → resizer.map} +0 -0
- data/assets/themes/j1/modules/iframeResizer/js/{iframeResizer.min.js → resizer.min.js} +0 -0
- data/assets/themes/j1/modules/jquery/js/require.js +2145 -0
- data/assets/themes/j1/modules/jquery/js/require.min.js +5 -0
- data/assets/themes/j1/modules/lunrSearch/css/lunr_search.css +32 -0
- data/assets/themes/j1/modules/lunrSearch/css/lunr_search.min.css +25 -0
- data/assets/themes/j1/modules/lunrSearch/js/dateformat.js +125 -0
- data/assets/themes/j1/modules/lunrSearch/js/dateformat.min.js +14 -0
- data/assets/themes/j1/modules/lunrSearch/js/lunr.js +3475 -0
- data/assets/themes/j1/modules/lunrSearch/js/lunr.min.js +51 -0
- data/assets/themes/j1/modules/lunrSearch/js/lunr_search.js +184 -0
- data/assets/themes/j1/modules/lunrSearch/js/lunr_search.min.js +17 -0
- data/assets/themes/j1/modules/lunrSearch/js/mustache.js +772 -0
- data/assets/themes/j1/modules/lunrSearch/js/mustache.min.js +772 -0
- data/assets/themes/j1/modules/lunrSearch/js/uri.js +2340 -0
- data/assets/themes/j1/modules/lunrSearch/js/uri.min.js +93 -0
- data/assets/themes/j1/modules/materialize/js/anime.js +1283 -0
- data/assets/themes/j1/modules/materialize/js/anime.min.js +34 -0
- data/assets/themes/j1/modules/materialize/js/autocomplete.js +450 -0
- data/assets/themes/j1/modules/materialize/js/buttons.js +409 -0
- data/assets/themes/j1/modules/materialize/js/cards.js +40 -0
- data/assets/themes/j1/modules/materialize/js/carousel.js +717 -0
- data/assets/themes/j1/modules/materialize/js/cash-dom.js +1044 -0
- data/assets/themes/j1/modules/materialize/js/cash.js +960 -0
- data/assets/themes/j1/modules/materialize/js/characterCounter.js +136 -0
- data/assets/themes/j1/modules/materialize/js/chips.js +481 -0
- data/assets/themes/j1/modules/materialize/js/collapsible.js +275 -0
- data/assets/themes/j1/modules/materialize/js/component.js +44 -0
- data/assets/themes/j1/modules/materialize/js/datepicker.js +975 -0
- data/assets/themes/j1/modules/materialize/js/dropdown.js +617 -0
- data/assets/themes/j1/modules/materialize/js/forms.js +275 -0
- data/assets/themes/j1/modules/materialize/js/global.js +427 -0
- data/assets/themes/j1/modules/materialize/js/materialbox.js +453 -0
- data/assets/themes/j1/modules/materialize/js/modal.js +382 -0
- data/assets/themes/j1/modules/materialize/js/parallax.js +138 -0
- data/assets/themes/j1/modules/materialize/js/pushpin.js +145 -0
- data/assets/themes/j1/modules/materialize/js/range.js +263 -0
- data/assets/themes/j1/modules/materialize/js/ripple.js +335 -0
- data/assets/themes/j1/modules/materialize/js/scrollspy.js +295 -0
- data/assets/themes/j1/modules/materialize/js/select.js +432 -0
- data/assets/themes/j1/modules/materialize/js/sidenav.js +580 -0
- data/assets/themes/j1/modules/materialize/js/slider.js +359 -0
- data/assets/themes/j1/modules/materialize/js/tabs.js +402 -0
- data/assets/themes/j1/modules/materialize/js/tapTarget.js +314 -0
- data/assets/themes/j1/modules/materialize/js/timepicker.js +647 -0
- data/assets/themes/j1/modules/materialize/js/toasts.js +310 -0
- data/assets/themes/j1/modules/materialize/js/tooltip.js +303 -0
- data/assets/themes/j1/modules/materialize/js/waves.js +335 -0
- data/assets/themes/j1/modules/materialize/scss/components/_badges.scss +55 -0
- data/assets/themes/j1/modules/materialize/scss/components/_buttons.scss +322 -0
- data/assets/themes/j1/modules/materialize/scss/components/_cards.scss +195 -0
- data/assets/themes/j1/modules/materialize/scss/components/_carousel.scss +90 -0
- data/assets/themes/j1/modules/materialize/scss/components/_chips.scss +90 -0
- data/assets/themes/j1/modules/materialize/scss/components/_collapsible.scss +91 -0
- data/assets/themes/j1/modules/materialize/scss/components/_color-classes.scss +32 -0
- data/assets/themes/j1/modules/materialize/scss/components/_color-variables.scss +370 -0
- data/assets/themes/j1/modules/materialize/scss/components/_datepicker.scss +191 -0
- data/assets/themes/j1/modules/materialize/scss/components/_dropdown.scss +85 -0
- data/assets/themes/j1/modules/materialize/scss/components/_global.scss +769 -0
- data/assets/themes/j1/modules/materialize/scss/components/_grid.scss +156 -0
- data/assets/themes/j1/modules/materialize/scss/components/_icons-material-design.scss +5 -0
- data/assets/themes/j1/modules/materialize/scss/components/_materialbox.scss +43 -0
- data/assets/themes/j1/modules/materialize/scss/components/_modal.scss +94 -0
- data/assets/themes/j1/modules/materialize/scss/components/_navbar.scss +208 -0
- data/assets/themes/j1/modules/materialize/scss/components/_normalize.scss +447 -0
- data/assets/themes/j1/modules/materialize/scss/components/_preloader.scss +334 -0
- data/assets/themes/j1/modules/materialize/scss/components/_pulse.scss +34 -0
- data/assets/themes/j1/modules/materialize/scss/components/_sidenav.scss +216 -0
- data/assets/themes/j1/modules/materialize/scss/components/_slider.scss +92 -0
- data/assets/themes/j1/modules/materialize/scss/components/_table_of_contents.scss +33 -0
- data/assets/themes/j1/modules/materialize/scss/components/_tabs.scss +99 -0
- data/assets/themes/j1/modules/materialize/scss/components/_tapTarget.scss +103 -0
- data/assets/themes/j1/modules/materialize/scss/components/_timepicker.scss +183 -0
- data/assets/themes/j1/modules/materialize/scss/components/_toast.scss +58 -0
- data/assets/themes/j1/modules/materialize/scss/components/_tooltip.scss +32 -0
- data/assets/themes/j1/modules/materialize/scss/components/_transitions.scss +13 -0
- data/assets/themes/j1/modules/materialize/scss/components/_typography.scss +60 -0
- data/assets/themes/j1/modules/materialize/scss/components/_variables.scss +349 -0
- data/assets/themes/j1/modules/materialize/scss/components/_waves.scss +114 -0
- data/assets/themes/j1/modules/materialize/scss/components/forms/_checkboxes.scss +200 -0
- data/assets/themes/j1/modules/materialize/scss/components/forms/_file-input.scss +44 -0
- data/assets/themes/j1/modules/materialize/scss/components/forms/_forms.scss +22 -0
- data/assets/themes/j1/modules/materialize/scss/components/forms/_input-fields.scss +354 -0
- data/assets/themes/j1/modules/materialize/scss/components/forms/_radio-buttons.scss +115 -0
- data/assets/themes/j1/modules/materialize/scss/components/forms/_range.scss +161 -0
- data/assets/themes/j1/modules/materialize/scss/components/forms/_select.scss +180 -0
- data/assets/themes/j1/modules/materialize/scss/components/forms/_switches.scss +89 -0
- data/assets/themes/j1/modules/materialize/scss/materialize.scss +41 -0
- data/assets/themes/j1/modules/{bsThemeSwitcher → themeSwitcher}/js/switcher.js +0 -0
- data/assets/themes/j1/modules/{bsThemeSwitcher → themeSwitcher}/js/switcher.min.js +0 -0
- data/lib/j1/version.rb +1 -1
- data/lib/starter_web/Gemfile +12 -16
- data/lib/starter_web/_config.yml +95 -21
- data/lib/starter_web/_data/blocks/banner.yml +1 -1
- data/lib/starter_web/_data/blocks/panel.yml +6 -6
- data/lib/starter_web/_data/j1_config.yml +7 -6
- data/lib/starter_web/_data/layouts/home.yml +13 -3
- data/lib/starter_web/_data/layouts/page.yml +10 -0
- data/lib/starter_web/_data/layouts/post.yml +10 -0
- data/lib/starter_web/_data/modules/defaults/{ssm.yml → fam.yml} +12 -15
- data/lib/starter_web/_data/modules/defaults/lunr_search.yml +171 -0
- data/lib/starter_web/_data/modules/defaults/navigator.yml +4 -4
- data/lib/starter_web/_data/modules/defaults/toccer.yml +4 -2
- data/lib/starter_web/_data/modules/fam.yml +158 -0
- data/lib/starter_web/_data/modules/{back2top.yml → lunr_search.yml} +15 -9
- data/lib/starter_web/_data/modules/navigator.yml +2 -2
- data/lib/starter_web/_data/modules/navigator_menu.yml +57 -6
- data/lib/starter_web/_data/modules/toccer.yml +0 -73
- data/lib/starter_web/_data/resources.yml +151 -104
- data/lib/starter_web/_includes/attributes.asciidoc +2 -2
- data/lib/starter_web/_includes/breadcrumbs.html +11 -0
- data/lib/starter_web/_plugins/debug.rb +0 -1
- data/lib/starter_web/_plugins/filters.rb +0 -1
- data/lib/starter_web/_plugins/{lorem-inline.rb → lorem_inline.rb} +1 -2
- data/lib/starter_web/_plugins/lunr_index.rb +313 -0
- data/lib/starter_web/_plugins/prettify.rb +0 -3
- data/lib/starter_web/_plugins/simple_search_filter.rb +0 -1
- data/lib/starter_web/_plugins/symlink_watcher.rb +2 -3
- data/lib/starter_web/assets/images/modules/attics/banner/lunr-banner-1280x800.jpg +0 -0
- data/lib/starter_web/assets/images/pages/winlogbeat/coordinate-map.png +0 -0
- data/lib/starter_web/assets/images/pages/winlogbeat/kibana-powershell.jpg +0 -0
- data/lib/starter_web/assets/images/pages/winlogbeat/option_ignore_outgoing.png +0 -0
- data/lib/starter_web/assets/images/pages/winlogbeat/winlogbeat-dashboard.png +0 -0
- data/lib/starter_web/collections/posts/public/featured/_posts/2018-05-01-confusion-about-base-url.adoc +2 -4
- data/lib/starter_web/collections/posts/public/featured/_posts/2019-05-01-top-open-source-static-site-generators.adoc +4 -2
- data/lib/starter_web/collections/posts/public/featured/_posts/2019-06-01-about-cookies.adoc +3 -2
- data/lib/starter_web/collections/posts/public/series/_posts/2018-11-01-docker-using-shared-folders.adoc +5 -4
- data/lib/starter_web/collections/posts/public/series/_posts/2020-01-01-post-test-series.adoc +144 -0
- data/lib/starter_web/collections/posts/public/series/_posts/2020-01-02-post-test-series.adoc +146 -0
- data/lib/starter_web/collections/posts/public/series/_posts/2020-01-03-post-test-series.adoc +146 -0
- data/lib/starter_web/collections/posts/public/series/_posts/2020-01-04-post-test-series.adoc +146 -0
- data/lib/starter_web/collections/posts/public/test_posts/_posts/2020-09-11-test_post.adoc +2 -4
- data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-20-minneapolis.adoc +2 -3
- data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-24-narcisse-snake-dens.adoc +2 -7
- data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-26-columbia-river.adoc +2 -6
- data/lib/starter_web/index.html +16 -10
- data/lib/starter_web/package.json +5 -2
- data/lib/starter_web/pages/public/about/about_site.adoc +0 -2
- data/lib/starter_web/pages/public/about/become_a_patron.adoc +1 -3
- data/lib/starter_web/pages/public/blog/navigator/archive.html +8 -1
- data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +7 -3
- data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +8 -1
- data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +7 -2
- data/lib/starter_web/pages/public/blog/navigator/index.html +6 -2
- data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/100_meet_and_greet_jekyll.adoc +3 -4
- data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/200_preparations.adoc +3 -4
- data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/300_first_awesome_web.adoc +3 -4
- data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +25 -20
- data/lib/starter_web/pages/public/learn/roundtrip/100_present_videos.adoc +14 -12
- data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +20 -20
- data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +13 -8
- data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +14 -9
- data/lib/starter_web/pages/public/learn/roundtrip/410_bs_modals_extentions.adoc +9 -6
- data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +62 -8
- data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +9 -7
- data/lib/starter_web/pages/public/learn/roundtrip/600_lunr.adoc +237 -0
- data/lib/starter_web/pages/public/learn/roundtrip/610_fam.adoc +302 -0
- data/lib/starter_web/pages/public/learn/where_to_go.adoc +3 -7
- data/lib/starter_web/pages/public/legal/de/100_impress.adoc +3 -2
- data/lib/starter_web/pages/public/legal/de/200_terms_of_use.adoc +2 -1
- data/lib/starter_web/pages/public/legal/de/300_privacy.adoc +2 -1
- data/lib/starter_web/pages/public/legal/de/400_license_agreement.adoc +2 -1
- data/lib/starter_web/pages/public/legal/de/500_support.adoc +2 -1
- data/lib/starter_web/pages/public/legal/en/000_copyright.adoc +30 -27
- data/lib/starter_web/pages/public/legal/en/100_impress.adoc +8 -5
- data/lib/starter_web/pages/public/legal/en/200_terms_of_use.adoc +12 -8
- data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +7 -0
- data/lib/starter_web/pages/public/legal/en/400_license_agreement.adoc +8 -1
- data/lib/starter_web/pages/public/legal/en/500_support.adoc +8 -1
- data/lib/starter_web/pages/public/previewer/bootstrap_theme.adoc +3 -1
- data/lib/starter_web/pages/public/previewer/iframer.adoc +36 -28
- data/lib/starter_web/pages/public/previewer/justified_gallery.html +2 -1
- data/lib/starter_web/pages/public/previewer/mdi_icons_preview.adoc +2 -1
- data/lib/starter_web/pages/public/previewer/rouge.adoc +4 -2
- data/lib/starter_web/pages/public/previewer/twitter_emoji_preview.adoc +2 -1
- data/lib/starter_web/pages/public/test_pages/breadcrumbs_tester.adoc +62 -0
- data/lib/starter_web/pages/public/test_pages/deck_of_posts.adoc +3 -0
- data/lib/starter_web/pages/public/test_pages/floating_actions_button.adoc +523 -0
- data/lib/starter_web/pages/public/test_pages/floating_ad.adoc +1 -0
- data/lib/starter_web/pages/public/test_pages/floating_div.adoc +1 -0
- data/lib/starter_web/pages/public/test_pages/lunr_tester.adoc +89 -0
- data/lib/starter_web/pages/public/test_pages/nav_pagination_tester.adoc +1 -0
- data/lib/starter_web/pages/public/test_pages/page_attribute_tester.adoc +1 -0
- data/lib/starter_web/pages/public/test_pages/responsive_images.adoc +3 -2
- data/lib/starter_web/pages/public/test_pages/responsive_tables.adoc +1 -0
- data/lib/starter_web/pages/public/test_pages/toccer_tester.adoc +2245 -0
- data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
- data/lib/starter_web/utilsrv/package.json +1 -1
- metadata +137 -29
- data/assets/data/search.json +0 -165
- data/assets/data/ssm.html +0 -242
- data/assets/themes/j1/adapter/js/back2top.js +0 -231
- data/assets/themes/j1/modules/jekyllSearch/js/simple-jekyll-search.js +0 -468
- data/assets/themes/j1/modules/jekyllSearch/js/simple-jekyll-search.min.js +0 -6
- data/assets/themes/j1/modules/tocbot/css/theme/uno.css +0 -95
- data/assets/themes/j1/modules/tocbot/css/theme/uno.min.css +0 -15
- data/assets/themes/j1/modules/tocbot/css/tocbot.css +0 -75
- data/assets/themes/j1/modules/tocbot/css/tocbot.min.css +0 -19
- data/assets/themes/j1/modules/tocbot/js/tocbot.js +0 -19
- data/assets/themes/j1/modules/tocbot/js/tocbot.min.js +0 -19
- data/lib/starter_web/_data/modules/defaults/back2top.yml +0 -146
- data/lib/starter_web/_data/modules/defaults/stickybits.yml +0 -36
- data/lib/starter_web/_data/modules/ssm.yml +0 -142
@@ -0,0 +1,237 @@
|
|
1
|
+
---
|
2
|
+
title: Lunr
|
3
|
+
tagline: full index search
|
4
|
+
description: >
|
5
|
+
Learn the search query language used by Lunr. The DSL used by Lunr
|
6
|
+
is quite close to Solr to support a powerful search experience
|
7
|
+
for better result. Using search expressions with wildcards, conditions
|
8
|
+
like and|or and fuzzy search algorithms are supported.
|
9
|
+
|
10
|
+
tags: [ Page, Roundtrip ]
|
11
|
+
index: [ Template, Roundtrip, Images ]
|
12
|
+
categories: [ pages ]
|
13
|
+
|
14
|
+
toc: true
|
15
|
+
scrollbar: false
|
16
|
+
date: 2020-11-08 12:00:00
|
17
|
+
|
18
|
+
permalink: /pages/public/learn/roundtrip/lunr/
|
19
|
+
regenerate: true
|
20
|
+
|
21
|
+
resources: [ lunr, rouge ]
|
22
|
+
resource_options:
|
23
|
+
- attic:
|
24
|
+
padding_top: 400
|
25
|
+
padding_bottom: 50
|
26
|
+
opacity: 0.5
|
27
|
+
slides:
|
28
|
+
- url: /assets/images/modules/attics/banner/lunr-banner-1280x800.jpg
|
29
|
+
alt: Lunr
|
30
|
+
---
|
31
|
+
|
32
|
+
// Page Initializer
|
33
|
+
// =============================================================================
|
34
|
+
// Enable the Liquid Preprocessor
|
35
|
+
:page-liquid:
|
36
|
+
|
37
|
+
// Set page (local) attributes here
|
38
|
+
// -----------------------------------------------------------------------------
|
39
|
+
// :page--attr: <attr-value>
|
40
|
+
|
41
|
+
// Load Liquid procedures
|
42
|
+
// -----------------------------------------------------------------------------
|
43
|
+
{% capture load_attributes %}themes/{{site.template.name}}/procedures/global/attributes_loader.proc{%endcapture%}
|
44
|
+
|
45
|
+
// Load page attributes
|
46
|
+
// -----------------------------------------------------------------------------
|
47
|
+
{% include {{load_attributes}} scope="all" %}
|
48
|
+
|
49
|
+
|
50
|
+
// Page content
|
51
|
+
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
52
|
+
|
53
|
+
== Searching
|
54
|
+
|
55
|
+
After you have built an index of your documents, the next step is to
|
56
|
+
perform a search.
|
57
|
+
|
58
|
+
The simplest way to start is to pass the text on which you want to
|
59
|
+
search into the search method:
|
60
|
+
|
61
|
+
[source, javascript]
|
62
|
+
----
|
63
|
+
idx.search('foo')
|
64
|
+
----
|
65
|
+
|
66
|
+
The above will return details of all documents that match the term
|
67
|
+
“foo”. Although it looks like a string, the `search` method parses the
|
68
|
+
string into a search query. This supports special syntax for defining
|
69
|
+
more complex queries.
|
70
|
+
|
71
|
+
Searches for multiple terms are also supported. If a document matches
|
72
|
+
_at least_ one of the search terms, it will show in the results. The
|
73
|
+
search terms are combined with OR.
|
74
|
+
|
75
|
+
[source, javascript]
|
76
|
+
----
|
77
|
+
idx.search('foo bar')
|
78
|
+
----
|
79
|
+
|
80
|
+
The above example will match documents that contain either “foo” or
|
81
|
+
“bar”. Documents that contain _both_ will score more highly and will be
|
82
|
+
returned first.
|
83
|
+
|
84
|
+
=== Scoring
|
85
|
+
|
86
|
+
The score (also known as relevance) of a document is calculated by the
|
87
|
+
https://en.wikipedia.org/wiki/Okapi_BM25[BM25] algorithm, along with
|
88
|
+
other factors such as link:#Boosts[boosts]. You don’t need to worry too
|
89
|
+
much about the details of how BM25 works; to summarize, the more a
|
90
|
+
search term occurs in a single document, the more that term will
|
91
|
+
increase that document’s score, but the more a search term occurs in the
|
92
|
+
overall _collection_ of documents, the less that term will increase a
|
93
|
+
document’s score.
|
94
|
+
|
95
|
+
For example, let’s say you’re indexing a collection of documents about
|
96
|
+
JavaScript testing libraries. The terms “JavaScript”, “library”, and
|
97
|
+
“test” may occur very frequently throughout the entire collection, so
|
98
|
+
finding a document that mentions one of these terms isn’t very
|
99
|
+
significant. However, if you’re searching for “integration test”, only
|
100
|
+
three documents in the collection have the term “integration” in them,
|
101
|
+
and _one_ of them mentions “integration” many times, that will bring the
|
102
|
+
score for that one document higher up.
|
103
|
+
|
104
|
+
=== Wildcards
|
105
|
+
|
106
|
+
Lunr supports wildcards when performing searches. A wildcard is
|
107
|
+
represented as an asterisk (`*`) and can appear anywhere in a search
|
108
|
+
term. For example, the following will match all documents with words
|
109
|
+
beginning with “foo”:
|
110
|
+
|
111
|
+
[source, javascript]
|
112
|
+
----
|
113
|
+
idx.search('foo*')
|
114
|
+
----
|
115
|
+
|
116
|
+
This will match all documents that end with ‘oo’:
|
117
|
+
|
118
|
+
[source, javascript]
|
119
|
+
----
|
120
|
+
idx.search('*oo')
|
121
|
+
----
|
122
|
+
|
123
|
+
Leading wildcards, as in the above example, should be used sparingly.
|
124
|
+
They can have a negative impact on the performance of a search,
|
125
|
+
especially in large indexes.
|
126
|
+
|
127
|
+
Finally, a wildcard can be in the middle of a term. The following will
|
128
|
+
match any documents that contain a term that begins with “f” and ends in
|
129
|
+
“o”:
|
130
|
+
|
131
|
+
[source, javascript]
|
132
|
+
----
|
133
|
+
idx.search('f*o')
|
134
|
+
----
|
135
|
+
|
136
|
+
It is also worth noting that, when a search term contains a wildcard, no
|
137
|
+
stemming is performed on the search term.
|
138
|
+
|
139
|
+
=== Fields
|
140
|
+
|
141
|
+
By default, Lunr will search all fields in a document for the query
|
142
|
+
term, and it is possible to restrict a term to a specific field. The
|
143
|
+
following example searches for the term “foo” in the field title:
|
144
|
+
|
145
|
+
[source, javascript]
|
146
|
+
----
|
147
|
+
idx.search('title:foo')
|
148
|
+
----
|
149
|
+
|
150
|
+
The search term is prefixed with the name of the field, followed by a
|
151
|
+
colon (`:`). The field _must_ be one of the fields defined when building
|
152
|
+
the index. Unrecognised fields will lead to an error.
|
153
|
+
|
154
|
+
Field-based searches can be combined with all other term modifiers and
|
155
|
+
wildcards, as well as other terms. For example, to search for words
|
156
|
+
beginning with “foo” in the title or with “bar” in any field the
|
157
|
+
following query can be used:
|
158
|
+
|
159
|
+
[source, javascript]
|
160
|
+
----
|
161
|
+
idx.search('title:foo* bar')
|
162
|
+
----
|
163
|
+
|
164
|
+
=== Boosts
|
165
|
+
|
166
|
+
In multi-term searches, a single term may be important than others. For
|
167
|
+
these cases Lunr supports term level boosts. Any document that matches a
|
168
|
+
boosted term will get a higher relevance score, and appear higher up in
|
169
|
+
the results. A boost is applied by appending a caret (`^`) and then a
|
170
|
+
positive integer to a term.
|
171
|
+
|
172
|
+
[source, javascript]
|
173
|
+
----
|
174
|
+
idx.search('foo^10 bar')
|
175
|
+
----
|
176
|
+
|
177
|
+
The above example weights the term “foo” 10 times higher than the term
|
178
|
+
“bar”. The boost value can be any positive integer, and different terms
|
179
|
+
can have different boosts:
|
180
|
+
|
181
|
+
[source, javascript]
|
182
|
+
----
|
183
|
+
idx.search('foo^10 bar^5 baz')
|
184
|
+
----
|
185
|
+
|
186
|
+
=== Fuzzy Matches
|
187
|
+
|
188
|
+
Lunr supports fuzzy matching search terms in documents, which can be
|
189
|
+
helpful if the spelling of a term is unclear, or to increase the number
|
190
|
+
of search results that are returned. The amount of fuzziness to allow
|
191
|
+
when searching can also be controlled. Fuzziness is applied by appending
|
192
|
+
a tilde (`~`) and then a positive integer to a term. The following
|
193
|
+
search matches all documents that have a word within 1 edit distance of
|
194
|
+
“foo”:
|
195
|
+
|
196
|
+
[source, javascript]
|
197
|
+
----
|
198
|
+
idx.search('foo~1')
|
199
|
+
----
|
200
|
+
|
201
|
+
An edit distance of 1 allows words to match if either adding, removing,
|
202
|
+
changing or transposing a character in the word would lead to a match.
|
203
|
+
For example “boo” requires a single edit (replacing “f” with “b”) and
|
204
|
+
would match, but “boot” would not as it also requires an additional “t”
|
205
|
+
at the end.
|
206
|
+
|
207
|
+
=== Term Presence
|
208
|
+
|
209
|
+
By default, Lunr combines multiple terms together in a search with a
|
210
|
+
logical OR. That is, a search for “foo bar” will match documents that
|
211
|
+
contain “foo” or contain “bar” or contain both. This behaviour is
|
212
|
+
controllable at the term level, i.e. the presence of each term in
|
213
|
+
matching documents can be specified. By default each term is optional in
|
214
|
+
a matching document, though a document must have at least one matching
|
215
|
+
term. It is possible to specify that a term must be present in matching
|
216
|
+
documents, or that it must be absent in matching documents.
|
217
|
+
|
218
|
+
To indicate that a term must be present in matching documents the term
|
219
|
+
should be prefixed with a plus (`+`) and to indicate that a term must be
|
220
|
+
absent the term should be prefixed with a minus (`-`). Without either
|
221
|
+
prefix the term’s presence in matching documents is optional.
|
222
|
+
|
223
|
+
The below example searches for documents that must contain “foo”, might
|
224
|
+
contain “bar” and must not contain “baz”:
|
225
|
+
|
226
|
+
[source, javascript]
|
227
|
+
----
|
228
|
+
idx.search("+foo bar -baz")
|
229
|
+
----
|
230
|
+
|
231
|
+
To simulate a logical AND search of “foo AND bar” mark both terms as
|
232
|
+
required:
|
233
|
+
|
234
|
+
[source, javascript]
|
235
|
+
----
|
236
|
+
idx.search("+foo +bar")
|
237
|
+
----
|
@@ -0,0 +1,302 @@
|
|
1
|
+
---
|
2
|
+
title: Floating Action Menu
|
3
|
+
tagline: using fam buttons
|
4
|
+
description: using fam buttons
|
5
|
+
|
6
|
+
tags: [ Module, FAM ]
|
7
|
+
index: [ floating, button, menu, usage ]
|
8
|
+
categories: [ pages ]
|
9
|
+
|
10
|
+
toc: true
|
11
|
+
advertising: false
|
12
|
+
scrollbar: false
|
13
|
+
date: 2020-11-08 12:00:00
|
14
|
+
|
15
|
+
image: /assets/images/modules/attics/cookies-1920x1200-bw.jpg
|
16
|
+
|
17
|
+
permalink: /pages/public/learn/roundtrip/fam/
|
18
|
+
regenerate: true
|
19
|
+
|
20
|
+
resources: [ lightbox, rouge, clipboard, fam ]
|
21
|
+
resource_options:
|
22
|
+
- toccer:
|
23
|
+
collapseDepth: 3
|
24
|
+
- attic:
|
25
|
+
padding_top: 400
|
26
|
+
padding_bottom: 50
|
27
|
+
opacity: 0.5
|
28
|
+
slides:
|
29
|
+
- url: /assets/images/modules/attics/cookies-1920x1200-bw.jpg
|
30
|
+
alt: jekyll.1200x600-bw.jpg
|
31
|
+
---
|
32
|
+
|
33
|
+
// Page Initializer
|
34
|
+
// =============================================================================
|
35
|
+
// Enable the Liquid Preprocessor
|
36
|
+
:page-liquid:
|
37
|
+
|
38
|
+
// Set page (local) attributes here
|
39
|
+
// -----------------------------------------------------------------------------
|
40
|
+
// :page--attr: <attr-value>
|
41
|
+
// :debug:
|
42
|
+
|
43
|
+
// Load Liquid procedures
|
44
|
+
// -----------------------------------------------------------------------------
|
45
|
+
{% capture load_attributes %}themes/{{site.template.name}}/procedures/global/attributes_loader.proc{%endcapture%}
|
46
|
+
|
47
|
+
// Load page attributes
|
48
|
+
// -----------------------------------------------------------------------------
|
49
|
+
{% include {{load_attributes}} scope="none" %}
|
50
|
+
|
51
|
+
|
52
|
+
// Page content
|
53
|
+
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
54
|
+
|
55
|
+
ifdef::debug[]
|
56
|
+
.Bratze
|
57
|
+
[cols=",", options="header", ]
|
58
|
+
|===============================================================================
|
59
|
+
|Bratze |Bru
|
60
|
+
|
61
|
+
|Fick
|
62
|
+
|dich
|
63
|
+
|
64
|
+
|===============================================================================
|
65
|
+
endif::[]
|
66
|
+
|
67
|
+
== Floating Action Menu (FAM)
|
68
|
+
|
69
|
+
If you want a fixed floating action button, you can add multiple actions
|
70
|
+
that will appear on hover. Our demo is in the bottom righthand corner of
|
71
|
+
the page.
|
72
|
+
|
73
|
+
[source, html]
|
74
|
+
----
|
75
|
+
<div class="fam-btn">
|
76
|
+
<a class="btn-fab-floating btn-large red">
|
77
|
+
<i class="large material-icons">mode_edit</i>
|
78
|
+
</a>
|
79
|
+
<ul>
|
80
|
+
<li><a class="btn-fab-floating red"><i class="material-icons">insert_chart</i></a></li>
|
81
|
+
<li><a class="btn-fab-floating yellow darken-1"><i class="material-icons">format_quote</i></a></li>
|
82
|
+
<li><a class="btn-fab-floating green"><i class="material-icons">publish</i></a></li>
|
83
|
+
<li><a class="btn-fab-floating blue"><i class="material-icons">attach_file</i></a></li>
|
84
|
+
</ul>
|
85
|
+
</div>
|
86
|
+
----
|
87
|
+
|
88
|
+
== Initialization
|
89
|
+
|
90
|
+
[source, javascript]
|
91
|
+
----
|
92
|
+
document.addEventListener('DOMContentLoaded', function() {
|
93
|
+
var elems = document.querySelectorAll('.fam-btn');
|
94
|
+
var instances = j1.fam.init(elems, options);
|
95
|
+
});
|
96
|
+
----
|
97
|
+
|
98
|
+
or using *jQuery*
|
99
|
+
|
100
|
+
[source, javascript]
|
101
|
+
----
|
102
|
+
$(document).ready(function(){
|
103
|
+
$('.fam-btn').j1.fam();
|
104
|
+
});
|
105
|
+
----
|
106
|
+
|
107
|
+
=== Options
|
108
|
+
|
109
|
+
[cols=",,,", options="header", ]
|
110
|
+
|===============================================================================
|
111
|
+
|Name |Type |Default |Description
|
112
|
+
|
113
|
+
|`direction`
|
114
|
+
|String
|
115
|
+
|`top`
|
116
|
+
|Direction FAM menu opens. Can be `top`, `right`, `buttom`, or `left`
|
117
|
+
|
118
|
+
|`hoverEnabled`
|
119
|
+
|Boolean
|
120
|
+
|`true`
|
121
|
+
|If `true`, FAM menu will open on hover instead of click
|
122
|
+
|
123
|
+
|`toolbarEnabled`
|
124
|
+
|Boolean
|
125
|
+
|`false`
|
126
|
+
|Enable transit the FAM into a toolbar on click
|
127
|
+
|
128
|
+
|===============================================================================
|
129
|
+
|
130
|
+
== Methods
|
131
|
+
|
132
|
+
Because jQuery is no longer a dependency, all the methods are called on
|
133
|
+
the plugin instance. You can get the plugin instance like this:
|
134
|
+
|
135
|
+
[source, javascript]
|
136
|
+
----
|
137
|
+
var instance = j1.fam.getInstance(elem);
|
138
|
+
----
|
139
|
+
|
140
|
+
or using *jQuery*
|
141
|
+
|
142
|
+
[source, javascript]
|
143
|
+
----
|
144
|
+
$('.fam-btn').fam('methodName');
|
145
|
+
$('.fam-btn').fam('methodName', paramName);
|
146
|
+
----
|
147
|
+
|
148
|
+
WARNING: You can still use the old jQuery plugin method calls.
|
149
|
+
But you won't be able to access instance properties.
|
150
|
+
|
151
|
+
=== `open()`
|
152
|
+
|
153
|
+
Opens a FAM.
|
154
|
+
|
155
|
+
[source, javascript]
|
156
|
+
----
|
157
|
+
instance.open();
|
158
|
+
----
|
159
|
+
|
160
|
+
=== `close()`
|
161
|
+
|
162
|
+
Closes a FAM.
|
163
|
+
|
164
|
+
[source, javascript]
|
165
|
+
----
|
166
|
+
instance.close();
|
167
|
+
----
|
168
|
+
|
169
|
+
=== `destroy()`
|
170
|
+
|
171
|
+
Destroy plugin instance and teardown
|
172
|
+
|
173
|
+
[source, javascript]
|
174
|
+
----
|
175
|
+
instance.destroy();
|
176
|
+
----
|
177
|
+
|
178
|
+
=== Properties
|
179
|
+
|
180
|
+
[cols=",,", options="header", ]
|
181
|
+
|===============================================================================
|
182
|
+
|Name |Type |Description
|
183
|
+
|
184
|
+
|`el`
|
185
|
+
|Element
|
186
|
+
|The DOM element the plugin was initialized with.
|
187
|
+
|
188
|
+
|`options`
|
189
|
+
|Object
|
190
|
+
|The options the instance was initialized with.
|
191
|
+
|
192
|
+
|`isOpen`
|
193
|
+
|Boolean
|
194
|
+
|Describes open/close state of the FAM.
|
195
|
+
|
196
|
+
|===============================================================================
|
197
|
+
|
198
|
+
== Horizontal FAM
|
199
|
+
|
200
|
+
Creating a horizontal FAM is easy! Just set the direction option.
|
201
|
+
|
202
|
+
[source, javascript]
|
203
|
+
----
|
204
|
+
document.addEventListener('DOMContentLoaded', function() {
|
205
|
+
var elems = document.querySelectorAll('.fam-btn');
|
206
|
+
var instances = j1.fam.init(elems, {
|
207
|
+
direction: 'left'
|
208
|
+
});
|
209
|
+
});
|
210
|
+
----
|
211
|
+
|
212
|
+
== Click-only FAM
|
213
|
+
|
214
|
+
If you want to disable the hover behaviour, and instead toggle the FAM
|
215
|
+
menu when the user clicks on the large button (works great on mobile!),
|
216
|
+
just add the `click-to-toggle` class to the FAM.
|
217
|
+
|
218
|
+
[source, javascript]
|
219
|
+
----
|
220
|
+
document.addEventListener('DOMContentLoaded', function() {
|
221
|
+
var elems = document.querySelectorAll('.fam-btn');
|
222
|
+
var instances = j1.fam.init(elems, {
|
223
|
+
direction: 'left',
|
224
|
+
hoverEnabled: false
|
225
|
+
});
|
226
|
+
});
|
227
|
+
----
|
228
|
+
|
229
|
+
/////
|
230
|
+
== FAM to Toolbar
|
231
|
+
|
232
|
+
Instead of displaying individual button options, you can transition your
|
233
|
+
FAM into a toolbar on click. Just add the `toolbar` class to the FAM.
|
234
|
+
|
235
|
+
[source, javascript]
|
236
|
+
----
|
237
|
+
document.addEventListener('DOMContentLoaded', function() {
|
238
|
+
var elems = document.querySelectorAll('.fam-btn');
|
239
|
+
var instances = j1.fam.init(elems, {
|
240
|
+
toolbarEnabled: true
|
241
|
+
});
|
242
|
+
});
|
243
|
+
----
|
244
|
+
|
245
|
+
Or using jQuery
|
246
|
+
|
247
|
+
[source, javascript]
|
248
|
+
----
|
249
|
+
$('.fam-btn').fam({
|
250
|
+
toolbarEnabled: true
|
251
|
+
});
|
252
|
+
----
|
253
|
+
/////
|
254
|
+
|
255
|
+
/////
|
256
|
+
++++
|
257
|
+
<div class="fam-btn">
|
258
|
+
<a id="page_ctrl_button" class="btn-fab-floating btn-large btn-md-red raised-z5"><i class="mdi mdi-chevron-down"></i></a>
|
259
|
+
<ul id="page_ctrl_items">
|
260
|
+
<li><a id="fam_reload_page" class="btn-fab-floating btn-md-red raised-z5"><i class="mdi mdi-reload"></i></a></li>
|
261
|
+
<li><a id="open_mmenu_toc" class="btn-fab-floating btn-md-blue raised-z5"><i class="mdi mdi-wrap"></i></a></li>
|
262
|
+
<li><a id="fam_scroll_to_top" class="btn-fab-floating btn-md-green raised-z5"><i class="mdi mdi-step-backward-2 mdi-rotate-90"></i></a></li>
|
263
|
+
<li><a id="fam_next_section" class="btn-fab-floating btn-md-green raised-z5"><i class="mdi mdi-step-forward mdi-rotate-90"></i></a></li>
|
264
|
+
<li><a id="fam_previous_section" class="btn-fab-floating btn-md-green raised-z5"><i class="mdi mdi-step-backward mdi-rotate-90"></i></a></li>
|
265
|
+
<!--
|
266
|
+
<li><a id="ssm_scroll_to_bottom" class="btn-fab-floating btn-md-green raised-z5"><i class="mdi mdi-step-forward-2 mdi-rotate-90"></i></a></li>
|
267
|
+
-->
|
268
|
+
</ul>
|
269
|
+
</div>
|
270
|
+
++++
|
271
|
+
|
272
|
+
|
273
|
+
++++
|
274
|
+
<script>
|
275
|
+
$(document).ready(function() {
|
276
|
+
var FloatingActionOptions = { direction: 'top',
|
277
|
+
hoverEnabled: true,
|
278
|
+
toolbarEnabled: false };
|
279
|
+
|
280
|
+
var elems = document.querySelectorAll('.fam-btn');
|
281
|
+
var instances = j1.fam.init(elems, FloatingActionOptions);
|
282
|
+
// var $instances = $('.fam-btn').j1.fam(FloatingActionOptions);
|
283
|
+
var $ActionButton = $('#page_ctrl_button');
|
284
|
+
|
285
|
+
if (FloatingActionOptions.hoverEnabled) {
|
286
|
+
$ActionButton.hover(
|
287
|
+
function() {
|
288
|
+
$('.mdi').toggleClass('mdi-chevron-down mdi-chevron-up');
|
289
|
+
}, function() {
|
290
|
+
$('.mdi').toggleClass('mdi-chevron-down mdi-chevron-up');
|
291
|
+
}
|
292
|
+
);
|
293
|
+
} else {
|
294
|
+
$ActionButton.on('click', function (e) {
|
295
|
+
$('.mdi').toggleClass('mdi-chevron-down mdi-chevron-up');
|
296
|
+
});
|
297
|
+
}
|
298
|
+
|
299
|
+
});
|
300
|
+
</script>
|
301
|
+
++++
|
302
|
+
/////
|