Style it a bit
[wiki] / app.py
1 import json
2 import pathlib
3
4 import commonmark
5 import flask
6
7 with open(pathlib.Path(__file__).parent / 'config.json') as f:
8     CONFIGURATION = json.loads(f.read())
9
10 app = flask.Flask(__name__)
11
12 def render_markdown_file(name, title):
13     try:
14         with open(pathlib.Path(CONFIGURATION['directory']) / '{}.md'.format(name), 'r') as f:
15             content = commonmark.commonmark(f.read())
16     except FileNotFoundError as e:
17         flask.abort(404)
18
19     return flask.render_template('page.html', content=content, title=title)
20
21 @app.route('/')
22 def index():
23     return render_markdown_file('_index', 'Home')
24
25 @app.route('/p/<name>')
26 def page(name):
27     for ch in name:
28         if not ch in 'abcdefghijklmnopqrstuvwxyz-0123456789':
29             flask.abort(404)
30
31     return render_markdown_file(name, name.replace('-', ' ').title())
32