Skip to main content

An mdformat plugin for mkdocs.

Project description

mdformat-mkdocs

Build Status PyPI version

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

Supports:

  • Indents are converted to four-spaces instead of two
    • Note: when specifying --align-semantic-breaks-in-lists, the nested indent for ordered lists is three, but is otherwise a multiple of four
  • Unordered list bullets are converted to dashes (-) instead of *
  • By default, ordered lists are standardized on a single digit (1. or 0.) unless --number is specified, then mdformat-mkdocs will apply consecutive numbering to ordered lists for consistency with mdformat
  • MkDocs-Material Admonitions
  • MkDocs-Material "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.
  • Python Markdown "Abbreviations"*
    • *Note: the markup (HTML) rendered for abbreviations is not useful for rendering. If important, I'm open to contributions because this is an involved implementation
  • "Markdown anchors" syntax from the mkdocs autorefs plugin

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 typical documentation managed by mkdocs:

Pre-Commit

repos:
  - repo: https://github.com/executablebooks/mdformat
    rev: 0.7.16
    hooks:
      - id: mdformat
        additional_dependencies:
          - mdformat-mkdocs>=2.1.0
          # Or
          # - "mdformat-mkdocs[recommended]>=2.1.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.1.0.tar.gz (19.4 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.1.0-py3-none-any.whl (17.8 kB view details)

Uploaded Python 3

File details

Details for the file mdformat_mkdocs-2.1.0.tar.gz.

File metadata

  • Download URL: mdformat_mkdocs-2.1.0.tar.gz
  • Upload date:
  • Size: 19.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.32.3

File hashes

Hashes for mdformat_mkdocs-2.1.0.tar.gz
Algorithm Hash digest
SHA256 8fe1a830b7b245db8fd88e7d8499df1afad90eeeff8eb570c7ea138d06dcca95
MD5 0621c2121d4480e1b62ae97b32594fd4
BLAKE2b-256 45b4d119bda1b80f202465259cdc991bece9ef4e47175c38935456c782205a65

See more details on using hashes here.

File details

Details for the file mdformat_mkdocs-2.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mdformat_mkdocs-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6cf47d17ef377915f295509039cffb9305d3ed6bee7bd12938b23ed589c5d863
MD5 1d2e28cb37aa812109eeeaf9f78d1e27
BLAKE2b-256 71a0380fed48e75dd39bbc34f22491c7d2f92637d0e795de28de4537c9f2570d

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