diff --git a/src/zona/markdown.py b/src/zona/markdown.py index d2cf4e5..7861f47 100644 --- a/src/zona/markdown.py +++ b/src/zona/markdown.py @@ -4,6 +4,9 @@ from pathlib import Path from marko.inline import Link, Image from marko.block import FencedCode from marko.html_renderer import HTMLRenderer +from marko.ext.gfm import elements as gfme +from marko.ext.gfm.renderer import GFMRendererMixin +from marko.helpers import MarkoExtension from marko.parser import Parser from zona.config import ZonaConfig from zona.layout import Layout @@ -19,7 +22,7 @@ from zona.log import get_logger logger = get_logger() -class ZonaRenderer(HTMLRenderer): +class ZonaRenderer(GFMRendererMixin, HTMLRenderer): def __init__( self, config: ZonaConfig | None, @@ -131,7 +134,17 @@ def md_to_html( raise TypeError( "md_to_html() missing source and ctx when resolve_links is true" ) + parser = Parser() + for element in ( + gfme.Paragraph, + gfme.Strikethrough, + gfme.Url, + gfme.Table, + gfme.TableRow, + gfme.TableCell, + ): + parser.add_element(element) ast = parser.parse(content) renderer = ZonaRenderer( config,