'Add pieces to Markdown.'

def extendMarkdown(self, md, md_globals):

    md.registerExtension(self)
    self.parser = md.parser
    self.md = md
    md.preprocessors.add(u'footnote', FootnotePreprocessor(self), u'<reference')
    FOOTNOTE_RE = u'\\[\\^([^\\]]*)\\]'
    md.inlinePatterns.add(u'footnote', FootnotePattern(FOOTNOTE_RE, self), u'<reference')
    md.treeprocessors.add(u'footnote', FootnoteTreeprocessor(self), u'_begin')
    md.treeprocessors.add(u'footnote-duplicate', FootnotePostTreeprocessor(self), u'>inline')
    md.postprocessors.add(u'footnote', FootnotePostprocessor(self), u'>amp_substitute')
