diff options
Diffstat (limited to 'nikola/plugins/compile/markdown/__init__.py')
| -rw-r--r-- | nikola/plugins/compile/markdown/__init__.py | 49 |
1 files changed, 26 insertions, 23 deletions
diff --git a/nikola/plugins/compile/markdown/__init__.py b/nikola/plugins/compile/markdown/__init__.py index d0fa66a..4182626 100644 --- a/nikola/plugins/compile/markdown/__init__.py +++ b/nikola/plugins/compile/markdown/__init__.py @@ -34,30 +34,14 @@ import re try: from markdown import markdown - - from nikola.plugins.compile.markdown.mdx_nikola import NikolaExtension - nikola_extension = NikolaExtension() - - from nikola.plugins.compile.markdown.mdx_gist import GistExtension - gist_extension = GistExtension() - - from nikola.plugins.compile.markdown.mdx_podcast import PodcastExtension - podcast_extension = PodcastExtension() - except ImportError: markdown = None # NOQA nikola_extension = None gist_extension = None podcast_extension = None - -try: - from collections import OrderedDict -except ImportError: - OrderedDict = dict # NOQA - from nikola.plugin_categories import PageCompiler -from nikola.utils import makedirs, req_missing +from nikola.utils import makedirs, req_missing, write_metadata class CompileMarkdown(PageCompiler): @@ -65,9 +49,22 @@ class CompileMarkdown(PageCompiler): name = "markdown" demote_headers = True - extensions = [gist_extension, nikola_extension, podcast_extension] + extensions = [] site = None + def set_site(self, site): + for plugin_info in site.plugin_manager.getPluginsOfCategory("MarkdownExtension"): + if plugin_info.name in site.config['DISABLED_PLUGINS']: + site.plugin_manager.removePluginFromCategory(plugin_info, "MarkdownExtension") + continue + + site.plugin_manager.activatePluginByName(plugin_info.name) + plugin_info.plugin_object.set_site(site) + self.extensions.append(plugin_info.plugin_object) + plugin_info.plugin_object.short_help = plugin_info.description + + return super(CompileMarkdown, self).set_site(site) + def compile_html(self, source, dest, is_two_file=True): if markdown is None: req_missing(['markdown'], 'build this site (compile Markdown)') @@ -81,15 +78,21 @@ class CompileMarkdown(PageCompiler): output = markdown(data, self.extensions) out_file.write(output) - def create_post(self, path, onefile=False, is_page=False, **kw): - metadata = OrderedDict() + def create_post(self, path, **kw): + content = kw.pop('content', None) + onefile = kw.pop('onefile', False) + # is_page is not used by create_post as of now. + kw.pop('is_page', False) + + metadata = {} metadata.update(self.default_metadata) metadata.update(kw) makedirs(os.path.dirname(path)) + if not content.endswith('\n'): + content += '\n' with codecs.open(path, "wb+", "utf8") as fd: if onefile: fd.write('<!-- \n') - for k, v in metadata.items(): - fd.write('.. {0}: {1}\n'.format(k, v)) + fd.write(write_metadata(metadata)) fd.write('-->\n\n') - fd.write("Write your {0} here.".format('page' if is_page else 'post')) + fd.write(content) |
