notes/docs/search.md

1.4 KiB

layout title nav_order
default Search 6

Search

Just the docs uses lunr.js to add a client-side search interface powered by a JSON index that Jekyll generates. All search results are shown in an auto-complete style interface (there is no search results page). By default, all generated html pages are indexed using the following data points:

  • Page title
  • Page content
  • Page URL

Before you can use search, you must initialize the feature by running this rake command that comes with the just-the-docs

$ bundle exec just-the-docs rake search:init

This command creates the search-data.json file that Jekyll uses to create your search index. Alternatively, you can create the file manually in the root of your Jekyll site with this content:

---
---
{
  {% for page in site.html_pages %}"{{ forloop.index0 }}": {
    "id": "{{ forloop.index0 }}",
    "title": "{{ page.title | xml_escape }}",
    "content": "{{ page.content | markdownify | strip_html | xml_escape | remove: 'Table of contents' | remove: page.title | strip_newlines | replace: '\', ' '}}",
    "url": "{{ page.url | xml_escape }}"
  }{% if forloop.last %}{% else %},
  {% endif %}{% endfor %}
}{% endraw %}

You can modify this by modifying the forloop in search-data.json and the javascript in just-the-docs.js on line 30.