Pré-requis : Python3.
Installer et activer un environnement virtuel :
$ python3 -m venv venv
$ source venv/bin/activate
Installer les dépendances :
$ make install
Vous avez aussi besoin d’avoir un Pandoc-API qui tourne quelque part :
https://gitlab.huma-num.fr/ecrinum/stylo/pandoc-api
Créer un fichier d’environnement :
$ touch .env
Y mettre l’adresse de la Pandoc-API propre à l’environnement, ça peut être :
SE_PANDOC_API_BASE_URL="http://127.0.0.1:8000/latest/"
Y mettre aussi le token GraqhQL de l’instance Stylo vers laquelle vous pointez :
SE_GRAPHQL_TOKEN="eyJhbGciO...YPlED4WM"
D’autres variables sont définies dans le fichier app/config.py
, voir ci-dessous.
Vous pouvez les écraser dans votre fichier .env
.
Voir le fichier styloexport/config.py
Valeur par défaut : http://127.0.0.1:8000/latest/
Valeur par défaut : None
(désactivé)
Temps (en secondes) d’attente de la génération du PDF côté Pandoc-API.
Valeur par défaut : None
(désactivé)
Temps (en secondes) d’attente de la requête GRAPHQL côté Stylo.
Valeur par défaut : "https://stylo.huma-num.fr https://stylo-dev.huma-num.fr"
Liste des URLs d’instances à séparer par des espaces
à partir desquelles l’export est autorisé.
Valeur par défaut : (Path() / "styloexport" / "downloads").resolve()
Chemin vers lequel sont récupérées les archives et images téléchargées.
Valeur par défaut : (Path() / "styloexport" / "styles").resolve()
Chemin vers lequel sont récupérées les styles téléchargées depuis Zotero.
Valeur par défaut : humanities
Liste (séparateur virgule ,
) des catégories de styles Zotero conservées dans notre sous-liste.
Valeur par défaut : [".png", ".jpg", ".jpeg", ".gif"]
Liste des extensions autorisées/reconnues pour les images.
Valeur par défaut : 60
(1 minute)
Temps (en secondes) d’attente pour le téléchargement des images des articles.
Valeur par défaut : ""
JSON token privé qui doit être défini pour accéder aux articles via l’API graphql.
Valeur par défaut :
SE_EDITIONS = {
"generique": {
"name": "Générique",
"exports": [
("originals", "fichiers originaux (md, yaml et bib)"),
("html", "conversion HTML"),
("tex", "conversion LaTeX"),
("pdf", "conversion PDF"),
("odt", "conversion ODT (OpenOffice)"),
("docx", "conversion DOCX (Word)"),
("icml", "conversion ICML (Impress)"),
("xml-tei", "conversion XML-TEI"),
("xml-erudit", "conversion XML Erudit"),
("xml-tei-metopes", "conversion XML-TEI Commons (Métopes)"),
],
},
"sens-public": {
"name": "Sens-Public",
"exports": {
"all": {
"name": "Tous les exports",
"formats": [
"originals",
"html",
"tex",
"pdf",
"xml-tei",
"xml-erudit",
],
}
},
"images_path": "media",
},
}
Définition des éditions disponibles et de leurs particularités.
Les clefs name
sont rendues visibles dans l’interface.
Lancer le serveur local :
$ make run
Aller sur http://127.0.0.1:5000/
Installer les dépendances :
$ make dev
Lancer la commande :
$ make test
Optionnellement, la commande ptw
permet de rafraîchir le lancement des
tests à chaque modification du code (ou des tests).
On utilise les styles bibliographiques depuis
le site de Zotero,
ils sont téléchargés en fonction des domaines définis dans SE_STYLES_FIELDS
:
$ make styles
styles/styles-zotero.json
qui est relativement gros !
Pour une mise à jour des styles, il faut commencer par supprimer le contenu du dossier styles
puis lancer la commande générale make styles
.
Lors d’un ajout de type de templates
, il faut ensuite lancer la commande FLASK_APP=styloexport flask styles custom
afin que les feuilles de style soient copiées dans le dossier principal des styles
.
Il faut s’assurer préallablement :
- Que les tests passent :
make test
- Que le code coverage reste à plus de 90% dans le résultat ci-dessus
- Que le code soit propre :
make lint
- Ajouter le nom de la dépendance dans
pyproject.toml
- Lancer
make deps
- Installer les nouvelles dépendances :
make dev
Un exemple avec gunicorn :
$ pip install gunicorn
$ make production