From 3146a2007f808d74a157b1b31e12187824d691b0 Mon Sep 17 00:00:00 2001 From: Ben Kurtovic Date: Thu, 26 Jul 2012 14:27:24 -0400 Subject: [PATCH] strip_code() takes a collapse argument to remove extraneous newlines. --- mwparserfromhell/wikicode.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/mwparserfromhell/wikicode.py b/mwparserfromhell/wikicode.py index e133fec..ca55b97 100644 --- a/mwparserfromhell/wikicode.py +++ b/mwparserfromhell/wikicode.py @@ -206,7 +206,7 @@ class Wikicode(StringMixIn): def filter_text(self, recursive=False, matches=None, flags=FLAGS): return list(self.ifilter_text(recursive, matches, flags)) - def strip_code(self, normalize=True): + def strip_code(self, normalize=True, collapse=True): nodes = [] for node in self.nodes: if isinstance(node, Text): @@ -217,7 +217,13 @@ class Wikicode(StringMixIn): else: nodes.append(node) - return u" ".join(nodes) + if collapse: + stripped = u"".join(nodes).strip("\n") + while "\n\n\n" in stripped: + stripped = stripped.replace("\n\n\n", "\n\n") + return stripped + else: + return u"".join(nodes) def get_tree(self): marker = object() # Random object we can find with certainty in a list