diff --git a/src/zona/markdown.py b/src/zona/markdown.py index 956db70..9e5341c 100644 --- a/src/zona/markdown.py +++ b/src/zona/markdown.py @@ -10,12 +10,19 @@ from zona.layout import Layout from markdown.treeprocessors import Treeprocessor from markdown.extensions.codehilite import CodeHiliteExtension -from markdown.extensions.extra import ExtraExtension from markdown.extensions.smarty import SmartyExtension from markdown.extensions.sane_lists import SaneListExtension -from markdown.extensions.md_in_html import MarkdownInHtmlExtension from pymdownx.inlinehilite import InlineHiliteExtension from pymdownx.escapeall import EscapeAllExtension +from pymdownx.betterem import BetterEmExtension +from pymdownx.superfences import SuperFencesCodeExtension +from markdown.extensions.footnotes import FootnoteExtension +from markdown.extensions.attr_list import AttrListExtension +from markdown.extensions.def_list import DefListExtension +from markdown.extensions.tables import TableExtension +from markdown.extensions.abbr import AbbrExtension +from markdown.extensions.md_in_html import MarkdownInHtmlExtension + import xml.etree.ElementTree as etree from zona import util @@ -134,12 +141,20 @@ def md_to_html( item_map: dict[Path, Item] | None = None, ) -> str: extensions: Sequence[Any] = [ - ExtraExtension(), + BetterEmExtension(), + SuperFencesCodeExtension( + disable_indented_code_blocks=True, + css_class="codehilite", + ), + FootnoteExtension(), + AttrListExtension(), + DefListExtension(), + TableExtension(), + AbbrExtension(), SmartyExtension(), "pymdownx.tilde", "pymdownx.caret", "pymdownx.smartsymbols", - InlineHiliteExtension(css_class="codehilite"), SaneListExtension(), MarkdownInHtmlExtension(), EscapeAllExtension(hardbreak=True), @@ -149,12 +164,15 @@ def md_to_html( "tab_length": 2, } if config: - kwargs["extensions"].append( - CodeHiliteExtension( - linenums=False, - noclasses=False, - pygments_style=config.markdown.syntax_highlighting.theme, - ) + kwargs["extensions"].extend( + [ + CodeHiliteExtension( + linenums=False, + noclasses=False, + pygments_style=config.markdown.syntax_highlighting.theme, + ), + InlineHiliteExtension(css_class="codehilite"), + ] ) kwargs["tab_length"] = config.markdown.tab_length md = Markdown(**kwargs)