diff options
Diffstat (limited to 'nikola/plugins/compile_markdown/__init__.py')
| -rw-r--r-- | nikola/plugins/compile_markdown/__init__.py | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/nikola/plugins/compile_markdown/__init__.py b/nikola/plugins/compile_markdown/__init__.py index 1a58a98..5eb25c8 100644 --- a/nikola/plugins/compile_markdown/__init__.py +++ b/nikola/plugins/compile_markdown/__init__.py @@ -8,11 +8,11 @@ # distribute, sublicense, and/or sell copies of the # Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: -# +# # The above copyright notice and this permission notice # shall be included in all copies or substantial portions of # the Software. -# +# # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY # KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR @@ -31,7 +31,7 @@ import re try: from markdown import markdown except ImportError: - markdown = None + markdown = None # NOQA from nikola.plugin_categories import PageCompiler @@ -43,7 +43,8 @@ class CompileMarkdown(PageCompiler): def compile_html(self, source, dest): if markdown is None: - raise Exception('To build this site, you need to install the "markdown" package.') + raise Exception('To build this site, you need to install the ' + '"markdown" package.') try: os.makedirs(os.path.dirname(dest)) except: @@ -52,11 +53,27 @@ class CompileMarkdown(PageCompiler): with codecs.open(source, "r", "utf8") as in_file: data = in_file.read() output = markdown(data, ['fenced_code', 'codehilite']) - # remove the H1 because there is "title" h1. - output = re.sub(r'<h1>.*</h1>', '', output) + # h1 is reserved for the title so increment all header levels + for n in reversed(range(1, 9)): + output = re.sub('<h%i>' % n, '<h%i>' % (n + 1), output) + output = re.sub('</h%i>' % n, '</h%i>' % (n + 1), output) # python-markdown's highlighter uses the class 'codehilite' to wrap # code, # instead of the standard 'code'. None of the standard # pygments stylesheets use this class, so swap it to be 'code' output = re.sub(r'(<div[^>]+class="[^"]*)codehilite([^>]+)', r'\1code\2', output) out_file.write(output) + + def create_post(self, path, onefile=False, title="", slug="", date="", + tags=""): + with codecs.open(path, "wb+", "utf8") as fd: + if onefile: + fd.write('<!-- \n') + fd.write('.. title: %s\n' % title) + fd.write('.. slug: %s\n' % slug) + fd.write('.. date: %s\n' % date) + fd.write('.. tags: %s\n' % tags) + fd.write('.. link: \n') + fd.write('.. description: \n') + fd.write('-->\n\n') + fd.write("\nWrite your post here.") |
