MkDocs plugin to extend search functions
Project description
mkdocs-search-izsam
This MkDocs plugin enhances the native search functionality by:
- Enabling local search without CORS issues
- Indexing YAML metadata from Markdown files for improved search capabilities
Local Search Functionality
The plugin generates two JavaScript files—one for config and one for docs—which can be included in your theme as follows:
<script src="{{ 'search/search_config.js'|url }}"></script>
<script src="{{ 'search/search_docs.js'|url }}"></script>
This approach eliminates CORS issues typically encountered with loadJSON and the native worker.js model.
Important
To leverage these JavaScript files and bypass the native search worker, set the search_index_only option to true in your theme configuration:
theme:
name: null
custom_dir: your_custom_theme
include_search_page: true
search_index_only: true
Search Metadata YAML Support
The plugin indexes YAML metadata defined in your Markdown files, making these fields searchable. To exclude specific metadata keys from the search index, add an exclude_meta_keys entry to your file's metadata, listing the keys to ignore. For example:
exclude_meta_keys:
- sections.type
- sections.data.link
Setup
Install the plugin using pip:
pip install mkdocs-izsam-search
Activate the plugin in mkdocs.yml:
plugins:
- izsam-search
It is possible to use same config options of the native search plugin:
- izsam-search:
lang: en
You can then implement search using your preferred JavaScript library (for example, lunr.js). For more details, see the MkDocs documentation on search and themes.
See Also
Change log
[0.1.9] - 2025-09-08
Added metadata YAML searchability
- Implemented functionality to index and search metadata defined in markdown YAML front matter
- Documented usage and configuration in README.md
[0.1.8] - 2021-11-10
Implementation of the main feature: build .js files to allow local search and avoid CORS problems
- Added necessary code in plugin.py
- Added instruction on README.md
[0.1.7] - 2021-11-10
Configuration error
- Configuration error: mkdocs_izsam_search.search_index.SearchIndex must be a subclass of mkdocs.plugins.BasePlugin. Changed search_index.py
[0.1.6] - 2021-11-10
Configuration error
- Configuration error: mkdocs_izsam_search.search_index.SearchIndex must be a subclass of mkdocs.plugins.BasePlugin. Changed entry_points in setup.py
[0.1.5] - 2021-11-10
Setup
- different syntax for setup()
[0.1.4] - 2021-11-10
Setup
- entry_points declaration in setup()
[0.1.3] - 2021-11-10
Debug on MANIFEST.in
- Modified
MANIFEST.inthere was an error causing import data issues
[0.1.2] - 2021-11-10
Edited
README.md
[0.0.1] - 2021-11-10
Added
HISTORY.md
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mkdocs_izsam_search-0.1.9.tar.gz.
File metadata
- Download URL: mkdocs_izsam_search-0.1.9.tar.gz
- Upload date:
- Size: 92.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e8a069e3efda47146578020c71aab356317ab45c053924d515de5e4030fc15c
|
|
| MD5 |
0c7338a2cbeb9bbe0e790b77d033a166
|
|
| BLAKE2b-256 |
7467792115bc49a24f0f3f87fc6e0761412fa3144b915ba14bea38067ca2c832
|
File details
Details for the file mkdocs_izsam_search-0.1.9-py3-none-any.whl.
File metadata
- Download URL: mkdocs_izsam_search-0.1.9-py3-none-any.whl
- Upload date:
- Size: 122.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
98778ec05dc4892997ccf23ae22259bd4ce582a9ea4c8d3a85f45a5afa26fdff
|
|
| MD5 |
d371deb1dbdf525886316c0809c10545
|
|
| BLAKE2b-256 |
697b9d4a91278f3f744719b1f508fafe91fa7282f33a830e75953febe39cfd3b
|