A MkDocs plugin to add note boxes to your documentation.
Project description
MkDocs-Note
MkDocs-Note is a plugin for MkDocs that automatically manages notes in your documentation site. It's designed to work seamlessly with Material for MkDocs theme to create a unified note-taking and documentation experience.
Features
-
Recent Notes Display: Automatically displays a list of recent notes on your notes index page
-
Multi-format Support: Supports both Markdown (.md) and Jupyter Notebook (.ipynb) files
-
Smart Filtering: Excludes index files and other specified patterns from the recent notes list
-
Flexible Configuration: Highly customizable note directory, file patterns, and display options
-
Automatic Updates: Notes list updates automatically when you build your documentation
Installation
Recommanded to use uv to manage python virtual environment:
uv venv
uv pip insatll mkdocs-note
Or using pip:
pip install mkdocs-note
Then, add the plugin to your mkdocs.yml:
plugins:
- mkdocs-note:
enabled: true
notes_dir: "docs/notes"
index_file: "docs/notes/index.md"
max_notes: 10
start_marker: "<!-- recent_notes_start -->"
end_marker: "<!-- recent_notes_end -->"
⚠️ Important: Note the indentation! Use spaces (not dashes
-) for plugin options. The configuration must be a dictionary, not a list. See Troubleshooting Guide for common configuration issues.
Usage
Setting Up Your Notes Directory
- Create a notes directory in your documentation (e.g.,
docs/notes/) - Create an
index.mdfile in your notes directory - Add the marker comments to your index file:
# My Notes
<!-- recent_notes_start -->
<!-- recent_notes_end -->
Configuration Options
The plugin supports the following configuration options in your mkdocs.yml:
| Option | Type | Default | Description |
|---|---|---|---|
enabled |
bool | true |
Enable or disable the plugin |
notes_dir |
Path | "docs/notes" |
Directory containing your notes |
index_file |
Path | "docs/notes/index.md" |
Index file where recent notes will be displayed |
max_notes |
int | 10 |
Maximum number of recent notes to display |
start_marker |
str | "<!-- recent_notes_start -->" |
Start marker for notes insertion |
end_marker |
str | "<!-- recent_notes_end -->" |
End marker for notes insertion |
supported_extensions |
Set[str] | {".md", ".ipynb"} |
File extensions to include as notes |
exclude_patterns |
Set[str] | {"index.md", "README.md"} |
File patterns to exclude |
exclude_dirs |
Set[str] | {"__pycache__", ".git", "node_modules"} |
Directories to exclude |
use_git_timestamps |
bool | true |
Use Git commit timestamps for sorting instead of file system timestamps |
How It Works
- The plugin scans your configured notes directory for supported file types
- It extracts metadata (title, modification date) from each note file
- Notes are sorted by modification time (most recent first)
- By default, uses Git commit timestamps for consistent sorting across deployment environments
- Falls back to file system timestamps if Git is not available
- The specified number of recent notes is inserted into your index page between the marker comments
- The process runs automatically every time you build your documentation
Sorting Behavior
The plugin uses Git commit timestamps by default (use_git_timestamps: true) to ensure consistent sorting across different deployment environments. This is especially important when deploying to platforms like Vercel, Netlify, or GitHub Pages, where file system timestamps may be reset during the build process.
If Git is not available or you prefer to use file system timestamps, you can disable this feature:
plugins:
- mkdocs-note:
use_git_timestamps: false
Contributing
Contributions are welcome! Please see the CONTRIBUTING.md file for guidelines.
License
This project is licensed under the GNU General Public License v3.0.
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_note-1.0.3.tar.gz.
File metadata
- Download URL: mkdocs_note-1.0.3.tar.gz
- Upload date:
- Size: 27.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.8.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2876a06d4daa14556d2bd3ac096b28145b1324417d6a54b21baaa1c9673bf5a1
|
|
| MD5 |
193df40e9217e7ae587f72db74f8a37b
|
|
| BLAKE2b-256 |
71641f115c1819f916fc346b4c55cbcf151960c19852a23f8a246521668d5b16
|
File details
Details for the file mkdocs_note-1.0.3-py3-none-any.whl.
File metadata
- Download URL: mkdocs_note-1.0.3-py3-none-any.whl
- Upload date:
- Size: 24.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.8.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7f2596ff168e819c05f97c8025d86bd16a7fafa1f9265ffc935abd7554ea020
|
|
| MD5 |
88cb166e24281a908ed3f56889899c98
|
|
| BLAKE2b-256 |
bfde95d4d18f85c12b260a1509e59d4304135f0917da736670192f0cdc967a5c
|