diff options
author | Waylan Limberg <waylan@gmail.com> | 2013-08-07 22:17:30 -0400 |
---|---|---|
committer | Waylan Limberg <waylan@gmail.com> | 2013-08-07 22:17:30 -0400 |
commit | d12d2c95b42c5fc0910b13859001755d71ad3438 (patch) | |
tree | 6f62507415a7c86e71985d07945d89f98607ccca /markdown | |
parent | a64592d5f288d0b83b11aa7d4eade728d5d5fb91 (diff) | |
download | markdown-d12d2c95b42c5fc0910b13859001755d71ad3438.tar.gz markdown-d12d2c95b42c5fc0910b13859001755d71ad3438.tar.bz2 markdown-d12d2c95b42c5fc0910b13859001755d71ad3438.zip |
Allow extensions to register serializers
Setting output_format must happen after extensions are loaded. Only in that
way can an extension register a serializer so that it will then be available
to be used with the output_format keyword. A test has been added to avoid
this regression from happening again in the future.
Fixes #238, partially reverses commit 41cc055 and provides a better fix for
Diffstat (limited to 'markdown')
-rw-r--r-- | markdown/__init__.py | 2 | ||||
-rw-r--r-- | markdown/extensions/footnotes.py | 16 |
2 files changed, 10 insertions, 8 deletions
diff --git a/markdown/__init__.py b/markdown/__init__.py index 3fd5efa..275ed2e 100644 --- a/markdown/__init__.py +++ b/markdown/__init__.py @@ -133,9 +133,9 @@ class Markdown(object): self.references = {} self.htmlStash = util.HtmlStash() - self.set_output_format(kwargs.get('output_format', 'xhtml1')) self.registerExtensions(extensions=kwargs.get('extensions', []), configs=kwargs.get('extension_configs', {})) + self.set_output_format(kwargs.get('output_format', 'xhtml1')) self.reset() def build_parser(self): diff --git a/markdown/extensions/footnotes.py b/markdown/extensions/footnotes.py index 65ed597..9f93ad1 100644 --- a/markdown/extensions/footnotes.py +++ b/markdown/extensions/footnotes.py @@ -69,9 +69,6 @@ class FootnoteExtension(Extension): md.registerExtension(self) self.parser = md.parser self.md = md - self.sep = ':' - if self.md.output_format in ['html5', 'xhtml5']: - self.sep = '-' # Insert a preprocessor before ReferencePreprocessor md.preprocessors.add("footnote", FootnotePreprocessor(self), "<reference") @@ -113,19 +110,24 @@ class FootnoteExtension(Extension): """ Store a footnote for later retrieval. """ self.footnotes[id] = text + def get_separator(self): + if self.md.output_format in ['html5', 'xhtml5']: + return '-' + return ':' + def makeFootnoteId(self, id): """ Return footnote link id. """ if self.getConfig("UNIQUE_IDS"): - return 'fn%s%d-%s' % (self.sep, self.unique_prefix, id) + return 'fn%s%d-%s' % (self.get_separator(), self.unique_prefix, id) else: - return 'fn%s%s' % (self.sep, id) + return 'fn%s%s' % (self.get_separator(), id) def makeFootnoteRefId(self, id): """ Return footnote back-link id. """ if self.getConfig("UNIQUE_IDS"): - return 'fnref%s%d-%s' % (self.sep, self.unique_prefix, id) + return 'fnref%s%d-%s' % (self.get_separator(), self.unique_prefix, id) else: - return 'fnref%s%s' % (self.sep, id) + return 'fnref%s%s' % (self.get_separator(), id) def makeFootnotesDiv(self, root): """ Return div of footnotes as et Element. """ |