add gfm to markdown parser

This commit is contained in:
Daniel Fichtinger 2025-07-05 00:29:24 -04:00
parent 9f38b16d0c
commit 3b8d4f771c

View file

@ -4,6 +4,9 @@ from pathlib import Path
from marko.inline import Link, Image from marko.inline import Link, Image
from marko.block import FencedCode from marko.block import FencedCode
from marko.html_renderer import HTMLRenderer 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 marko.parser import Parser
from zona.config import ZonaConfig from zona.config import ZonaConfig
from zona.layout import Layout from zona.layout import Layout
@ -19,7 +22,7 @@ from zona.log import get_logger
logger = get_logger() logger = get_logger()
class ZonaRenderer(HTMLRenderer): class ZonaRenderer(GFMRendererMixin, HTMLRenderer):
def __init__( def __init__(
self, self,
config: ZonaConfig | None, config: ZonaConfig | None,
@ -131,7 +134,17 @@ def md_to_html(
raise TypeError( raise TypeError(
"md_to_html() missing source and ctx when resolve_links is true" "md_to_html() missing source and ctx when resolve_links is true"
) )
parser = Parser() 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) ast = parser.parse(content)
renderer = ZonaRenderer( renderer = ZonaRenderer(
config, config,