diff --git a/.gitignore b/.gitignore index 25e8803518f9358fad70c0e8cde15265d058c6b2..b447a12d605ace944d4b5f46e384a2513e8af4f1 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,3 @@ _site Gemfile.lock node_modules -.jekyll-metadata diff --git a/_config.yml b/_config.yml index d722e9e27bd580b95704ba551083f2c124111fcf..9176a8f9436c334504966f99429b380f9ab303a4 100644 --- a/_config.yml +++ b/_config.yml @@ -27,6 +27,11 @@ exclude: ["node_modules/", "*.gemspec", "*.gem", "Gemfile", "Gemfile.lock", "pac # Enable or disable the site search search_enabled: true +# Set the search token separator +search_tokenizer_separator: /[\s\-/]+/ +# For hyphenated-word search: +# search_tokenizer_separator: /[\s/]+/ + # Enable or disable heading anchors heading_anchors: true diff --git a/_includes/nav.html b/_includes/nav.html index fdcf1e13267b8276eec7b9e8b4968ac2856b93b4..d561a42a70b3e473f7ba41283965751423b7917b 100644 --- a/_includes/nav.html +++ b/_includes/nav.html @@ -10,7 +10,6 @@ {%- endif -%} <a href="{{ node.url | absolute_url }}" class="navigation-list-link{% if page.url == node.url %} active{% endif %}">{{ node.title }}</a> {%- if node.has_children -%} - {%- if page.url == node.url or page.parent == node.title or page.grand_parent == node.title -%} {%- assign children_list = site.html_pages | where: "parent", node.title | sort:"nav_order" -%} <ul class="navigation-list-child-list "> {%- for child in children_list -%} @@ -20,7 +19,6 @@ {%- endif -%} <a href="{{ child.url | absolute_url }}" class="navigation-list-link{% if page.url == child.url %} active{% endif %}">{{ child.title }}</a> {%- if child.has_children -%} - {%- if page.url == child.url or page.parent == child.title -%} {%- assign grand_children_list = site.html_pages | where: "parent", child.title | sort:"nav_order" -%} <ul class="navigation-list-child-list"> {%- for grand_child in grand_children_list -%} @@ -30,12 +28,10 @@ {%- endfor -%} </ul> {%- endif -%} - {%- endif -%} </li> {%- endfor -%} </ul> {%- endif -%} - {%- endif -%} </li> {%- endif -%} {%- endunless -%} diff --git a/assets/js/just-the-docs.js b/assets/js/just-the-docs.js index aadbf82670d9386ccf8315378d4be7265bb87ff6..02161816de8452ca4cbc88ee7d9de0307f2672ef 100644 --- a/assets/js/just-the-docs.js +++ b/assets/js/just-the-docs.js @@ -52,8 +52,13 @@ function initSearch() { if (request.status >= 200 && request.status < 400) { // Success! var data = JSON.parse(request.responseText); - + + {% if site.search_tokenizer_separator != nil %} + lunr.tokenizer.separator = {{ site.search_tokenizer_separator }} + {% else %} lunr.tokenizer.separator = /[\s\-/]+/ + {% end %} + var index = lunr(function () { this.ref('id'); this.field('title', { boost: 200 }); diff --git a/docs/configuration.md b/docs/configuration.md index 03e7e5213e31e7bd0a8cf88b1e5e4aa059f856bf..872e1701f5d7b2d46bddfefef24346b8edc24f4c 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -35,6 +35,10 @@ logo: "/assets/images/just-the-docs.png" # Enable or disable the site search # Supports true (default) or false search_enabled: true + +# Enable support for hyphenated search words: +search_tokenizer_separator: /[\s/]+/ + ``` ## Aux links diff --git a/docs/search.md b/docs/search.md index 134e3997bccdc02afe30e101dad3ce0804fe124c..74b398f3c57cd96365d3bb77b739d12d4249fbab 100644 --- a/docs/search.md +++ b/docs/search.md @@ -59,6 +59,15 @@ In your site's `_config.yml`, enable search: search_enabled: true ``` +The default is for hyphens to separate tokens in search terms: +`gem-based` is equivalent to `gem based`, matching either word. +To allow search for hyphenated words: + +```yaml +# Set the search token separator +search_tokenizer_separator: /[\s/]+/ +``` + ## Hiding pages from search Sometimes you might have a page that you don't want to be indexed for the search nor to show up in search results, e.g, a 404 page. To exclude a page from search, add the `search_exclude: true` parameter to the page's YAML front matter: