WYSIWYG docs editor for Mkdocs Material themed docs. A content editing experience.
Project description
mkdocs-live-wysiwyg-plugin
An all-in-one editor for GitHub and mkdocs documentation.
- Add techdocs-preview.sh to your
$PATH. - Edit documentation across your projects.
📝 A small CLI tutorial (click to expand)
Try it out
Run ./techdocs-preview.sh from this repository to view the documentation for this repository.
For a general tutorial, you can run the following command in an empty directory.
techdocs-preview.sh init
initwill initialized mkdocs documentation for any project.- The tutorial itself provides a starting point for docs as well as teaching material. About a 15 mins read.
I modify GitHub documentation for this repository with the following command.
techdocs-preview.sh -c -a docs
Features
A WYSIWYG (What-You-See-Is-What-You-Get) editor for exiting mkdocs documentation.
- 🌈✨ Author quality of life features
- 👁-👁 Focus mode with collapsible nav sidebar, editing tools, and table of contents.
- 📝 Non-destructive editing is a top priority. Minimal
git diff. - 🧜 Mermaid diagram editor with a unique feature: text on diagrams can be clicked to auto-select matching mermaid text. Enables fast editing of existing diagrams.
- 🗂️ File management: reorder files, content migrations, dead link scanning (for broken internal or external links), preview and manage images. Refactors links to documents and intra-document links when headings are renamed.
- 🔗 A URL pasted onto selected text creates a markdown link. Headings can be copied to create intra-document links. Hold Ctrl key to open links with a click.
- 🍹🤌 Unified editor actions for WYSIWYG and Markdown modes (i.e. switching modes).
- 🗡 Loss-less undo/redo history with a UI to access full redo history. Switching modes has shared undo history.
- 🐁 Cursor location memory: switching modes keeps cursor and scroll area in same document location.
- 🛰 Text selections are preserved when the author switches modes.
- 💪 Mkdocs/backage rendering features
- ✅ Toggle-able checklists (task lists):
- [ ]and- [x]. - ✅ YAML frontmatter preserved when editing and switching modes.
- ✅ MkDocs admonitions (
!!! note,!!! warning, etc.) with settings gear for type, collapsible, placement, and more. - ✅ Markdown link styles preserved (inline, reference, shortcut).
- ✅ Code blocks with WYSIWYG editable titles, language selector, and auto-indent settings.
- ✅ Mermaid diagram editing with an embedded live editor (full-screen overlay).
- ✅ Tables with contextual toolbar: insert/delete rows and columns, column alignment, and formatting settings.
- ✅ Image dialog with autocomplete from the docs tree.
- ✅ Emoji shortcode completion and full emoji picker.
- ✅ Automated content migration to mkdocs-nav-weight.
- ✅ Toggle-able checklists (task lists):
- ℹ️ Other noteworthy features
- ✅ Auto-conversions: inline typing of markdown syntax creates formatted text.
- ✅ Balanced ASCII table formatting with configurable max width and per-table overrides.
- ✅ Context-sensitive help panel (Ctrl+?). Not as good as clippy 📎.
- ✅ No external JavaScript; all assets are bundled locally within the mkdocs plugin.
The following is an annotated screenshot after running techdocs-preview.sh init.
MkDocs Theme Support
Only the Material for MkDocs theme is officially supported. Admonition styling and icons rely on Material theme CSS. Other themes may work but have not been tested.
No breaking changes to Material theme compatibility are allowed.
Support for admonition syntax (e.g. !!! note, !!! warning, etc.). Admonitions render as they would when the site is built by mkdocs. Collapsible admonitions (??? type) and HTML details tags (!!! details) are also supported.
Attributions
This plugin incorporates or depends on the following works:
| Component | Author | License | Link |
|---|---|---|---|
| @celsowm/markdown-wysiwyg (WYSIWYG editor) | Celso Fontes | MIT | GitHub · npm |
| marked (Markdown parser) | Christopher Jeffrey, MarkedJS | MIT | GitHub · marked.js.org |
| js-yaml (YAML parser) | Vitaly Puzrin | MIT | GitHub |
| mermaid (Diagram renderer) | Knut Sveidqvist | MIT | GitHub · mermaid.js.org |
| mermaid-live-editor (Diagram editor) | Knut Sveidqvist | MIT | GitHub |
| mkdocs-live-edit-plugin (required dependency) | Eddy Luten | MIT | GitHub |
All listed components are distributed under the MIT License. See each project's repository for full license text.
All vendored JavaScript, CSS, and application builds are bundled locally in mkdocs_live_wysiwyg_plugin/vendor/ — no external JavaScript or CSS is loaded at runtime. See vendor/README.md for exact versions and license files.
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_live_wysiwyg_plugin-0.3.27.tar.gz.
File metadata
- Download URL: mkdocs_live_wysiwyg_plugin-0.3.27.tar.gz
- Upload date:
- Size: 6.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9bc49e7201502eae20d08e7f7fe9c5ca9d109607adc9028f09f1ff611a9ac821
|
|
| MD5 |
fd1d69f3b1f7f1362157f9e08bcf43a7
|
|
| BLAKE2b-256 |
64b6d4064744b170eeb2a445de5e147634399a5bb424328f37786d602731d25d
|
Provenance
The following attestation bundles were made for mkdocs_live_wysiwyg_plugin-0.3.27.tar.gz:
Publisher:
release.yml on samrocketman/mkdocs-live-wysiwyg-plugin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mkdocs_live_wysiwyg_plugin-0.3.27.tar.gz -
Subject digest:
9bc49e7201502eae20d08e7f7fe9c5ca9d109607adc9028f09f1ff611a9ac821 - Sigstore transparency entry: 1204116368
- Sigstore integration time:
-
Permalink:
samrocketman/mkdocs-live-wysiwyg-plugin@b6e4d3b65ae9c0c85218d73705ebd53ce8497a4e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/samrocketman
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b6e4d3b65ae9c0c85218d73705ebd53ce8497a4e -
Trigger Event:
push
-
Statement type:
File details
Details for the file mkdocs_live_wysiwyg_plugin-0.3.27-py3-none-any.whl.
File metadata
- Download URL: mkdocs_live_wysiwyg_plugin-0.3.27-py3-none-any.whl
- Upload date:
- Size: 6.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ab7b466035eadcbb382d01f6e98b5511b65566ebabdde3e13942d3839ff1a1c
|
|
| MD5 |
218fa023a1d8e6c20c006cf3c57fdcda
|
|
| BLAKE2b-256 |
48ea441b4b62eb4a3008f4ae1d1132f2172f991b86794644f145ef019e55ba6f
|
Provenance
The following attestation bundles were made for mkdocs_live_wysiwyg_plugin-0.3.27-py3-none-any.whl:
Publisher:
release.yml on samrocketman/mkdocs-live-wysiwyg-plugin
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mkdocs_live_wysiwyg_plugin-0.3.27-py3-none-any.whl -
Subject digest:
3ab7b466035eadcbb382d01f6e98b5511b65566ebabdde3e13942d3839ff1a1c - Sigstore transparency entry: 1204116377
- Sigstore integration time:
-
Permalink:
samrocketman/mkdocs-live-wysiwyg-plugin@b6e4d3b65ae9c0c85218d73705ebd53ce8497a4e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/samrocketman
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b6e4d3b65ae9c0c85218d73705ebd53ce8497a4e -
Trigger Event:
push
-
Statement type: