HugoBlog

notebook-searcher — Hugo Blog Template

By cyrusn

A Hugo-based blog theme that provides search by title, tags, and filename on list pages, with built-in keyboard navigation, a scroll-tracking table of contents, and several content plugins.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

2 previews
Desktop homepage1 / 2
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 2

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-11View source

What stands out

A quick read of the recorded project description.

01

List-page search: supports searching titles, tags, and filenames, as well as wildcards, title:/tags: qualifiers, and fuzzy search

02

Full keyboard navigation, with Tips provided on the example site

03

Scroll-tracking table of contents enabled by default, can be disabled with toc: false in front matter

04

Built-in Katex, abcjs, and mermaid plugin shortcodes, which must be explicitly enabled in front matter

05

Articles under /slide are loaded as RemarkJS slides

Template Details

Notebook Searcher is a blog theme for Hugo, hosted at cyrusn/notebook-searcher and licensed under MIT. The theme is positioned to add site search to note-style blogs: on the article list page, you can type keywords directly, and the search covers titles, tags, and filenames, with support for wildcards, title: and tags: field qualifiers, and fuzzy search.

Beyond search, the theme provides full keyboard navigation (the example site includes Tips explaining how to navigate), a scroll-tracking table of contents enabled by default (which can be disabled by setting toc to false in front matter), and three plugins—Katex, abcjs, and mermaid—plus RemarkJS slide support. Plugins are used via shortcodes; articles must explicitly enable the corresponding plugin in front matter for the related dependencies to be added to the page; articles under the /slide path are loaded with RemarkJS.

The theme's third-party dependencies (jQuery, Bootstrap, Font Awesome, lunr, remark, katex, abcjs, mermaid) are stored as files in the static/ directory, with filenames that do not include version numbers. The README provides download commands for each dependency and the versions recorded at the time; updating dependencies requires re-running the commands and updating that record. The repository was last updated in 2018, and the example site is run with hugo serve -D --themesDir ../.. --source ./exampleSite.

HugoBlog

Is it right for your project?

Use Cases

  • Adding site search to a Hugo note or blog without relying on external services
  • Embedding mathematical formulas, sheet music, or flowcharts in articles
  • Writing content in Markdown and presenting it directly as web slides
  • Reading scenarios that require keyboard operation and a scroll-positioned table of contents

Suitable For

  • Blogs built with Hugo that want searchable list pages
  • Sites focused on notes and tutorials that need formula or diagram rendering
  • Developers who accept manually managing third-party dependency files under static/

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    Example site run command: hugo serve -D --themesDir ../.. --source ./exampleSite

  2. 2

    Dependency files are located in static/, filenames do not include version numbers; when updating, replace them using the wget commands in the README and update the recorded versions accordingly

  3. 3

    When using plugins such as Katex, abcjs, and mermaid, they must be explicitly enabled in the article front matter for the dependencies to be added to the page

  4. 4

    The table of contents is enabled by default; to disable it, set toc: false in front matter

  5. 5

    The repository was last updated in 2018, and dependency versions are old; before use, check compatibility with the current Hugo version

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version in the public repository under the MIT license; the free scope is the code of that version and does not mean that external services or third-party assets are free.

Must comply with when using

  • Free use, modification, commercial use, and distribution of this version's code are permitted.
  • When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
  • The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.

Additional costs & items to verify

  • Demo images, fonts, icons, and other third-party assets must be checked under their respective licenses and cannot be judged solely by the code's MIT license.
  • External services such as domains, hosting, databases, payments, or AI may incur separate charges.
  • When using plugins such as Katex, abcjs, and mermaid, the corresponding plugin must be explicitly enabled in the article front matter; otherwise the related dependencies will not be added to the page and the plugin will not work.
  • Only articles located under the /slide path are loaded as RemarkJS slides; articles in other paths will not enable that slide rendering.
  • The table of contents is enabled by default; to disable it, you must set toc: false in the article front matter.
  • Third-party dependencies are stored as files in the static/ directory and filenames do not include version numbers; they must be downloaded and updated manually and cannot be version-managed automatically via a package manager.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

The post must enable the plugin *explicitly* in front matter so the corresponding dependencies will be added to the page.

Original README

Posts in `/slide` will be loaded with RemarkJS.

Original README

TOC is enabled by default, set `toc` to `false` in front matter to disable it

Original README

Dependencies are placed in `static/`. Any versioning in file name is stripped.

Original README
https://github.com/cyrusn/notebook-searcher/blob/master/LICENSE.mdhttps://github.com/cyrusn/notebook-searcher/blob/master/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-11. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.

Project checks & description sources

Template Information

Source platforms
GitHub
Documentation and maintenance reference score
Partly documented · 65 / 100
Technologies
Hugo
Website type
Blog
How this score is calculated

Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.

What to verify for this project

Repository update recorded
2018-09-02
Screenshot last checked
2026-10-11

A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.

The catalog identifies Hugo as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.

Use a selection guide →

How this description was prepared

AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.

Review declaration: [email protected] · 2026-10-13

Inspect the recorded source material

SHA-256: 95937c2021e323dba1e94c568407201a75abf3f2bd25a73d35a63898a1c3bb82

2026-10-11T19:22:36.865Z

Source file / repository
# Notebook Searcher

Searcher theme for [hugo](https://github.com/gohugoio/hugo) blog.

## Run the example site

``` sh
# in `notebook-searcher/`
hugo serve -D --themesDir ../.. --source ./exampleSite
```

# Features

- search posts on list page
- full keyboard navigation  
  check `Tips` on example for navigation guide
- TOC with scroll spy  
  TOC is enabled by default, set `toc` to `false` in front matter to disable it
- Katex plugin
- abcjs plugin
- mermaid plugin
- RemarkJS slides  
  Posts in `/slide` will be loaded with RemarkJS. See `exampleSite/slide/` for details.

Several shortcodes are defined for the plugins. The post must enable the plugin *explicitly* in front matter so the corresponding dependencies will be added to the page.  
See `exampleSite/note/` for details.

## Search feature

```
# simply type the keyword to search words in title, tags or filename.
e.g. `abcjs`
# using wild card
e.g. `abc*`
# search keywords in title only
e.g. `title: abcjs`
# search keywords in tags only
e.g. `tags: music`
# fuzzy search
# please note that lunrjs will return error message if you just type `~`
# without number followed it
e.g. abcde~2
```

# Dependencies

Dependencies are placed in `static/`. Any versioning in file name is stripped.  
`current version` below denotes the version in `static/`.  
To update dependencies, execute the following command and update `current version`.

## jQuery

```sh
# current version v3.3.1
# jQuery for bootstrap (slim.min)
wget https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.slim.min.js -O static/js/jquery.slim.min.js
```

## Bootstrap

```sh
# current version v4.1.1
# update from [Quick Start · BootstrapCDN by StackPath](https://www.bootstrapcdn.com/)
wget https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.bundle.min.js -O static/js/bootstrap.bundle.min.js 

wget https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css -O static/css/bootstrap.min.css 

```

## Font Awesome

```sh
# current version v5.1.0
# [Getting Started | Font Awesome](https://fontawesome.com/how-to-use/on-the-web/setup/getting-started?using=svg-with-js)
wget https://use.fontawesome.com/releases/v5.1.0/js/all.js -O static/js/fontawesome-all.min.js 
```

## lunr

```sh
# current version v2.3.0
# [lunr.js - cdnjs.com - The best FOSS CDN for web related libraries to speed up your websites!](https://cdnjs.com/libraries/lunr.js/)
wget https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.0/lunr.min.js -O static/js/lunr.min.js 
```

## remark
```sh
# current version v0.14.0
# [Home · gnab/remark Wiki · GitHub](https://github.com/gnab/remark/wiki#getting-started)
wget https://remarkjs.com/downloads/remark-latest.min.js -O static/js/remark-latest.min.js 
```

## katex

```sh
# current version 0.10.0-beta
# update auto-renderer
# [GitHub - Khan/KaTeX: Fast math typesetting for the web.](https://github.com/Khan/KaTeX)
# [KaTeX/README.md at master · Khan/KaTeX · GitHub](https://github.com/Khan/KaTeX/blob/master/contrib/auto-render/README.md)
wget https://cdn.jsdelivr.net/npm/katex@latest/dist/katex.min.css -O static/css/katex.min.css
wget https://cdn.jsdelivr.net/npm/katex@latest/dist/katex.min.js -O static/js/katex.min.js
wget https://cdn.jsdelivr.net/npm/katex@latest/dist/contrib/auto-render.min.js -O static/js/auto-render.min.js
```

## abcjs

```sh
# currrent version 5.1.2
# update abcjs
# [paulrosen/abcjs: javascript for rendering abc music notation](https://github.com/paulrosen/abcjs)
wget https://raw.github.com/paulrosen/abcjs/master/bin/abcjs_basic_5.1.2-min.js -O static/js/abcjs_basic-min.js
```

## mermaid

```sh
# currrent version 7.1.2
# update mermaid
# [MermaidJS CDN](https://unpkg.com/[email protected]/dist/)
wget https://unpkg.com/[email protected]/dist/mermaid.min.js -O static/js/mermaid.min.js 
```
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.