manetta
3 years ago
commit
64e34e41cf
7 changed files with 110 additions and 0 deletions
@ -0,0 +1,3 @@ |
|||
flask |
|||
etherpump |
|||
weasyprint |
@ -0,0 +1,64 @@ |
|||
# https://github.com/python-escpos/python-escpos |
|||
# https://python-escpos.readthedocs.io/en/latest/ |
|||
|
|||
import flask |
|||
from flask import request |
|||
# import flask_apscheduler |
|||
import urllib, json |
|||
import os |
|||
|
|||
# Create the application. |
|||
APP = flask.Flask(__name__) |
|||
|
|||
# Recurrent actions |
|||
# scheduler = flask_apscheduler.APScheduler() |
|||
# scheduler.api_enabled = False |
|||
# scheduler.init_app(APP) |
|||
# scheduler.start() |
|||
|
|||
# @scheduler.task('interval', id='check', minutes=1) |
|||
# def action(): |
|||
# print('Do something recurrent') |
|||
|
|||
pads = [ |
|||
'post-script.md', |
|||
'post-script.css' |
|||
] |
|||
DIR_PATH = '/home/mb/post-script-interface' |
|||
|
|||
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('/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 post-script.css --toc --toc-depth=1 --standalone { DIR_PATH }/static/post-script.md -o { DIR_PATH }/static/post-script.html') |
|||
|
|||
return flask.render_template('html.html') |
|||
|
|||
@APP.route('/pdf/', methods=['GET']) |
|||
def pdf(): |
|||
# download the main post-script pad + stylesheet pad |
|||
download(pads) |
|||
# generate html page |
|||
os.system(f'pandoc -f markdown -t html -c post-script.css --toc --toc-depth=1 --standalone { DIR_PATH }/static/post-script.md -o { DIR_PATH }/static/post-script.html') |
|||
# generate pdf |
|||
os.system(f'{ DIR_PATH }/venv/bin/weasyprint -s { DIR_PATH }/static/post-script.css { DIR_PATH }/static/post-script.html { DIR_PATH }/static/post-script.pdf') |
|||
|
|||
return flask.render_template('pdf.html') |
|||
|
|||
@APP.route('/stylesheet/', methods=['GET']) |
|||
def stylesheet(): |
|||
return flask.render_template('stylesheet.html') |
|||
|
|||
if __name__ == '__main__': |
|||
APP.debug=True |
|||
APP.run(port=5577) |
@ -0,0 +1,21 @@ |
|||
<!DOCTYPE html> |
|||
<html lang='en'> |
|||
<head> |
|||
<meta charset="utf-8" /> |
|||
<title>post-script</title> |
|||
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='main.css')}}"> |
|||
</head> |
|||
<body> |
|||
<h1>post-script</h1> |
|||
<div id="nav"> |
|||
<a href="/">pad</a>: <input type="text" name="pad" value="https://pad.vvvvvvaria.org/post-script.md">, |
|||
<a href="/html/">html</a>, |
|||
<a href="/pdf/">pdf</a>, |
|||
<a href="/stylesheet/">stylesheet</a>: <input type="text" name="pad" value="https://pad.vvvvvvaria.org/post-script.css">, |
|||
</div> |
|||
<div id="wrapper"> |
|||
{% block content %} |
|||
{% endblock %} |
|||
</div> |
|||
</body> |
|||
</html> |
@ -0,0 +1,5 @@ |
|||
{% extends "base.html" %} |
|||
|
|||
{% block content %} |
|||
<iframe src="{{ url_for('static', filename='post-script.html')}}"></iframe> |
|||
{% endblock %} |
@ -0,0 +1,5 @@ |
|||
{% extends "base.html" %} |
|||
|
|||
{% block content %} |
|||
<iframe src="https://pad.vvvvvvaria.org/post-script.md"></iframe> |
|||
{% endblock %} |
@ -0,0 +1,6 @@ |
|||
{% extends "base.html" %} |
|||
|
|||
{% block content %} |
|||
<iframe src="{{ url_for('static', filename='post-script.pdf')}}"></iframe> |
|||
{% endblock %} |
|||
|
@ -0,0 +1,6 @@ |
|||
{% extends "base.html" %} |
|||
|
|||
{% block content %} |
|||
<iframe src="https://pad.vvvvvvaria.org/post-script.css"></iframe> |
|||
{% endblock %} |
|||
|
Loading…
Reference in new issue