qmsk_www_pages: markdown
authorTero Marttila <terom@paivola.fi>
Sun, 14 Sep 2014 05:23:43 +0300
changeset 85 aa437984ddc5
parent 84 eabfeaa7b279
child 86 b5769d01793d
qmsk_www_pages: markdown
qmsk_www_pages/pages.py
requirements.txt
--- a/qmsk_www_pages/pages.py	Sun Sep 14 04:58:16 2014 +0300
+++ b/qmsk_www_pages/pages.py	Sun Sep 14 05:23:43 2014 +0300
@@ -5,6 +5,8 @@
 import logging; log = logging.getLogger('qmsk_www_pages.pages')
 import os, os.path
 
+import markdown
+
 class NotFound (Exception):
     pass
 
@@ -320,10 +322,28 @@
     def render_html (self, request):
         return self.open().read()
 
+class MarkdownPage (Page):
+    FORMAT = 'html5'
+
+    def __init__ (self, path, name, tree, parents,
+            format=FORMAT,
+            **opts
+    ) :
+        super(MarkdownPage, self).__init__(path, name, tree, parents, **opts)
+
+        self.format = format
+
+    def render_html (self, request):
+        return markdown.markdown(self.open().read(),
+            output_format   = self.format,
+        )
+
 SITE = Site.lookup()
 
 TYPES = {
     'html':         HTML_Page,
+    'md':           MarkdownPage,
+    'markdown':     MarkdownPage,
 }
 
 def page (page):
--- a/requirements.txt	Sun Sep 14 04:58:16 2014 +0300
+++ b/requirements.txt	Sun Sep 14 05:23:43 2014 +0300
@@ -1,1 +1,2 @@
 Django==1.7
+Markdown==2.5