From 3b8d4f771c3f5538c513446d1d720a4c63c10129 Mon Sep 17 00:00:00 2001 From: Daniel Fichtinger Date: Sat, 5 Jul 2025 00:29:24 -0400 Subject: [PATCH] add gfm to markdown parser --- src/zona/markdown.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) 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,