diff --git a/_config.yml b/_config.yml index ba2b50db9660..1da3e705de83 100644 --- a/_config.yml +++ b/_config.yml @@ -62,6 +62,8 @@ atom_feed: search : # true, false (default) search_full_content : # true, false (default) search_provider : # lunr (default), algolia, google +lunr: + search_within_pages : # true, false (default) algolia: application_id : # YOUR_APPLICATION_ID index_name : # YOUR_INDEX_NAME diff --git a/assets/js/lunr/lunr-store.js b/assets/js/lunr/lunr-store.js index ff5e2e60db03..eda552ffcba8 100644 --- a/assets/js/lunr/lunr-store.js +++ b/assets/js/lunr/lunr-store.js @@ -46,4 +46,38 @@ var store = [ "teaser": {{ teaser | relative_url | jsonify }} }{%- unless forloop.last and l -%},{%- endunless -%} {%- endfor -%} - {%- endfor -%}] + {%- endfor -%}{%- if site.lunr.search_within_pages -%}, + {%- for doc in site.pages -%} + {%- if forloop.last -%} + {%- assign l = true -%} + {%- endif -%} + { + "title": {{ doc.title | jsonify }}, + "excerpt": + {%- if site.search_full_content == true -%} + {{ doc.content | newline_to_br | + replace:"
", " " | + replace:"

", " " | + replace:"", " " | + replace:"", " " | + replace:"", " " | + replace:"", " " | + replace:"", " " | + replace:"", " "| + strip_html | strip_newlines | jsonify }}, + {%- else -%} + {{ doc.content | newline_to_br | + replace:"
", " " | + replace:"

", " " | + replace:"", " " | + replace:"", " " | + replace:"", " " | + replace:"", " " | + replace:"", " " | + replace:"", " "| + strip_html | strip_newlines | truncatewords: 50 | jsonify }}, + {%- endif -%} + "url": {{ doc.url | absolute_url | jsonify }} + }{%- unless forloop.last and l -%},{%- endunless -%} + {%- endfor -%} +{%- endif -%}] diff --git a/docs/_docs/05-configuration.md b/docs/_docs/05-configuration.md index 5d7a8e273c2c..e56a402b3376 100644 --- a/docs/_docs/05-configuration.md +++ b/docs/_docs/05-configuration.md @@ -618,6 +618,13 @@ To enable site-wide search add `search: true` to your `_config.yml`. The default search uses [**Lunr**](https://lunrjs.com/) to build a search index of all post and your documents in collections. This method is 100% compatible with sites hosted on GitHub Pages. +To have it index all pages, update `lunr` in `_config.yml` like so: + +```yaml +lunr: + search_within_pages: true +``` + **Note:** Only the first 50 words of a post or page's body content is added to the Lunr search index. Setting `search_full_content` to `true` in your `_config.yml` will override this and could impact page load performance. {: .notice--warning}