How is wiki-to-print made?: Difference between revisions
Jump to navigation
Jump to search
(→Code) |
(→Code) |
||
Line 17: | Line 17: | ||
├── static | ├── static | ||
├── templates | ├── templates | ||
└── web-interface.py | └── web-interface.py | ||
* <code>Makefile<code>: script you can use to install or run the flask application | |||
* <code>api.py</code>: script with all the functions that are used by the flask application | |||
* <code>web-interface.py</code>: the flask application | * <code>web-interface.py</code>: the flask application | ||
==To install wiki-to-print== | ==To install wiki-to-print== |
Revision as of 15:10, 21 August 2023
Technically seen, wiki-to-print is a web application made with Flask, that can be installed on the same server as where the MediaWiki is installed.
In practice, it's a DIY configuration that glues different things together: it takes a wiki page and a CSS stylesheet as input sources and renders them into a HTML page and a PDF preview page.
Code
The source code can be found at: https://git.vvvvvvaria.org/varia/wiki-to-print/.
The git repository contains the following files and folders:
├── Makefile ├── api.py ├── plugins ├── readme.md ├── requirements.txt ├── static ├── templates └── web-interface.py
Makefile
: script you can use to install or run the flask application
api.py
: script with all the functions that are used by the flask applicationweb-interface.py
: the flask application
To install wiki-to-print
make setup
: makes a virtual environment and installs all the requirements
- edit
config.json
To run wiki-to-print
make local
: runs the Flask application locally
make server
: runs the Flask application remotely with Gunicorn, which we used to work with a subdirectory (we use https://cc.vvvvvvaria.org/wiki-to-print/ as the root of this Flask application)
Flask application
The Flask application is based around the following URLs/routes:
button
URL/route
Flask action
CSS
https://cc.vvvvvvaria.org/wiki-to-print/static/Test.css
renders PdfCSS:Test as CSS stylesheet
HTML
https://cc.vvvvvvaria.org/wiki-to-print/html/Test
renders Pdf:Test as HTML page, using PdfCSS:Test as CSS stylesheet
PDF
https://cc.vvvvvvaria.org/wiki-to-print/pdf/Test
renders Pdf:Test as PDF preview page (using Paged.js), using PdfCSS:Test as CSS stylesheet
Update text
https://cc.vvvvvvaria.org/wiki-to-print/update/Test
downloads all the text from Pdf:Test using the Mediawiki API and saves it to Test.json (in HTML)
Update Media
https://cc.vvvvvvaria.org/wiki-to-print/update/Test?full=true
downloads all the text + images from Pdf:Test using the Mediawiki API and saves them to ./static/images/