From a0b2e826be4d935938a9429f1c94fb95ced0d701 Mon Sep 17 00:00:00 2001 From: moson Date: Mon, 27 Nov 2023 14:08:04 +0100 Subject: [PATCH] feat: Parse markdown within html block elements By default, markdown within an HTML block element is not parsed. Add markdown extension to support markdown text within block elements. With this we can annotate our element with a "markdown" attribute: E.g.
*Markdown*
And thus indicate that the content should be parsed. Signed-off-by: moson --- aurweb/scripts/rendercomment.py | 1 + test/test_rendercomment.py | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/aurweb/scripts/rendercomment.py b/aurweb/scripts/rendercomment.py index 124b8f20..7ff477b7 100755 --- a/aurweb/scripts/rendercomment.py +++ b/aurweb/scripts/rendercomment.py @@ -151,6 +151,7 @@ def update_comment_render(comment: PackageComment) -> None: html = markdown.markdown( text, extensions=[ + "md_in_html", "fenced_code", LinkifyExtension(), FlysprayLinksExtension(), diff --git a/test/test_rendercomment.py b/test/test_rendercomment.py index 1506a9a4..9d45fea9 100644 --- a/test/test_rendercomment.py +++ b/test/test_rendercomment.py @@ -105,6 +105,22 @@ def test_markdown_conversion(user: User, pkgbase: PackageBase): assert comment.RenderedComment == expected +def test_markdown_in_html_block(user: User, pkgbase: PackageBase): + # without "markdown" attribute + text = "
test*Hello*
" + comment = create_comment(user, pkgbase, text) + expected = "
test*Hello*
" + assert comment.RenderedComment == expected + + # with "markdown" attribute + text = "
test*Hello*
" + comment = create_comment(user, pkgbase, text) + expected = ( + "
\n

testHello

\n
" + ) + assert comment.RenderedComment == expected + + def test_markdown_strikethrough(user: User, pkgbase: PackageBase): text = "*~~Hello~~world*~~!~~" comment = create_comment(user, pkgbase, text)