From 87dba241820b33111017b041f624a88e74e4220a Mon Sep 17 00:00:00 2001 From: Christoph Schlosser Date: Fri, 10 Oct 2025 17:38:00 +0200 Subject: g2h: Escape markdown code blocks that specify a non-word language This is mostly a workaround for the early version of the file.md which had ```{{ --- src/g2h/file_page.py | 1 + tests/file_page_test.py | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/src/g2h/file_page.py b/src/g2h/file_page.py index f2e0550..c317454 100644 --- a/src/g2h/file_page.py +++ b/src/g2h/file_page.py @@ -40,6 +40,7 @@ class FilePage(Page): if file_type == 'text': if self.file_name.lower().endswith('.md'): backtick_max = -1 + content = re.sub(r'(`{3,}\W)', r'\\\1', content) else: matches = re.findall('`+', content) backtick_max = max(max(len(match) for match in matches) if matches else 0, backtick_max) diff --git a/tests/file_page_test.py b/tests/file_page_test.py index 5c380b8..63a086a 100644 --- a/tests/file_page_test.py +++ b/tests/file_page_test.py @@ -106,3 +106,16 @@ def test_markdown(): file.data_stream.read.return_value = '```'.encode() context = page.context() assert(context['backtick_max'] == 0) + +def test_markdown_invalid_code_tag(): + file = MagicMock() + tree = MagicMock() + commit = MagicMock() + commit.hexsha = '123' + commit.tree = tree + commit.tree.join.return_value = file + page = FilePage('test/file', 'file test', commit, 'file.Md', '', 'file/content') + file.data_stream.read.return_value = '```{'.encode() + context = page.context() + assert(context['backtick_max'] == 0) + assert(context['content'] == '\\```{') -- cgit v1.2.3