Skip to content

Hugo theme component for implementing static site search using Fuse.js

License

Notifications You must be signed in to change notification settings

Robin-Wils/hugo-search-fuse-js

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

95 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hugo live search using Fuse.js and Mark.js

This is not a standalone theme. This is a Hugo theme component. To use it:

  1. Clone this repo to your-site/themes/hugo-search-fuse-js directory. Note that the theme name has to remain hugo-search-fuse-js.

  2. Add "hugo-search-fuse-js" as the leftmost element of the theme list variable in your site's or theme's config.toml. Example:

    theme = ["hugo-search-fuse-js", "my-theme"]
    
  3. Create content/search.md with layout parameter set to "search", and output parameter set to ["html", "json"]. The content or body of this search.md is not used by the search.html template which is part of this theme component.

    Here is an example search.md:

    +++
    title = "Search"
    layout = "search"
    outputs = ["html", "json"]
    [sitemap]
      priority = 0.1
    +++

Requirements

For this theme component to work as-is:

  1. Your main theme must be structured using base template and blocks, and
  2. The base template needs to define main and footer blocks (shown in that previous link).

If the main theme does not meet these requirements, you will need to edit the search.html partial to make search work. You can find it in layouts/_default/search.html in this component.

What if the main theme does not have baseof.html?

You have two options:

  1. Edit the search.html to make it fit your theme.
  2. Upgrade the theme to use the new "base template and blocks" approach.

What if the main theme has baseof.html, but doesn't have the main and/or footer blocks?

It's very easy to add those blocks without breaking your existing theme.

To add the main block, add this to your baseof.html at the appropriate place:

{{ block "main" . }}{{ end }}

And similarly add the below if the footer block is missing:

{{ block "footer" . }}{{ end }}

For an example, see the baseof.html snippet in Hugo docs.

Credits

About

Hugo theme component for implementing static site search using Fuse.js

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 58.2%
  • JavaScript 41.8%