summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom Willemsen2011-11-05 00:33:54 +0100
committerGravatar Tom Willemsen2011-11-05 00:33:54 +0100
commitcb59bfad718fb4c434acd3280eba01dc734e74e4 (patch)
treef8fa84433ce610574e32fb51939953d22e29b4db
parente533b3b82e254e2c22ed40a570b5e8b31a1f126b (diff)
parentfc51d7160df5ce97bfeba64a5af8efe2962223dd (diff)
downloaddotfiles-cb59bfad718fb4c434acd3280eba01dc734e74e4.tar.gz
dotfiles-cb59bfad718fb4c434acd3280eba01dc734e74e4.zip
Merge branch 'markdown-powered'
-rw-r--r--local_settings.py.example1
-rw-r--r--pages/__init__.py0
-rw-r--r--pages/management/__init__.py0
-rw-r--r--pages/management/commands/__init__.py0
-rw-r--r--pages/management/commands/parse_markdown.py31
-rw-r--r--pages/models.py3
-rw-r--r--pages/urls.py5
-rw-r--r--pages/views.py18
-rw-r--r--settings.py1
-rw-r--r--templates/.gitignore1
-rw-r--r--templates/pages/index.html5
-rw-r--r--urls.py4
12 files changed, 69 insertions, 0 deletions
diff --git a/local_settings.py.example b/local_settings.py.example
index 6a166a7..fe6c1aa 100644
--- a/local_settings.py.example
+++ b/local_settings.py.example
@@ -1,4 +1,5 @@
DEBUG = False
+MARKDOWN_PATH = ''
DATABASES = {
'default': {
diff --git a/pages/__init__.py b/pages/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/pages/__init__.py
diff --git a/pages/management/__init__.py b/pages/management/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/pages/management/__init__.py
diff --git a/pages/management/commands/__init__.py b/pages/management/commands/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/pages/management/commands/__init__.py
diff --git a/pages/management/commands/parse_markdown.py b/pages/management/commands/parse_markdown.py
new file mode 100644
index 0000000..8c193df
--- /dev/null
+++ b/pages/management/commands/parse_markdown.py
@@ -0,0 +1,31 @@
+import os
+import markdown
+
+from django.core.management.base import BaseCommand, CommandError
+
+from settings import MARKDOWN_PATH, DEPLOY_PATH
+
+class Command(BaseCommand):
+ help = 'Parse markdown files in %s' % MARKDOWN_PATH
+
+ def handle(self, *args, **options):
+ for root, dirs, files in os.walk(MARKDOWN_PATH):
+ for file in files:
+ subdir = root.replace(MARKDOWN_PATH, "")
+ mdfile = '%s/%s' % (root, file)
+ mdname = '%s/%s' % (subdir, os.path.splitext(file)[0])
+ htmlpath = '%s/templates/html_pages/%s' % (DEPLOY_PATH, mdname)
+ htmlfile = '%s/index.html' % htmlpath
+
+ if os.path.exists(mdfile) and not os.path.exists(htmlfile) \
+ or os.path.getmtime(mdfile) > os.path.getmtime(htmlfile):
+
+ if not os.path.exists(htmlpath):
+ os.makedirs(htmlpath)
+
+ md = markdown.Markdown()
+ print 'Converting ', mdname, '-->', htmlfile,
+ wikiExtension = 'wikilinks(base_url=%s/)' % subdir
+ markdown.markdownFromFile(input=mdfile, output=htmlfile, encoding="utf-8", extensions=[wikiExtension])
+ print ' ... succeeded'
+
diff --git a/pages/models.py b/pages/models.py
new file mode 100644
index 0000000..71a8362
--- /dev/null
+++ b/pages/models.py
@@ -0,0 +1,3 @@
+from django.db import models
+
+# Create your models here.
diff --git a/pages/urls.py b/pages/urls.py
new file mode 100644
index 0000000..1c0cf82
--- /dev/null
+++ b/pages/urls.py
@@ -0,0 +1,5 @@
+from django.conf.urls.defaults import *
+
+urlpatterns = patterns('pages.views',
+ (r'^(?P<page>.+)/$', 'index'),
+)
diff --git a/pages/views.py b/pages/views.py
new file mode 100644
index 0000000..7a44701
--- /dev/null
+++ b/pages/views.py
@@ -0,0 +1,18 @@
+import os.path
+
+from django.http import Http404
+from django.views.generic.simple import direct_to_template
+
+from settings import DEPLOY_PATH
+
+def index(request, page):
+
+ template = 'html_pages/%s/index.html' % page
+ if not os.path.exists('%s/templates/%s' % (DEPLOY_PATH, template)):
+ raise Http404
+
+ c = {
+ "page": template,
+ }
+
+ return direct_to_template(request, "pages/index.html", c)
diff --git a/settings.py b/settings.py
index 5a6641e..50e4d11 100644
--- a/settings.py
+++ b/settings.py
@@ -87,4 +87,5 @@ INSTALLED_APPS = (
'main',
'blog',
'projects',
+ 'pages',
)
diff --git a/templates/.gitignore b/templates/.gitignore
new file mode 100644
index 0000000..c46f106
--- /dev/null
+++ b/templates/.gitignore
@@ -0,0 +1 @@
+html_pages
diff --git a/templates/pages/index.html b/templates/pages/index.html
new file mode 100644
index 0000000..18988f9
--- /dev/null
+++ b/templates/pages/index.html
@@ -0,0 +1,5 @@
+{% extends "base.html" %}
+
+{% block content %}
+{% include page %}
+{% endblock %}
diff --git a/urls.py b/urls.py
index a5e253d..3b24bf7 100644
--- a/urls.py
+++ b/urls.py
@@ -15,4 +15,8 @@ urlpatterns = patterns('',
if DEBUG:
urlpatterns += patterns('',
(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '%s/static' % DEPLOY_PATH})
+ )
+
+urlpatterns += patterns('',
+ (r'^', include("pages.urls"))
)