Material Design theme for MkDocs with built-in plugins for blogs, search, social cards, and privacy compliance
—
Advanced search functionality providing instant client-side search across documentation with language support, search highlighting, suggestions, and configurable search pipeline. The search plugin creates a searchable index for fast, responsive documentation search.
Core search configuration that enables full-text search functionality.
plugins:
- material/search:
enabled: true # Enable search plugin (default: true)
lang: en # Search language (default: en)
separator: '[\s\-\.]+' # Word separator patternMulti-language search support with language-specific stemming and stop words.
plugins:
- material/search:
lang:
- en # Single language
- de
- fr
# Or single language
lang: enSupported Languages: ar, da, de, du, en, es, fi, fr, hu, it, ja, no, pt, ro, ru, sv, th, tr, zh
Customizable text processing pipeline for search indexing and query processing.
plugins:
- material/search:
pipeline:
- stemmer # Word stemming
- stopWordFilter # Remove common words
- trimmer # Trim whitespacePipeline Options:
stemmer: Reduces words to root formstopWordFilter: Removes common stop wordstrimmer: Trims leading/trailing whitespaceFine-tuned search behavior including Chinese language support and content processing.
plugins:
- material/search:
# Chinese language support
jieba_dict: dict.txt # Chinese word segmentation dictionary
jieba_dict_user: user_dict.txt # User-defined dictionaryNote: Options like indexing, min_search_length, and prebuild_index are deprecated and no longer supported.
plugins:
- material/searchplugins:
- material/search:
lang:
- en
- de
- ja
separator: '[\s\-\.\u3000]+' # Include Japanese separatorplugins:
- material/search:
lang: en
pipeline:
- stemmer
- stopWordFilter
- trimmerplugins:
- material/search:
lang: zh
jieba_dict: jieba_dict.txt
jieba_dict_user: user_dict.txt
separator: '[\s\u3000]+'plugins:
- material/search:
lang: en
pipeline:
- trimmer
- stopWordFilterThe search plugin integrates with theme features for enhanced search experience.
theme:
name: material
features:
- search.highlight # Highlight search terms in results
- search.share # Share search results via URL
- search.suggest # Show search suggestionsDefault keyboard shortcuts for search functionality:
F or /: Focus search inputEscape: Clear searchEnter: Navigate to first resultArrow keys: Navigate resultsThe plugin generates a searchable index with the following structure:
{
"config": {
"lang": ["en"],
"separator": "[\\s\\-\\.]+"
},
"docs": [
{
"location": "path/to/page/",
"title": "Page Title",
"text": "Page content..."
}
]
}class SearchPlugin(BasePlugin[SearchConfig]):
"""Search plugin for creating searchable documentation index."""
def on_startup(self, *, command, dirty):
"""Initialize search plugin on startup."""
def on_config(self, config):
"""Configure search plugin settings."""
def on_page_context(self, context, *, page, config, nav):
"""Add search context to page rendering."""
def on_post_build(self, *, config):
"""Generate search index after site build."""
def on_serve(self, server, *, config, builder):
"""Configure development server for search."""class SearchConfig(Config):
"""Configuration options for the search plugin."""
enabled = Type(bool, default=True)
lang = Optional(LangOption()) # Language configuration
separator = Optional(Type(str)) # Word separator pattern
pipeline = Optional(ListOfItems(Choice(['stemmer', 'stopWordFilter', 'trimmer'])))
jieba_dict = Optional(Type(str)) # Chinese word segmentation dictionary
jieba_dict_user = Optional(Type(str)) # User-defined dictionaryInstall with Tessl CLI
npx tessl i tessl/pypi-mkdocs-material