Compare commits

...

1 Commits
v0.2.1 ... main

Author SHA1 Message Date
iGor milhit baa7d72a4d
projet: restructure et améliore le projet
- Regroupe les fichiers statiques dans un dossier, et les images dans
  leur propre dossier également.
- Améliore la documentation pour qu'elle soit plus complète, plus
  claire, et plus facilement réutilisable dans un nouveau projet (c'est
  le but d'un modèle de dépôt).
- Ajoute une bibliographie au document d'exemple.
- Réécrit le Makefile et étend les règles disponibles pour répondre aux
  besoin de base (construire les fichiers, un serveur web, la mise à
  jour des fichiers du modède de document).

Co-Authored-by: iGor milhit <igor@milhit.ch>
2025-12-10 14:46:11 +01:00
14 changed files with 244 additions and 47 deletions

3
.gitignore vendored
View File

@ -1,3 +1,4 @@
*.zip
*.pdf
document.html
*.html
!static/template.html

View File

@ -1,38 +1,61 @@
# Modifier le nom et le nombre des fichiers
# contenant les sources du document
input_files := \
document.md
SOURCE_FOLDER := sources
OUTPUT_FILENAME := document
output_file_name := document
TEMPLATE_REPOSITORY := https://git.milhit.ch/igor/bunige-pagedjs-template/releases/download
pandoc := \
pandoc --citeproc \
--css=style.css --template=template.html \
# Liste les fichiers sources.
MD_UNSORTED := $(wildcard $(SOURCE_FOLDER)/*.md)
# Ordonne les fichiers sources sur la base du début numérique du nom des
# fichiers.
MD_SORTED := $(shell printf '%s\n' $(MD_UNSORTED) | sort -t- -k1,1n)
.PHONY: all
all: pdf
# Construit le fichier HTML.
.PHONY: html
html: $(MD_SORTED)
pandoc \
--to=html --standalone \
--template=static/template.html --css=static/style.css \
-V static='./static' \
--citeproc \
--bibliography=./static/references.json --csl=./static/heg-iso-690.csl \
--toc --toc-depth=2 \
--out=$(OUTPUT_FILENAME).html $(MD_SORTED)
pandoc_html := \
$(pandoc) \
--standalone \
--to=html --output=$(output_file_name).html \
$(input_files)
# Construit le fichier PDF.
.PHONY: pdf
pdf: $(MD_SORTED)
pandoc \
--to=pdf --pdf-engine=pagedjs-cli --embed-resources=true \
--template=static/template.html --css=static/style.css \
-V noscript=true -V static='./static' \
--citeproc \
--bibliography=./static/references.json --csl=./static/heg-iso-690.csl \
--toc --toc-depth=2 \
--out=$(OUTPUT_FILENAME).pdf $(MD_SORTED)
pandoc_pdf := \
$(pandoc) \
-V noscript=true \
--embed-resource --to=pdf \
--pdf-engine=pagedjs-cli \
--output=$(output_file_name).pdf \
$(input_files)
# Reconstruit le fichier HTML à la modification des autres fichiers.
.PHONY: watch
watch:
watchexec -r -w . -i document.html \
-- make html
html: $(input_files)
$(pandoc_html)
watch_html: $(input_files)
watchexec -r -w . -i $(output_file_name).html \
" $(pandoc_html)"
pdf: $(input_files)
$(pandoc_pdf)
# Supprime les fichiers construits lorsqu'ils ne sont plus nécessaire.
.PHONY: clean
clean:
rm -f *.html *.pdf
# Lance un serveur web pour servir le HTML.
.PHONY: serve
serve:
watchexec -r -w . "python -m http.server"
# Mets à jour le modèle de document
# Usage: make update VERSION=v1.0.0
.PHONY: update
update:
curl -o modèle.zip $(TEMPLATE_REPOSITORY)/$(VERSION)/$(VERSION).zip
unzip -f -o modèle.zip
rm modèle.zip

143
README.md
View File

@ -3,7 +3,7 @@ title: BUNIGE document
date: 2025-05-07T10:59:48+0200
id: 20250507105948
tags: ["modèle", "BUNIGE", "pagedjs"]
template_version: v0.2.1
template_version: v1.0.1
---
# [Document utilisant le modèle BUNIGE][1]
@ -12,31 +12,158 @@ Dépôt `git` modèle pour faciliter la création d'un document utilisant le mod
de document proche de la charte de la BUNIGE, pour convertir des sources en
markdown avec Pagedjs.
## Licence
## Tâches à réaliser pour adapter ce modèle
Ce projet est sous licence CC-BY-SA 4.0.
- [ ] Mettre à jour le YAML du README.
- [ ] Mettre à jour le titre de niveau 1 du README.
- [ ] Vérifier si le fichier `static/references.json` doit être modifié.
- [ ] Éditer les sources.
- [ ] Adapter les exemples de commandes des parties [`prévisualiser`][2] et
[`génération du PDF`][3].
## Licence et réutilisation
La [licence][4] du projet est la licence *Creative Common by, share alike,
4.0 International*. Elle permet la diffusion et la modification du projet pour
autant que la responsabilité soit mentionnée et que le partage soit fait avec
la même licence.
## Requis
- `pandoc` (obligatoire).
- `pagedjs-cli` (obligatoire, voir la [documentation][5] pour l'installation).
- GNU Make et `watchexe` pour utiliser les [commandes][6].
## Mise à jour des fichiers du modèle
Il faut télécharger l'archive sur la page de la [dernière publication de
version][2] du projet du modèle de document. L'archive est nommée avec le
version][7] du projet du modèle de document. L'archive est nommée avec le
numéro de version correspondant.
```bash
curl -o modèle.zip https://git.milhit.ch/igor/bunige-pagedjs-template/releases/download/v0.2.0/v0.2.0.zip
unzip modèle.zip
unzip -f -o modèle.zip
rm modèle.zip
```
C'est ce que réaliste la commande `make update VERSION=VX.X.X` (voir les
[commandes][6] disponibles).
## Utilisation du modèle
Pour utiliser le modèle de document, il faut rédiger votre document dans un
fichier avec une extension `.md`, autrement dit un fichier au format texte
utilisant la syntaxe markdown. Pour cela, il est possible de s'aider de
l'[exemple][3] fournit dans le projet du modèle de document pour comprendre ce
l'[exemple][8] fournit dans le projet du modèle de document pour comprendre ce
qu'il est possible de faire.
## Utilisation
### Structure du document
Le document est rédigé au format Markdown (plus précisément Pandoc Markdown).
Il est constitué d'un ou de plusieurs fichiers situés dans le dossier
[`sources`][9].
La syntaxe utilise des fonctionnalités propres à la version [Pandoc de
markdown][10]. La génération du PDF s'appuie sur la bibliothèque `pagedjs`, un
modèle HTML (`static/template.html`) et des règles de styles
(`static/styles.css`). Le fichier des règles de style est commenté, ce qui
devrait permettre de comprendre son fonctionnement.
### Prévisualiser
Pour générer le fichier HTML à servir par un serveur web pour le visualiser
dans le navigateur, il faut utiliser `pandoc` avec les paramètres suivants (à
adapter au fichier à générer):
```bash
pandoc --standalone --to=html \
--template=static/template.html --css=static/style.css \
--toc --toc-depth=2 \
--citeproc \
--bibliography=static/references.json --csl=static=heg-iso-690.csl \
-V static="./static" \
--output=document.html \
sources/document.md
```
- `--to=html` pour convertir vers du HTML.
- `--standalone` assure que toutes les dépendances externes sont bien
intégrées dans le fichier généré.
- `--template=` et `--css=` indiquent quel modèle et feuille de style
utiliser.
- `--toc` et `--toc-depth=2` génèrent la table des matière en n'allant pas plus
loin que les titres de niveau 2.
- `--citeproc` indique qu'il faut tenir compte des citations et générer la
bibliographie.
- `--bibliography=""` définit le chemin vers la base de données des références
bibliographique et `--csl=""` donne le chemin vers le style de citation
utilisé.
- `-V static=""` permet de définir le chemin relatif (du point de vue du
fichier HTML fournit par le serveur web local).
- `--output=` précise l'endroit et le nom du fichier de sortie.
Une fois le fichier HTML généré, il faut lancer un serveur web depuis la racine
du projet, par exemple avec `python`:
```bash
python -m http.server
```
Puis, ouvrir un navigateur web à l'URL <http://localhost:8000/document.html>.
Cet affichage permet d'inspecter les règles CSS et de les modifier à la volée
pour comprendre comment améliorer le rendu, et d'imprimer la page web au format
PDF (`ctrl+p`).
### Génération du PDF
Pour générer directement le PDF, il faut lancer la commande `pandoc` suivante:
```bash
pandoc --embed-resources=true -V noscript=true \
-V static="./static"
--citeproc \
--bibliography=static/references.json \
--csl=static/heg-iso-690.csl
--to=pdf --pdf-engine=pagedjs-cli \
--template=static/template.html --css=static/style.css \
--toc --toc-depth=2 \
--output=document.pdf \
sources/document.md
```
- `-V noscript=true`. `-V` permet d'ajouter des variables. La variable
`noscript` vient du `template.html` et permet d'éviter d'ajouter les scripts
utilisé pour la prévisualisation dans le navigateur.
- `--pdf-engine="pagedjs-cli"` indique à `pandoc` quel outil utiliser pour la
construction du PDF.
## Commandes
Si `make` (GNU Make) est installé sur votre système, les commandes suivantes
sont disponibles:
- `make` ou `make pdf`: génère le PDF.
- `make html`: génère le HTML.
- `make watch`: génère le HTML et relance la génération si des fichiers
sont modifiés (utilise `watchexe` qui doit aussi être installé).
- `make serve`: lance le serveur web python.
- `make clean`: supprime les fichiers HTML et PDF générés.
- `make update VERSION=VX.X.X`: mets à jour les fichiers du modèle de document
en utilisant le numéro de version indiqué.
<!-- références -->
[1]: ./
[2]: https://git.milhit.ch/igor/bunige-pagedjs-template/releases/latest
[3]: https://git.milhit.ch/igor/bunige-pagedjs-template/src/branch/main/example/example.md
[2]: #prévisualiser
[3]: #génération-du-pdf
[4]: ./LICENSE
[5]: https://gitlab.coko.foundation/pagedjs/pagedjs-cli#installation
[6]: #commandes
[7]: https://git.milhit.ch/igor/bunige-pagedjs-template/releases/latest
[8]: https://git.milhit.ch/igor/bunige-pagedjs-template/src/branch/main/example/example.md
[9]: ./sources/
[10]: https://pandoc.org/MANUAL.html#pandocs-markdown

View File

@ -1,11 +1,17 @@
---
title: Mon exemple de document
subtitle: Un bien beau modèle
author:
- Igor Milhit^[Uni CMU]
creation_date: 2025-12-02T15:36:27+0100
date: Automne 2025
id: 20251202153627
tags: ["markdown", "pagedjs", "modèle"]
logo:
- static/images/logo-md.svg
lang: fr
toc-title: Tables des matières
link-citations: true
---
:::{#licence}
@ -17,10 +23,12 @@ Est-ce que ça fonctionne ?
## Titre de niveau 2 {.newpage}
Et encore un peu de texte.
Et encore un peu de texte [@pochetMarkdownVous2023].
## Bibliographie {#refs .newpage}
<!-- références -->
[1]: ./static/by-sa.svg
[1]: ./static/images/by-sa.svg
[2]: https://creativecommons.org/licenses/by-sa/4.0/deed.fr "Texte de la licence en français"
[3]: https://git.milhit.ch/igor/bunige-document

View File

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="208" height="128" viewBox="0 0 208 128"><rect width="198" height="118" x="5" y="5" ry="10" stroke="#000" stroke-width="10" fill="none"/><path d="M30 98V30h20l20 25 20-25h20v68H90V59L70 84 50 59v39zm125 0l-30-33h20V30h20v35h20z"/><script xmlns=""/></svg>

After

Width:  |  Height:  |  Size: 300 B

View File

@ -0,0 +1,21 @@
[
{"id":"commonmarkCommonMarkStronglyDefined","accessed":{"date-parts":[["2023",4,25]]},"author":[{"family":"CommonMark","given":""}],"citation-key":"commonmarkCommonMarkStronglyDefined","container-title":"CommonMark","language":"eng","title":"CommonMark: A strongly defined, highly compatible specification of Markdown","type":"webpage","URL":"https://commonmark.org/"},
{"id":"commonmarkMarkdownReference","accessed":{"date-parts":[["2025",8,27]]},"author":[{"family":"CommonMark","given":""}],"citation-key":"commonmarkMarkdownReference","container-title":"CommonMark","language":"eng","title":"Markdown Reference","type":"webpage","URL":"https://commonmark.org/help/"},
{"id":"deletrazModeTexteMarkdown2022","accessed":{"date-parts":[["2023",4,17]]},"author":[{"family":"Deletraz","given":"Gaëlle"},{"family":"Rabaud","given":"Julien"}],"citation-key":"deletrazModeTexteMarkdown2022","event-place":"Pau","event-title":"So-Mate 2022","genre":"Atelier","issued":{"date-parts":[["2022"]]},"language":"fre","publisher-place":"Pau","title":"En mode texte: Markdown, Stylo, Pandoc, Notebook…","type":"speech","URL":"https://markdown-somate2022.netlify.app"},
{"id":"eyssetteUtiliserMarkdownPour2023","accessed":{"date-parts":[["2023",4,17]]},"author":[{"family":"Eyssette","given":"Cédric"}],"citation-key":"eyssetteUtiliserMarkdownPour2023","issued":{"date-parts":[["2023"]]},"language":"fre","title":"Utiliser le markdown pour tout faire","type":"speech","URL":"https://eyssette.forge.aeif.fr/marp-slides/slides/2022-2023/utiliser-le-markdown-pour-tout-faire"},
{"id":"fressinaudGuideMarkdown2022","abstract":"Un guide simple pour apprendre Markdown.","accessed":{"date-parts":[["2023",4,17]]},"author":[{"family":"Fressinaud","given":"Marien"}],"citation-key":"fressinaudGuideMarkdown2022","container-title":"flus","genre":"Site d'une application web","issued":{"date-parts":[["2022",7,11]]},"language":"fre","title":"Guide Markdown","type":"webpage","URL":"https://flus.fr/carnet/markdown.html"},
{"id":"gruberDiveMarkdown2004","accessed":{"date-parts":[["2025",8,22]]},"author":[{"family":"Gruber","given":"John"}],"citation-key":"gruberDiveMarkdown2004","container-title":"Daring Fireball","issued":{"date-parts":[["2004",3,19]]},"language":"eng","title":"Dive into markdown","type":"post-weblog","URL":"https://daringfireball.net/2004/03/dive_into_markdown"},
{"id":"gruberMarkdown2004","accessed":{"date-parts":[["2023",4,17]]},"author":[{"family":"Gruber","given":"John"}],"citation-key":"gruberMarkdown2004","container-title":"Daring Fireball","genre":"Site personnel","issued":{"date-parts":[["2004",12,17]]},"language":"eng","title":"Markdown","type":"webpage","URL":"https://daringfireball.net/projects/markdown/"},
{"id":"martinolliManuelPratiqueRecherche2024","abstract":"Ce manuel est principalement conçu pour accompagner le séminaire PLU6058, qui vise à améliorer les compétences informationnelles des étudiant.es des cycles supérieurs de lUniversité de Montréal. Cependant, il peut également être utilisé de manière autonome et autodidacte pour la recherche et lutilisation de la documentation dans le cadre dun projet de recherche. En outre, il peut être utilisé comme une ressource éducative par les enseignant.es en bibliothèque de recherche.","accessed":{"date-parts":[["2024",11,12]]},"author":[{"family":"Martinolli","given":"Pascal"}],"citation-key":"martinolliManuelPratiqueRecherche2024","issued":{"date-parts":[["2024",11,8]]},"language":"fre","note":"https://github.com/pmartinolli/QMpRD","title":"Manuel pratique de recherche documentaire","type":"document","URL":"https://pmartinolli.github.io/QMpRD/"},
{"id":"masuttiRedigerManipulerDocuments2019","accessed":{"date-parts":[["2024",3,19]]},"author":[{"family":"Masutti","given":"Christophe"}],"citation-key":"masuttiRedigerManipulerDocuments2019","container-title":"Statium : blog","issued":{"date-parts":[["2019",5,8]]},"language":"fre","title":"Rédiger et manipuler des documents avec Markdown","type":"post-weblog","URL":"https://golb.statium.link/post/20190528rediger-et-manipuler-des-documents-markdown/"},
{"id":"paged.jsPagedJs","accessed":{"date-parts":[["2024",3,8]]},"author":[{"family":"Paged.js","given":""}],"citation-key":"paged.jsPagedJs","container-title":"Paged.js","language":"eng","title":"About Paged.js?","type":"webpage","URL":"https://pagedjs.org/about/"},
{"id":"perretFormatTexte2022","abstract":"Cette page explique ce quest le format texte et donne des arguments en faveur de son utilisation. Elle ouvre vers dautres ressources pour explorer lécosystème du format texte.","accessed":{"date-parts":[["2023",4,18]]},"author":[{"family":"Perret","given":"Arthur"}],"citation-key":"perretFormatTexte2022","container-title":"Arthur Perret","issued":{"date-parts":[["2022"]]},"language":"fre","title":"Format texte","type":"article-journal","URL":"https://www.arthurperret.fr/cours/format-texte.html"},
{"id":"perretMarkdown2022","abstract":"Cette page explique ce quest Markdown, le plus populaire des langages de balisage léger, et renvoie vers un tutoriel interactif en français.","accessed":{"date-parts":[["2023",4,17]]},"author":[{"family":"Perret","given":"Arthur"}],"citation-key":"perretMarkdown2022","container-title":"Arthur Perret","issued":{"date-parts":[["2022",12,11]]},"language":"fr","publisher":"arthurperret.fr/","title":"Markdown","type":"article-journal","URL":"https://www.arthurperret.fr/cours/markdown.html"},
{"id":"perretMarkdownTraitementTexte2022","accessed":{"date-parts":[["2024",4,23]]},"author":[{"family":"Perret","given":"Arthur"}],"citation-key":"perretMarkdownTraitementTexte2022","container-title":"arthurperret.fr","issued":{"date-parts":[["2022",10,25]]},"language":"fre","title":"Markdown et traitement de texte : une méthode pour collaborer","title-short":"Markdown et traitement de texte","type":"post-weblog","URL":"https://www.arthurperret.fr/blog/2022-10-25-markdown-traitement-de-texte-methode-pour-collaborer.html"},
{"id":"pochetMarkdownVous2023","accessed":{"date-parts":[["2025",6,11]]},"author":[{"family":"Pochet","given":"Bernard"}],"citation-key":"pochetMarkdownVous2023","DOI":"10.25518/978-2-87019-318-1","event-place":"Liège","ISBN":"978-2-87019-318-1","issued":{"date-parts":[["2023"]]},"language":"fr","publisher":"ULiège Library","publisher-place":"Liège","source":"e-publish.uliege.be","title":"Markdown & vous","type":"book","URL":"https://e-publish.uliege.be/md/"},
{"id":"pollardTemplateWritingPhD2023","abstract":"Template for writing a PhD thesis in Markdown","accessed":{"date-parts":[["2023",4,17]]},"author":[{"family":"Pollard","given":"Tom"}],"citation-key":"pollardTemplateWritingPhD2023","genre":"HTML","issued":{"date-parts":[["2023",4,17]]},"license":"MIT","original-date":{"date-parts":[["2015",2,10]]},"source":"GitHub","title":"Template for writing a PhD thesis in Markdown","type":"software","URL":"https://github.com/tompollard/phd_thesis_markdown"},
{"id":"swartzMarkdown2004","accessed":{"date-parts":[["2025",8,26]]},"author":[{"family":"Swartz","given":"Aaron"}],"citation-key":"swartzMarkdown2004","container-title":"Aaron Swartz's Raw Thoughts","issued":{"date-parts":[["2004",3,19]]},"language":"eng","title":"Markdown","type":"post-weblog","URL":"http://www.aaronsw.com/weblog/001189"},
{"id":"wikipediaFichierTexte2025","abstract":"En informatique, un fichier texte ou fichier texte brut ou fichier texte simple[réf. nécessaire] est un fichier dont le contenu représente uniquement une suite de caractères ; il utilise nécessairement une forme particulière de codage des caractères qui peut être une variante ou une extension du standard local des États-Unis, l'ASCII. Il n'existe aucune définition officielle, et les différentes interprétations de ce qu'est un fichier texte partagent des propriétés essentielles. Les caractères considérés sont généralement les caractères imprimables, d'espaces et de retours à la ligne. Certains codages de caractères normalisés incluent également certains caractères de contrôle, séquence d'échappement ou marqueurs qui peuvent faire l'objet de différences d'appréciations. La notion de fichier texte est donc subjective et dépend notamment des systèmes de codage de caractère considérés (windows-1252 et ISO-8859-1 n'offrant pas les mêmes plages de valeurs «imprimables».)\nUn fichier « non texte » est appelé « fichier binaire », dans le sens où les bits contenus dans le fichier ne représentent pas une simple suite de caractères imprimables, d'espaces et de retours à la ligne.","accessed":{"date-parts":[["2025",6,12]]},"author":[{"family":"Wikipédia","given":""}],"citation-key":"wikipediaFichierTexte2025","container-title":"Wikipédia","issued":{"date-parts":[["2025",1,23]]},"language":"fr","license":"Creative Commons Attribution-ShareAlike License","note":"Page Version ID: 222327630","source":"Wikipedia","title":"Fichier texte","type":"entry-encyclopedia","URL":"https://fr.wikipedia.org/w/index.php?title=Fichier_texte&oldid=222327630"},
{"id":"wikipediaLangageBalisageLeger2024","abstract":"Un langage de balisage léger est un type de langage de balisage utilisant une syntaxe simple, conçu pour être facile à saisir avec un simple éditeur de texte, et facile à lire dans sa forme non formatée.","accessed":{"date-parts":[["2025",8,21]]},"author":[{"family":"Wikipédia","given":""}],"citation-key":"wikipediaLangageBalisageLeger2024","container-title":"Wikipédia","issued":{"date-parts":[["2024",5,31]]},"language":"fr","license":"Creative Commons Attribution-ShareAlike License","note":"Page Version ID: 215543860","source":"Wikipedia","title":"Langage de balisage léger","type":"entry-encyclopedia","URL":"https://fr.wikipedia.org/w/index.php?title=Langage_de_balisage_l%C3%A9ger&oldid=215543860"},
{"id":"wikipediaMarkdown2025","abstract":"Markdown est un langage de balisage léger créé en 2004 par John Gruber, avec l'aide d'Aaron Swartz,, avec l'objectif d'offrir une syntaxe, facile à lire et à écrire, en l'état, sans formatage.\nMarkdown est principalement utilisé dans des blogs, des sites de messagerie instantanée, des forums et des pages de documentation de logiciels. Depuis quelques années, Markdown est utilisé par la communauté scientifique,,, en lien avec la Science ouverte.\nUn document balisé par Markdown peut être converti en HTML, en PDF ou en d'autres formats. Bien que la syntaxe Markdown ait été influencée par plusieurs filtres de conversion de texte existants vers HTML — dont Setext, atx, Textile, reStructuredText, Grutatext et EtText —, la source dinspiration principale du Markdown est le format du courrier électronique en mode texte.","accessed":{"date-parts":[["2025",6,11]]},"author":[{"family":"Wikipédia","given":""}],"citation-key":"wikipediaMarkdown2025","container-title":"Wikipédia","issued":{"date-parts":[["2025",6,6]]},"language":"fr","license":"Creative Commons Attribution-ShareAlike License","note":"Page Version ID: 226296660","source":"Wikipedia","title":"Markdown","type":"entry-encyclopedia","URL":"https://fr.wikipedia.org/w/index.php?title=Markdown&oldid=226296660"}
]

View File

@ -28,7 +28,7 @@
* bibliothèque de l'UNIGE. */
@top-right {
content: "";
background-image: url("static/bibliotheque-logo.svg");
background-image: url("images/bibliotheque-logo.svg");
background-position: right;
background-repeat: no-repeat;
background-size: 25%;
@ -85,7 +85,7 @@
margin: 2em auto 1em auto;
}
.logo img {
max-width: 50%;
max-width: 25%;
padding: .5em;
}
@ -196,6 +196,7 @@
figure img {
max-width: 85%;
margin: 0 auto;
max-height: 35vh;
}
figcaption {
text-align: center;
@ -207,13 +208,28 @@
content: "Figure " counter(figureNumber) ": ";
}
.exercise {
.exercise,
.warning {
background-color: #f2f1f1;
width: 90%;
margin: 0 auto;
border: 2px solid #d80669;
border-radius: .5em;
padding: 0 .5em;
padding: .5em;
display: flex;
align-items: center;
}
.exercice > p,
.warning > p {
margin: 0;
padding-left: .5em;
}
.exercice::before,
.warning::before {
content: "⚠️";
font-size: larger;
}
blockquote {

View File

@ -31,9 +31,9 @@ $endfor$
when they are unnecessary. -->
$if(noscript)$
$else$
<link href="/interface.css" rel="stylesheet" type="text/css" />
<script src="/paged.polyfill.js"></script>
<script src="/reload-in-place.js"></script>
<link href="$static$/interface.css" rel="stylesheet" type="text/css" />
<script src="$static$/paged.polyfill.js"></script>
<script src="$static$/reload-in-place.js"></script>
$endif$
$for(header-includes)$
$header-includes$