diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/html.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/core/html.py b/core/html.py index 3230284..dfb7beb 100644 --- a/core/html.py +++ b/core/html.py @@ -38,3 +38,15 @@ def strip_html(post_html: str) -> str: """ cleaner = bleach.Cleaner(tags=[], strip=True, filters=[LinkifyFilter]) return mark_safe(cleaner.clean(post_html)) + + +def html_to_plaintext(post_html: str) -> str: + """ + Tries to do the inverse of the linebreaks filter. + """ + # TODO: Handle HTML entities + # Remove all newlines, then replace br with a newline and /p with two (one comes from bleach) + post_html = post_html.replace("\n", "").replace("<br>", "\n").replace("</p>", "\n") + # Remove all other HTML and return + cleaner = bleach.Cleaner(tags=[], strip=True, filters=[]) + return cleaner.clean(post_html).strip() |