Skip to main content

An mdformat plugin for mkdocs.

Project description

mdformat-mkdocs


"v2.0.0rc#" Warning

To avoid unexpected formatting errors, you must install mdformat-gfm separately until this issue is resolved: https://github.com/hukkin/mdformat-gfm/issues/31

For pre-commit, this would be something like:

repos:
  - repo: https://github.com/executablebooks/mdformat
    rev: 0.7.17
    hooks:
      - id: mdformat
        additional_dependencies:
          - mdformat-mkdocs[recommended]>=2.0.0rc3
          - mdformat-gfm@git+https://github.com/hukkin/mdformat-gfm.git

For any other usage with pip, you will need some variation of:

pip install mdformat-gfm@git+https://github.com/hukkin/mdformat-gfm.git

Build Status PyPI version

An mdformat plugin for mkdocs and mkdocs-material in particular.

Supports:

  • Indents are converted to 4-spaces instead of 2
    • Note: see caveats when using the optional Semantic Indents on numbered lists which may not be a full multiple of 4
  • List bullets are converted to dashes instead of *
  • Admonitions (extends mdformat-admon)
  • MKDocs-Material Content Tabs (https://squidfunk.github.io/mkdocs-material/reference/content-tabs)
    • Note: the markup (HTML) rendered by this plugin is sufficient for formatting but not for viewing in a browser. Please open an issue if you have a need to generate valid HTML.

See the example test files, ./tests/pre-commit-test.md and ./tests/format/fixtures.md

mdformat Usage

Add this package wherever you use mdformat and the plugin will be auto-recognized. No additional configuration necessary. For additional information on plugins, see the official mdformat documentation here

Tip: this package specifies an "extra" ('recommended') for plugins that work well with mkdocs:

Pre-Commit

repos:
  - repo: https://github.com/executablebooks/mdformat
    rev: 0.7.16
    hooks:
      - id: mdformat
        additional_dependencies:
          - mdformat-mkdocs>=2.0.0
          # Or
          # - "mdformat-mkdocs[recommended]>=2.0.0"

pipx

pipx install mdformat
pipx inject mdformat mdformat-mkdocs
# Or
# pipx inject mdformat "mdformat-mkdocs[recommended]"

HTML Rendering

To generate HTML output, mkdocs_admon_plugin can be imported from mdit_plugins. More plugins will be added in the future. For more guidance on MarkdownIt, see the docs: https://markdown-it-py.readthedocs.io/en/latest/using.html#the-parser

from markdown_it import MarkdownIt
from mdformat_mkdocs.mdit_plugins import mkdocs_admon_plugin

md = MarkdownIt()
md.use(mkdocs_admon_plugin)

text = '??? note\n    content'
md.render(text)
# <details class="note">
# <summary>Note</summary>
# <p>content</p>
# </details>

CLI Options

mdformat-mkdocs adds the CLI argument --align-semantic-breaks-in-lists to optionally align line breaks in numbered lists to 3-spaces. If not specified, the default of 4-indents is followed universally.

# with: mdformat
1. Semantic line feed where the following line is
    three spaces deep

# vs. with: mdformat --align-semantic-breaks-in-lists
1. Semantic line feed where the following line is
   three spaces deep

Note: the align-semantic-breaks-in-lists setting is not supported in the configuration file yet (https://github.com/executablebooks/mdformat/issues/378)

Contributing

See CONTRIBUTING.md

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

mdformat_mkdocs-2.0.0rc4.tar.gz (15.8 kB view details)

Uploaded Source

Built Distribution

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

mdformat_mkdocs-2.0.0rc4-py3-none-any.whl (13.6 kB view details)

Uploaded Python 3

File details

Details for the file mdformat_mkdocs-2.0.0rc4.tar.gz.

File metadata

  • Download URL: mdformat_mkdocs-2.0.0rc4.tar.gz
  • Upload date:
  • Size: 15.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.31.0

File hashes

Hashes for mdformat_mkdocs-2.0.0rc4.tar.gz
Algorithm Hash digest
SHA256 86f5634cca778515b1ba53aa937948bbcbd7ea74ea4fc38783b5fb5d7e25b220
MD5 00908ef232c383a4934ee753aedf382f
BLAKE2b-256 98614e21f6681af6010125f6e2d79c8f9fa7446041dc60063875f51cac1f1225

See more details on using hashes here.

File details

Details for the file mdformat_mkdocs-2.0.0rc4-py3-none-any.whl.

File metadata

File hashes

Hashes for mdformat_mkdocs-2.0.0rc4-py3-none-any.whl
Algorithm Hash digest
SHA256 5f74349e071aaafe024c69fafdef5bfab499746cd45fd14d656aea660d0f5002
MD5 0823fa6d2cdea376c59e52fcf531851a
BLAKE2b-256 0dc383a8c4aa1a3026fd8330d82bd80615888de1efba2c06c6ea5fd2d8d0c27c

See more details on using hashes here.

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