summaryrefslogtreecommitdiffstats
path: root/nikola/plugins/compile_markdown/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'nikola/plugins/compile_markdown/__init__.py')
-rw-r--r--nikola/plugins/compile_markdown/__init__.py29
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.")