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)
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":
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"}: