import flask from flask import request import urllib, json import os # Create the application. APP = flask.Flask(__name__) # --- #The following three lines are the variables that need to be changed when making a new project. PROJECTNAME = 'dsn' DIR_PATH = '/home/systers/dsn-documentation' │·························· PORTNUMBER = 5599 # --- pads = [ f'{ PROJECTNAME }.md', f'{ PROJECTNAME }.css' ] def download(pads): # using etherpump for pad in pads: os.system(f'{ DIR_PATH }/venv/bin/etherpump gettext { pad } > { DIR_PATH }/static/{ pad }') @APP.route('/', methods=['GET']) def pad(): return flask.render_template('pad.html') @APP.route('/pagedjs/', methods=['GET', 'POST']) def pagedjs(): # download the main post-script pad + stylesheet pad download(pads) # generate html page with the pandoc template (with paged.js inserted in the header) os.system(f'pandoc -f markdown -t html -c { PROJECTNAME }.css --toc --toc-depth=1 --template { DIR_PATH }/templates/pandoc-template-pagedjs.html --standalone { DIR_PATH }/static/{ PROJECTNAME }.md -o { DIR_PATH }/static/{ PROJECTNAME }.pagedjs.html') return open('static/{ PROJECTNAME }.pagedjs.html', 'r').read() @APP.route('/html/', methods=['GET', 'POST']) def html(): # download the main post-script pad + stylesheet pad download(pads) # generate html page os.system(f'pandoc -f markdown -t html -c { PROJECTNAME }.css --toc --toc-depth=1 --standalone { DIR_PATH }/static/{ PROJECTNAME }.md -o { DIR_PATH }/static/{ PROJECTNAME }.html') return flask.render_template('html.html') @APP.route('/stylesheet/', methods=['GET']) def stylesheet(): return flask.render_template('stylesheet.html') if __name__ == '__main__': APP.debug=True APP.run(port={ PORTNUMBER })