Skip to content

API Reference

Blazingly fast Markdown parser.

Extensions

Bases: IntFlag

IntFlag containing flags for enabling Markdown extensions.

Examples:

All extensions:

extensions = (
    pyromark.Extensions.ENABLE_TABLES
    | pyromark.Extensions.ENABLE_FOOTNOTES
    | pyromark.Extensions.ENABLE_STRIKETHROUGH
    | pyromark.Extensions.ENABLE_TASKLISTS
    | pyromark.Extensions.ENABLE_SMART_PUNCTUATION
    | pyromark.Extensions.ENABLE_HEADING_ATTRIBUTES
    | pyromark.Extensions.ENABLE_YAML_STYLE_METADATA_BLOCKS
    | pyromark.Extensions.ENABLE_PLUSES_DELIMITED_METADATA_BLOCKS
    | pyromark.Extensions.ENABLE_OLD_FOOTNOTES
    | pyromark.Extensions.ENABLE_MATH
    | pyromark.Extensions.ENABLE_GFM
)

ENABLE_TABLES class-attribute instance-attribute

ENABLE_TABLES = 1 << 1

ENABLE_FOOTNOTES class-attribute instance-attribute

ENABLE_FOOTNOTES = 1 << 2

ENABLE_STRIKETHROUGH class-attribute instance-attribute

ENABLE_STRIKETHROUGH = 1 << 3

ENABLE_TASKLISTS class-attribute instance-attribute

ENABLE_TASKLISTS = 1 << 4

ENABLE_SMART_PUNCTUATION class-attribute instance-attribute

ENABLE_SMART_PUNCTUATION = 1 << 5

Converts some characters to their HTML equivalents:

CharacterReplacements
'‘ ’
"“ ”
...
--
---

ENABLE_HEADING_ATTRIBUTES class-attribute instance-attribute

ENABLE_HEADING_ATTRIBUTES = 1 << 6

ENABLE_YAML_STYLE_METADATA_BLOCKS class-attribute instance-attribute

ENABLE_YAML_STYLE_METADATA_BLOCKS = 1 << 7

ENABLE_PLUSES_DELIMITED_METADATA_BLOCKS class-attribute instance-attribute

ENABLE_PLUSES_DELIMITED_METADATA_BLOCKS = 1 << 8

ENABLE_OLD_FOOTNOTES class-attribute instance-attribute

ENABLE_OLD_FOOTNOTES = 1 << 9 | 1 << 2

ENABLE_MATH class-attribute instance-attribute

ENABLE_MATH = 1 << 10

Markdown

Markdown(*, extensions: Extensions | None = None)

Examples:

md = pyromark.Markdown(
    # Optional, include the ones you want
    extensions=(
        pyromark.Extensions.ENABLE_TABLES
        | pyromark.Extensions.ENABLE_FOOTNOTES
        | pyromark.Extensions.ENABLE_STRIKETHROUGH
        | pyromark.Extensions.ENABLE_TASKLISTS
        | pyromark.Extensions.ENABLE_SMART_PUNCTUATION
        | pyromark.Extensions.ENABLE_HEADING_ATTRIBUTES
        | pyromark.Extensions.ENABLE_YAML_STYLE_METADATA_BLOCKS
        | pyromark.Extensions.ENABLE_PLUSES_DELIMITED_METADATA_BLOCKS
        | pyromark.Extensions.ENABLE_OLD_FOOTNOTES
        | pyromark.Extensions.ENABLE_MATH
        | pyromark.Extensions.ENABLE_GFM
    )
)

convert method descriptor

convert(text: str) -> str

Examples:

html = md.convert("# Hello world")
assert html == "<h1>Hello world</h1>\n"

markdown builtin

markdown(text: str, *, extensions: Extensions | None = None) -> str

Examples:

html = pyromark.markdown(
    "# Hello world",
    # Optional, include the ones you want
    extensions=(
        pyromark.Extensions.ENABLE_TABLES
        | pyromark.Extensions.ENABLE_FOOTNOTES
        | pyromark.Extensions.ENABLE_STRIKETHROUGH
        | pyromark.Extensions.ENABLE_TASKLISTS
        | pyromark.Extensions.ENABLE_SMART_PUNCTUATION
        | pyromark.Extensions.ENABLE_HEADING_ATTRIBUTES
        | pyromark.Extensions.ENABLE_YAML_STYLE_METADATA_BLOCKS
        | pyromark.Extensions.ENABLE_PLUSES_DELIMITED_METADATA_BLOCKS
        | pyromark.Extensions.ENABLE_OLD_FOOTNOTES
        | pyromark.Extensions.ENABLE_MATH
        | pyromark.Extensions.ENABLE_GFM
    )
)
assert html == "<h1>Hello world</h1>\n"