Merge pull request #203 from pdmosses/search-config

Search config
This commit is contained in:
Patrick Marsceill 2019-09-09 16:00:11 -04:00 committed by GitHub
commit 850a8fe256
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 24 additions and 6 deletions

1
.gitignore vendored
View File

@ -4,4 +4,3 @@
_site
Gemfile.lock
node_modules
.jekyll-metadata

View File

@ -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

View File

@ -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 -%}

View File

@ -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 });

View File

@ -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

View File

@ -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: