| Index: third_party/Python-Markdown/markdown/postprocessors.py | 
| diff --git a/third_party/Python-Markdown/markdown/postprocessors.py b/third_party/Python-Markdown/markdown/postprocessors.py | 
| deleted file mode 100644 | 
| index 2d4dcb589ee0cfb1f580b55c4a6eab16f9d9f339..0000000000000000000000000000000000000000 | 
| --- a/third_party/Python-Markdown/markdown/postprocessors.py | 
| +++ /dev/null | 
| @@ -1,108 +0,0 @@ | 
| -""" | 
| -POST-PROCESSORS | 
| -============================================================================= | 
| - | 
| -Markdown also allows post-processors, which are similar to preprocessors in | 
| -that they need to implement a "run" method. However, they are run after core | 
| -processing. | 
| - | 
| -""" | 
| - | 
| -from __future__ import absolute_import | 
| -from __future__ import unicode_literals | 
| -from . import util | 
| -from . import odict | 
| -import re | 
| - | 
| - | 
| -def build_postprocessors(md_instance, **kwargs): | 
| -    """ Build the default postprocessors for Markdown. """ | 
| -    postprocessors = odict.OrderedDict() | 
| -    postprocessors["raw_html"] = RawHtmlPostprocessor(md_instance) | 
| -    postprocessors["amp_substitute"] = AndSubstitutePostprocessor() | 
| -    postprocessors["unescape"] = UnescapePostprocessor() | 
| -    return postprocessors | 
| - | 
| - | 
| -class Postprocessor(util.Processor): | 
| -    """ | 
| -    Postprocessors are run after the ElementTree it converted back into text. | 
| - | 
| -    Each Postprocessor implements a "run" method that takes a pointer to a | 
| -    text string, modifies it as necessary and returns a text string. | 
| - | 
| -    Postprocessors must extend markdown.Postprocessor. | 
| - | 
| -    """ | 
| - | 
| -    def run(self, text): | 
| -        """ | 
| -        Subclasses of Postprocessor should implement a `run` method, which | 
| -        takes the html document as a single text string and returns a | 
| -        (possibly modified) string. | 
| - | 
| -        """ | 
| -        pass  # pragma: no cover | 
| - | 
| - | 
| -class RawHtmlPostprocessor(Postprocessor): | 
| -    """ Restore raw html to the document. """ | 
| - | 
| -    def run(self, text): | 
| -        """ Iterate over html stash and restore "safe" html. """ | 
| -        for i in range(self.markdown.htmlStash.html_counter): | 
| -            html, safe = self.markdown.htmlStash.rawHtmlBlocks[i] | 
| -            if self.markdown.safeMode and not safe: | 
| -                if str(self.markdown.safeMode).lower() == 'escape': | 
| -                    html = self.escape(html) | 
| -                elif str(self.markdown.safeMode).lower() == 'remove': | 
| -                    html = '' | 
| -                else: | 
| -                    html = self.markdown.html_replacement_text | 
| -            if (self.isblocklevel(html) and | 
| -               (safe or not self.markdown.safeMode)): | 
| -                text = text.replace( | 
| -                    "<p>%s</p>" % | 
| -                    (self.markdown.htmlStash.get_placeholder(i)), | 
| -                    html + "\n" | 
| -                ) | 
| -            text = text.replace( | 
| -                self.markdown.htmlStash.get_placeholder(i), html | 
| -            ) | 
| -        return text | 
| - | 
| -    def escape(self, html): | 
| -        """ Basic html escaping """ | 
| -        html = html.replace('&', '&') | 
| -        html = html.replace('<', '<') | 
| -        html = html.replace('>', '>') | 
| -        return html.replace('"', '"') | 
| - | 
| -    def isblocklevel(self, html): | 
| -        m = re.match(r'^\<\/?([^ >]+)', html) | 
| -        if m: | 
| -            if m.group(1)[0] in ('!', '?', '@', '%'): | 
| -                # Comment, php etc... | 
| -                return True | 
| -            return util.isBlockLevel(m.group(1)) | 
| -        return False | 
| - | 
| - | 
| -class AndSubstitutePostprocessor(Postprocessor): | 
| -    """ Restore valid entities """ | 
| - | 
| -    def run(self, text): | 
| -        text = text.replace(util.AMP_SUBSTITUTE, "&") | 
| -        return text | 
| - | 
| - | 
| -class UnescapePostprocessor(Postprocessor): | 
| -    """ Restore escaped chars """ | 
| - | 
| -    RE = re.compile('%s(\d+)%s' % (util.STX, util.ETX)) | 
| - | 
| -    def unescape(self, m): | 
| -        return util.int2str(int(m.group(1))) | 
| - | 
| -    def run(self, text): | 
| -        return self.RE.sub(self.unescape, text) | 
|  |