summaryrefslogtreecommitdiffstats
path: root/pages/management/commands/parse_markdown.py
blob: 4b2e774220303a90abcbe4d3193d7fce7981a814 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import os
import markdown

from django.core.management.base import BaseCommand, CommandError

from settings import MARKDOWN_PATH, DEPLOY_PATH

ignore_dir = '.git'

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):
            if ignore_dir not in root:
                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,
                        wikiExtension = 'wikilinks(base_url=%s/)' % subdir
                        markdown.markdownFromFile(input=mdfile, output=htmlfile, encoding="utf-8",
                                                  extensions=[wikiExtension])
                        print ' ... succeeded'