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}