From 7eefb5cf5739035d3c03f189690827250d4f13db Mon Sep 17 00:00:00 2001 From: Timothy Cyrus Date: Sat, 27 Jun 2026 17:33:50 +0200 Subject: [PATCH] escape html characters in clean_markdown (#868) The site page for [FEP-61cf](https://fediverse.codeberg.page/fep/fep/61cf/) is currently bugged because of unescaped double quotes. The YAML issue could be solved with something like `yaml.safe_dump`, but there's also an HTML issue (mkdocs doesn't escape quotes). `clean_markdown` now uses the built-in `html.escape()` (`nh3.escape()` escapes too much) Reviewed-on: https://codeberg.org/fediverse/fep/pulls/868 --- scripts/fep_tools/site_fep_page.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/fep_tools/site_fep_page.py b/scripts/fep_tools/site_fep_page.py index 5f3e9a1..322fa99 100644 --- a/scripts/fep_tools/site_fep_page.py +++ b/scripts/fep_tools/site_fep_page.py @@ -1,3 +1,4 @@ +import html import re import shutil from pathlib import Path @@ -57,8 +58,8 @@ def clean_markdown(text: str) -> str: """Transforms markdown to a plain text string. To be used in the frontmatter""" transformed = nh3.clean(markdown(text), tags=set()) transformed = re.sub(r"\[(.+?)\]\[(.+?)\]", r"\1", transformed) - # Escape double quotes (FEP-db0e, FEP-7b29) - transformed = transformed.replace('"', '\\"') + # Escape HTML special characters (FEP-db0e, FEP-7b29) + transformed = html.escape(transformed) return transformed.replace("\n", " ")