fix markdown extension loading

This commit is contained in:
Daniel Fichtinger 2025-07-05 02:28:34 -04:00
parent 064bc8fc84
commit 4ad4696962
2 changed files with 25 additions and 28 deletions

View file

@ -51,7 +51,7 @@ reportUnusedCallResult = false
reportCallInDefaultInitializer = false reportCallInDefaultInitializer = false
enableTypeIgnoreComments = true enableTypeIgnoreComments = true
reportIgnoreCommentWithoutRule = false reportIgnoreCommentWithoutRule = false
allowedUntypedLibraries = ["frontmatter", "pygments"] allowedUntypedLibraries = ["frontmatter", "pygments", "pymdownx"]
[tool.ruff] [tool.ruff]
line-length = 70 line-length = 70

View file

@ -1,11 +1,10 @@
from markdown import Markdown from collections.abc import Sequence
from rich import print from rich import print
from markdown import Markdown
from typing import Any, override from typing import Any, override
from pathlib import Path from pathlib import Path
from marko.inline import Link, Image
from marko.block import FencedCode from pygments.formatters.html import HtmlFormatter
from marko.html_renderer import HTMLRenderer
from marko.parser import Parser
from zona.config import ZonaConfig from zona.config import ZonaConfig
from zona.layout import Layout from zona.layout import Layout
@ -14,14 +13,11 @@ from markdown.extensions.codehilite import CodeHiliteExtension
from markdown.extensions.extra import ExtraExtension from markdown.extensions.extra import ExtraExtension
from markdown.extensions.smarty import SmartyExtension from markdown.extensions.smarty import SmartyExtension
from markdown.extensions.sane_lists import SaneListExtension from markdown.extensions.sane_lists import SaneListExtension
from markdown.extensions.md_in_html import MarkdownInHtmlExtension
from pymdownx.inlinehilite import InlineHiliteExtension from pymdownx.inlinehilite import InlineHiliteExtension
from pymdownx.escapeall import EscapeAllExtension
import xml.etree.ElementTree as etree import xml.etree.ElementTree as etree
from pygments import highlight
from pygments.lexers import get_lexer_by_name, TextLexer
from pygments.formatters import HtmlFormatter
from zona import util from zona import util
from zona.models import Item from zona.models import Item
from zona.log import get_logger from zona.log import get_logger
@ -137,25 +133,26 @@ def md_to_html(
layout: Layout | None = None, layout: Layout | None = None,
item_map: dict[Path, Item] | None = None, item_map: dict[Path, Item] | None = None,
) -> str: ) -> str:
extensions: Sequence[Any] = [
ExtraExtension(),
SmartyExtension(),
"pymdownx.tilde",
"pymdownx.caret",
"pymdownx.smartsymbols",
InlineHiliteExtension(css_class="codehilite"),
SaneListExtension(),
MarkdownInHtmlExtension(),
EscapeAllExtension(hardbreak=True),
]
if config: if config:
md = Markdown( extensions.append(
extensions=[ CodeHiliteExtension(
CodeHiliteExtension( linenums=False,
linenums=False, noclasses=False,
noclasses=False, pygments_style=config.markdown.syntax_highlighting.theme,
pygments_style=config.markdown.syntax_highlighting.theme, )
),
ExtraExtension(),
SmartyExtension(),
"pymdownx.tilde",
"pymdownx.caret",
"pymdownx.smartsymbols",
InlineHiliteExtension(css_class="codehilite"),
SaneListExtension(),
]
) )
else: md = Markdown(extensions=extensions)
md = Markdown()
if resolve_links: if resolve_links:
if source is None or layout is None or item_map is None: if source is None or layout is None or item_map is None:
raise TypeError( raise TypeError(