legacy-dotfiles/pages/management/commands/parse_markdown.py
2011-11-05 14:58:57 +01:00

42 lines
1.7 KiB
Python

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)
mdtuple = os.path.splitext(file)
mdname = '%s/%s' % (subdir, mdtuple[0])
htmlpath = '%s/templates/html_pages/%s' % (DEPLOY_PATH, mdname)
htmlfile = '%s/index.html' % htmlpath
if options['verbosity'] == '3':
print 'Subdir: ', subdir
print 'Mdfile: ', mdfile
print 'Mdtuple: ', mdtuple
print 'Htmlpath: ', htmlpath
print 'Htmlfile: ', htmlfile
if mdtuple[1] == '.mdwn' and 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,
wikilinks = 'wikilinks(base_url=%s/)' % subdir
def_list = 'def_list'
markdown.markdownFromFile(input=mdfile, output=htmlfile, encoding="utf-8",
extensions=[wikilinks, def_list])
print ' ... succeeded'