From: Simon Tatham Date: Thu, 14 Dec 2023 22:40:13 +0000 (+0000) Subject: Support
in HTML. X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=b34412dd9cc9ec36a46c0ef6fd2ef143fbba116f;p=mastodonochrome.git Support
in HTML. --- diff --git a/text.py b/text.py index b75cac0..2b8b627 100644 --- a/text.py +++ b/text.py @@ -461,6 +461,11 @@ class HTMLParser(html.parser.HTMLParser): self.paras = [Paragraph()] self.colourstack = [' '] self.bad_tags = set() + self.indent = 0 + + def new_para(self): + return (Paragraph() if self.indent == 0 + else IndentedParagraph(self.indent, self.indent)) def handle_starttag(self, tag, attrs): attrdict = dict(attrs) @@ -479,11 +484,16 @@ class HTMLParser(html.parser.HTMLParser): if tag == "p": if not self.paras[-1].empty(): self.paras.append(Paragraph()) - self.paras.append(Paragraph()) + self.paras.append(self.new_para()) return if tag == "br": - self.paras.append(Paragraph()) + self.paras.append(self.new_para()) + return + + if tag == "blockquote": + self.indent += 2 + self.paras.append(self.new_para()) return if tag == "code": @@ -510,8 +520,15 @@ class HTMLParser(html.parser.HTMLParser): return if tag == "p": + if not self.paras[-1].empty(): + self.paras.append(self.new_para()) + return + + if tag == "blockquote": if not self.paras[-1].empty(): self.paras.append(Paragraph()) + self.indent -= 2 + self.paras.append(self.new_para()) return if tag in {"a", "code", "strong", "em", "i"}: