Skip to main content

WYSIWYG docs editor for Mkdocs Material themed docs. A content editing experience.

Project description

mkdocs-live-wysiwyg-plugin

PyPI - Version

An all-in-one editor for GitHub and mkdocs documentation.

  1. Add techdocs-preview.sh to your $PATH.
  2. Edit documentation across your porojects.
📝 A small 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
  • init will 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.
  • ℹ️ 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.

Screen Shot

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mkdocs_live_wysiwyg_plugin-0.3.26.tar.gz (6.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mkdocs_live_wysiwyg_plugin-0.3.26-py3-none-any.whl (6.1 MB view details)

Uploaded Python 3

File details

Details for the file mkdocs_live_wysiwyg_plugin-0.3.26.tar.gz.

File metadata

File hashes

Hashes for mkdocs_live_wysiwyg_plugin-0.3.26.tar.gz
Algorithm Hash digest
SHA256 3e2dbe7e084a0543129aa7be126f4d5b42ed3203805b5634dde342634c2066ca
MD5 bc1c9c42ae5ca9f86e071a2c2eecbc4a
BLAKE2b-256 9e4ff7c0c6426ab5eff497c613b603430eb4b698a41e2232164e601b9564ca67

See more details on using hashes here.

Provenance

The following attestation bundles were made for mkdocs_live_wysiwyg_plugin-0.3.26.tar.gz:

Publisher: release.yml on samrocketman/mkdocs-live-wysiwyg-plugin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mkdocs_live_wysiwyg_plugin-0.3.26-py3-none-any.whl.

File metadata

File hashes

Hashes for mkdocs_live_wysiwyg_plugin-0.3.26-py3-none-any.whl
Algorithm Hash digest
SHA256 55b9632c9bd5f8060b5b3509d442de87ef16d9f28d5cb8fc66b0b6858bf0f50e
MD5 07e7c7537d45b0765b561d5f52aea2d4
BLAKE2b-256 ebf1f906a62bd827ace216dd9cc2ff0d73f72abce06f3a33aca2207202a5f5d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for mkdocs_live_wysiwyg_plugin-0.3.26-py3-none-any.whl:

Publisher: release.yml on samrocketman/mkdocs-live-wysiwyg-plugin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page