Skip to main content

Mdformat plugin for Zola-flavored Markdown

Project description

mdformat-zola

PyPI Supported Python versions check

Mdformat plugin for Zola-flavored Markdown. It formats Zola content files while keeping shortcodes, heading anchors, and code-block annotations intact.

Plain mdformat mangles Zola content. It reflows shortcode bodies (a Mermaid diagram becomes one escaped line), escapes the * in {{/* … */}}, and wraps long inline shortcodes mid-call. This plugin adds Zola's syntax to mdformat so those constructs round-trip.

Zola syntax

Each construct below gets one stable form. Where Zola treats ordering as insignificant, the plugin sorts.

Shortcodes

The plugin normalizes inline shortcodes {{ name(args) }} and their escaped form {{/* name(args) */}}: it collapses whitespace, sorts arguments by name, and settles on one quote style. It does not wrap or escape them.

Input:

{{  youtube( autoplay=true ,  id="dQw4w9WgXcQ" ) }}

Output:

{{ youtube(autoplay=true, id="dQw4w9WgXcQ") }}

Body shortcodes {% name(args) %} … {% end %} (and the escaped {%/* … */%}) get the same treatment on their opening tag. A raw body such as a Mermaid diagram stays byte-for-byte:

{% mermaid() %}
graph TD
  A["velodex[x]"] --> B[*]
{% end %}

The body of a prose shortcode is Markdown that Zola re-renders, so the plugin formats it. By default this applies to admonition, aside, callout, caution, details, important, note, quote, tip, and warning; every other shortcode keeps its body verbatim. Point the plugin at your own set with the markdown_shortcodes option, on the CLI or in .mdformat.toml:

mdformat --zola-markdown-shortcodes quote,note,sidebar content/
# .mdformat.toml
[plugin.zola]
markdown_shortcodes = ["quote", "note", "sidebar"]

Pass an empty value to keep every body verbatim.

Heading anchors

Zola lets you pin a heading's id and classes with a {#id .class} suffix. The plugin puts the id first, then the classes in alphabetical order:

## Introduction {.lead #intro}

Formats to:

## Introduction {#intro .lead}

Code-block annotations

The plugin reorders Zola's syntax-highlighting annotations to a fixed sequence (linenos, linenostart, hl_lines, hide_lines, name), normalizes their whitespace, and keeps unknown annotations:

```rust, hl_lines=3-4  8-9,linenos , linenostart=10

Formats to:

```rust,linenos,linenostart=10,hl_lines=3-4 8-9

Internal links such as [text](@/pages/about.md#anchor) survive as ordinary links, no special handling needed.

Bundled features

Installing the plugin pulls in the mdformat plugins that cover the rest of Zola's Markdown flavor (GitHub-Flavored Markdown with footnotes, definition lists, alerts, and TOML +++ frontmatter), plus code formatters for fenced blocks:

Markdown syntax:

Code-block formatting:

Usage

mdformat content/

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_zola-1.0.0.tar.gz (21.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_zola-1.0.0-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

Details for the file mdformat_zola-1.0.0.tar.gz.

File metadata

  • Download URL: mdformat_zola-1.0.0.tar.gz
  • Upload date:
  • Size: 21.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for mdformat_zola-1.0.0.tar.gz
Algorithm Hash digest
SHA256 c6db4f8e2b1e51ff88db6c7fa84d11664ff2c4fb352a139439d29005ade4736d
MD5 69ed7e9e30069528b43f6429d63161bc
BLAKE2b-256 156a26ab37dd54e8f48c0379d0d4d49e85968e409e4c4b126bbd14a30c7010ad

See more details on using hashes here.

Provenance

The following attestation bundles were made for mdformat_zola-1.0.0.tar.gz:

Publisher: release.yaml on tox-dev/mdformat-zola

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

File details

Details for the file mdformat_zola-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: mdformat_zola-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 13.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for mdformat_zola-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 32808ba2b708dc288d9a4ba9628e78e889d0a8ed52d3c7e5223c6229c9b0483f
MD5 62d30977c3e67684fdd7933d6a8a8464
BLAKE2b-256 432a119bb8a0f42b85bf341b7da34284da4a561a2342f5517ecfd761b145314c

See more details on using hashes here.

Provenance

The following attestation bundles were made for mdformat_zola-1.0.0-py3-none-any.whl:

Publisher: release.yaml on tox-dev/mdformat-zola

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