|
|
**Table des matières**
|
|
|
|
|
|
[[_TOC_]]
|
|
|
* [Modération des offres d'emplois](#mod%C3%A9ration-des-offres-demplois)
|
|
|
* [Avant de rédiger](#avant-de-r%C3%A9diger)
|
|
|
* [Installation et utilisation de Pelican](#installation-et-utilisation-de-pelican)
|
|
|
* [Comment ça marche ?](#comment-%C3%A7a-marche-)
|
|
|
* [Processus de conversion .rst vers .html](#processus-de-conversion-rst-vers-html)
|
|
|
* [Système de templates de pages html (themes/calcul/templates/)](#syst%C3%A8me-de-templates-de-pages-html-themescalcultemplates)
|
|
|
* [Plugins](#plugins)
|
|
|
* [Créer une branche de développement personnelle](#cr%C3%A9er-une-branche-de-d%C3%A9veloppement-personnelle)
|
|
|
* [Répertoire](#r%C3%A9pertoire)
|
|
|
* [Nom du fichier](#nom-du-fichier)
|
|
|
* [Fichiers attachés](#fichiers-attach%C3%A9s)
|
|
|
* [Les types de pages](#les-types-de-pages)
|
|
|
* [Nouvel événement](#nouvel-%C3%A9v%C3%A9nement)
|
|
|
* [Événement importé de Spip](#%C3%A9v%C3%A9nement-import%C3%A9-de-spip)
|
|
|
* [Page statique](#page-statique)
|
|
|
* [Rédiger une page](#r%C3%A9diger-une-page)
|
|
|
* [Structure générale](#structure-g%C3%A9n%C3%A9rale)
|
|
|
* [Métadonnées](#m%C3%A9tadonn%C3%A9es)
|
|
|
* [title](#title)
|
|
|
* [date](#date)
|
|
|
* [slug](#slug)
|
|
|
* [category](#category)
|
|
|
* [start_date](#start_date)
|
|
|
* [end_date](#end_date)
|
|
|
* [place](#place)
|
|
|
* [attendees](#attendees)
|
|
|
* [tags](#tags)
|
|
|
* [template](#template)
|
|
|
* [summary](#summary)
|
|
|
* [Syntaxe RST](#syntaxe-rst)
|
|
|
* [Kit de survie pour rédiger en RST](#kit-de-survie-pour-r%C3%A9diger-en-rst)
|
|
|
* [Liens internes](#liens-internes)
|
|
|
* [Liens internes vers un fichier](#liens-internes-vers-un-fichier)
|
|
|
* [Listes et énumérations](#listes-et-%C3%A9num%C3%A9rations)
|
|
|
* [Substitutions](#substitutions)
|
|
|
* [Substitution par du texte](#substitution-par-du-texte)
|
|
|
* [Substitution par une image](#substitution-par-une-image)
|
|
|
* [Substitution par une url](#substitution-par-une-url)
|
|
|
* [Où déclarer ces substitutions ?](#o%C3%B9-d%C3%A9clarer-ces-substitutions-)
|
|
|
* [Figures et images](#figures-et-images)
|
|
|
* [Figure](#figure)
|
|
|
* [Image](#image)
|
|
|
* [Container](#container)
|
|
|
* [Directives personnalisées](#directives-personnalis%C3%A9es)
|
|
|
* [section](#section)
|
|
|
* [schedule](#schedule)
|
|
|
* [day](#day)
|
|
|
* [event](#event)
|
|
|
* [break_event](#break_event)
|
|
|
* [button](#button)
|
|
|
* [Les sections d'une page](#les-sections-dune-page)
|
|
|
* [Description](#description)
|
|
|
* [Programme](#programme)
|
|
|
* [Programme généré automatiquement](#programme-g%C3%A9n%C3%A9r%C3%A9-automatiquement)
|
|
|
* [Jour](#jour)
|
|
|
* [Exposé](#expos%C3%A9)
|
|
|
* [Supports des exposés](#supports-des-expos%C3%A9s)
|
|
|
* [Pause](#pause)
|
|
|
* [Organisateurs](#organisateurs)
|
|
|
* [Partenaires et logos](#partenaires-et-logos)
|
|
|
* [Autre](#autre)
|
|
|
* [Vérifier le rendu en local](#v%C3%A9rifier-le-rendu-en-local)
|
|
|
* [Pousser ses modifications](#pousser-ses-modifications)
|
|
|
* [Archivage d'un événement](#archivage-dun-%C3%A9v%C3%A9nement)
|
|
|
* [Pour déployer un pod sur PLMShift pour tester une version de dev du site Calcul](#pour-d%C3%A9ployer-un-pod-sur-plmshift-pour-tester-une-version-de-dev-du-site-calcul)
|
|
|
* [Pour éteindre un pod](#pour-%C3%A9teindre-un-pod)
|
|
|
* [Pour déployer un pod en partant de zéro](#pour-d%C3%A9ployer-un-pod-en-partant-de-z%C3%A9ro)
|
|
|
|
|
|
## Modération des offres d'emplois
|
|
|
|
|
|
Lorsqu'une personne soumet une offre d'emploi sur le site, une merge request contenant le contenu de l'offre est créée sur le dépôt gitlab `website`. Afin de la mettre en ligne il faut la modérer.
|
|
|
|
|
|
Pour être en charge de la modération, il faut :
|
|
|
|
|
|
1. Avoir les notifications activées pour le merge request. Ainsi, le modérateur reçoit un mail lorsqu'une personne a soumis une offre.
|
|
|
2. Avoir les droits de modération sur la [liste de diffusion](https://listes.math.cnrs.fr/wws/info/calcul)
|
|
|
|
|
|
Quand les personnes en charge de la modération reçoivent le mail qu'une nouvelle merge request est présente, il s'agit de :
|
|
|
|
|
|
1. Vérifier que l'offre est pertinente pour la liste
|
|
|
2. Accepter la merge request. Un mail est alors automatiquement envoyé à l'auteur de l'offre comme quoi elle est acceptée. Un deuxième mail est envoyé sur la liste lorsque l'offre est en ligne sur le site.
|
|
|
3. Valider le mail pour la liste sur [l'interface SYMPA](https://listes.math.cnrs.fr/wws/modindex/calcul).
|
|
|
|
|
|
La communauté a pris l'habitude d'envoyer les offres d'emploi directement à la liste. Il s'agit à présent de refuser ces mails en utilisant l'option "rejeter avec notification" et en sélectionnant le message par défaut. Il recevra un mail comme celui-ci, l'invitant à soumettre son offre en passant par le site.
|
|
|
```
|
|
|
|
|
|
```plaintext
|
|
|
Votre message posté à la liste calcul@listes.math.cnrs.fr a été rejeté par le modérateur
|
|
|
(<mail du modérateur>) car il concerne une offre d'emploi. Nous vous invitons à soumettre
|
|
|
votre offre sur notre site web ici :
|
... | ... | @@ -43,24 +112,24 @@ Suivre les instructions du [README](https://gitlab.math.unistra.fr/groupe-calcul |
|
|
|
|
|
Lors de la génération, Pelican va :
|
|
|
|
|
|
- parcourir chaque fichier source `.rst` de l'arborescence du répertoire `content/` pour générer le fichier `.html` correspondant dans le répertoire `output/` (si la métadonnée `:slug: nom_du_fichier` du fichier `.rst` existe, le fichier s'appelera `nom_du_fichier.html`)
|
|
|
- appliquer à chaque fichier `.rst` un des templates de page html du thème *calcul* hébergés dans `themes/calcul/templates/`
|
|
|
- charger via les fichiers template les feuilles de style et fonts stockées dans `themes/calcul/static/css`.
|
|
|
|
|
|
* parcourir chaque fichier source `.rst` de l'arborescence du répertoire `content/` pour générer le fichier `.html` correspondant dans le répertoire `output/` (si la métadonnée `:slug: nom_du_fichier` du fichier `.rst` existe, le fichier s'appelera `nom_du_fichier.html`)
|
|
|
* appliquer à chaque fichier `.rst` un des templates de page html du thème _calcul_ hébergés dans `themes/calcul/templates/`
|
|
|
* charger via les fichiers template les feuilles de style et fonts stockées dans `themes/calcul/static/css`.
|
|
|
|
|
|
#### Système de templates de pages html (`themes/calcul/templates/`)
|
|
|
|
|
|
- basés sur la syntaxe [Jinja2](http://jinja.pocoo.org/)
|
|
|
- tous les templates héritent du template `base.html` et sont déclinés par type de page (`article.html`, `category.html`, etc.).
|
|
|
|
|
|
* basés sur la syntaxe [Jinja2](http://jinja.pocoo.org/)
|
|
|
* tous les templates héritent du template `base.html` et sont déclinés par type de page (`article.html`, `category.html`, etc.).
|
|
|
|
|
|
#### Plugins
|
|
|
|
|
|
TODO
|
|
|
|
|
|
## Créer une branche de développement personnelle
|
|
|
## Créer une branche de développement personnelle
|
|
|
|
|
|
Il faut créer une branche à partir de `develop`. Remplacer bien sûr "nom" par votre nom...
|
|
|
```bash
|
|
|
|
|
|
```shell
|
|
|
git checkout develop
|
|
|
git checkout -b dev-nom
|
|
|
```
|
... | ... | @@ -69,27 +138,29 @@ git checkout -b dev-nom |
|
|
|
|
|
Tout le contenu du site se trouve dans le répertoire `content`.
|
|
|
|
|
|
Lors de la création d'un nouvel article, il faut le mettre dans le bon répertoire selon s'il est organisé par le réseau ou le GdR :
|
|
|
Lors de la création d'un nouvel article, il faut le mettre dans le bon répertoire selon s'il est organisé par le réseau ou le GdR :
|
|
|
|
|
|
* événements `réseau` dans le répertoire `content/evt_tech`
|
|
|
* événements `GdR` dans le répertoire `content/evt_sci`
|
|
|
|
|
|
Pour une page statique, il faut la placer dans un sous-répertoire de `content` en fonction de son type :
|
|
|
|
|
|
* paysage du calcul dans `content/paysage`,
|
|
|
* le groupe dans `content/groupe`.
|
|
|
|
|
|
## Nom du fichier
|
|
|
|
|
|
Il faut principalement penser à rajouter l'année dans le nom du fichier d'un événement récurrent afin d'en faciliter l'organisation.
|
|
|
|
|
|
L'extension est `.rst` pour un fichier à la [syntaxe rst](#syntaxe-rst).
|
|
|
|
|
|
## Fichiers attachés
|
|
|
|
|
|
Avant de rajouter un fichier attaché, il faut vérifier que `git-lfs` est installé.
|
|
|
|
|
|
Tous les fichiers sont placés dans un sous-dossier de `content/attachments`.
|
|
|
Le sous-dossier `content/attachments/spip` contient les fichiers importés depuis l'ancien site web sous SPIP.
|
|
|
Tous les fichiers sont placés dans un sous-dossier de `content/attachments`. Le sous-dossier `content/attachments/spip` contient les fichiers importés depuis l'ancien site web sous SPIP.
|
|
|
|
|
|
Pour les fichiers liés à un événement, il est conseillé de les placer dans un sous-dossier composé de type (`evt_tech` ou `evt_sci`) et du slug de l'article, par exemple `content/attachments/evt_sci/journee-da-2019` (ça vous convient @all ?).
|
|
|
Pour les fichiers liés à un événement, il est conseillé de les placer dans un sous-dossier composé de type (`evt_tech` ou `evt_sci`) et du slug de l'article, par exemple `content/attachments/evt_sci/journee-da-2019` (ça vous convient [@all](/groupe-calcul/website) ?).
|
|
|
|
|
|
Voir [ici](#liens-internes-vers-un-fichier) pour créer un lien vers un fichier attaché.
|
|
|
|
... | ... | @@ -97,57 +168,58 @@ Voir [ici](#liens-internes-vers-un-fichier) pour créer un lien vers un fichier |
|
|
|
|
|
### Nouvel événement
|
|
|
|
|
|
@all : on est d'accord pour choisir cet article comme ref ? (@boileau: OK pour moi)
|
|
|
[@all](/groupe-calcul/website) : on est d'accord pour choisir cet article comme ref ? ([@boileau](/boileau): OK pour moi)
|
|
|
|
|
|
L'événement [ANGD Python 2010](https://calcul-dev.math.unistra.fr/develop/angd_python_2010.html) est un bon exemple dont on peut s'inspirer.
|
|
|
Il contient la plupart des éléments de syntaxe nécessaires à rédiger un article et correspond à la forme des articles qu'on publie à présent.
|
|
|
Le fichier source se trouve dans [`website/content/evt_tech/angd_python_2010.rst`](https://gitlab.math.unistra.fr/groupe-calcul/website/blob/master/content/evt_tech/angd_python_2010.rst).
|
|
|
L'événement [ANGD Python 2010](https://calcul-dev.math.unistra.fr/develop/angd_python_2010.html) est un bon exemple dont on peut s'inspirer. Il contient la plupart des éléments de syntaxe nécessaires à rédiger un article et correspond à la forme des articles qu'on publie à présent. Le fichier source se trouve dans `website/content/evt_tech/angd_python_2010.rst`.
|
|
|
|
|
|
Les choses à faire :
|
|
|
|
|
|
* [ ] Choisir un [nom de fichier](nom-du-fichier) et un [répertoire](repertoire) d'enregistrement,
|
|
|
* [ ] Spécifier les métadonnées [title](#title), [date](#date), [slug](#slug), [category](#category), [start_date](#start_date), [end_date](#end_date), [place](#place) et éventuellement [attendees](#attendees).
|
|
|
Pour les événements futurs, spécifier également [summary](#summary). Vous pouvez également ajouter des [tags](#tags) pertinents.
|
|
|
* [ ] Créer une [section description](#description)
|
|
|
* [ ] Créer un [programme](#programme) (en attendant le plugin Indico)
|
|
|
* [ ] Créer une [section organisateur](#organisateurs), comité scientifique, etc.
|
|
|
* [ ] Créer l'événement sur indico
|
|
|
* [ ] Référencer l'événement indico dans l'article afin que le programme soit récupéré sur indico et mis en forme sur le site du Groupe Calcul
|
|
|
* Choisir un [nom de fichier](/groupe-calcul/website/-/wikis/nom-du-fichier) et un [répertoire](/groupe-calcul/website/-/wikis/repertoire) d'enregistrement,
|
|
|
* Spécifier les métadonnées [title](#title), [date](#date), [slug](#slug), [category](#category), [start_date](#start_date), [end_date](#end_date), [place](#place) et éventuellement [attendees](#attendees). Pour les événements futurs, spécifier également [summary](#summary). Vous pouvez également ajouter des [tags](#tags) pertinents.
|
|
|
* Créer une [section description](#description)
|
|
|
* Créer un [programme](#programme) (en attendant le plugin Indico)
|
|
|
* Créer une [section organisateur](#organisateurs), comité scientifique, etc.
|
|
|
* Créer l'événement sur indico
|
|
|
* Référencer l'événement indico dans l'article afin que le programme soit récupéré sur indico et mis en forme sur le site du Groupe Calcul
|
|
|
|
|
|
### Événement importé de Spip
|
|
|
|
|
|
Le point de départ est un fichier qui a été converti automatiquement depuis le site spip en rst avec [`spip2pelican`](https://gitlab.math.unistra.fr/groupe-calcul/spip2pelican).
|
|
|
Dans cet exemple : `website/content_not_clean_yet/evt_tech/spip_article-263.rst`
|
|
|
Le point de départ est un fichier qui a été converti automatiquement depuis le site spip en rst avec `spip2pelican`. Dans cet exemple : `website/content_not_clean_yet/evt_tech/spip_article-263.rst`
|
|
|
|
|
|
1. Déplacer et renommer l'article du répertoire `content_not_clean_yet/` au répertoire `content/`
|
|
|
- Changer `evt_tech` en `evt_sci` si cet événement est plutôt rattaché au GdR.
|
|
|
- Faire tout ça en en informant git. Exemple depuis le répertoire website :
|
|
|
```
|
|
|
* Changer `evt_tech` en `evt_sci` si cet événement est plutôt rattaché au GdR.
|
|
|
* Faire tout ça en en informant git. Exemple depuis le répertoire website :
|
|
|
|
|
|
```plaintext
|
|
|
git mv content_not_clean_yet/evt_tech/spip_article-263.rst content/evt_tech/journee_meso_2015.rst
|
|
|
```
|
|
|
|
|
|
2. Retoucher l'article : introduire le programme en utilisant les directives spécifiques car l'événement indico n'existent pas, il faut faire le programme à la main en référençant correctement les intervenants, supports et abstracts, etc.
|
|
|
1. Retoucher l'article : introduire le programme en utilisant les directives spécifiques car l'événement indico n'existent pas, il faut faire le programme à la main en référençant correctement les intervenants, supports et abstracts, etc.
|
|
|
|
|
|
Se référer aux instructions de rédaction pour un [nouvel événement](#nouvel-evenement).
|
|
|
|
|
|
### Page statique
|
|
|
|
|
|
TODO
|
|
|
|
|
|
## Rédiger une page
|
|
|
|
|
|
### Structure générale
|
|
|
|
|
|
Un article est composée de deux parties :
|
|
|
- l'en-tête qui contient les [métadonnées](#metadonnees),
|
|
|
- le contenu formaté avec la [syntaxe rst](#syntaxe-rst).
|
|
|
|
|
|
* l'en-tête qui contient les [métadonnées](#metadonnees),
|
|
|
* le contenu formaté avec la [syntaxe rst](#syntaxe-rst).
|
|
|
|
|
|
Ces deux parties doivent être séparées par une ligne blanche.
|
|
|
|
|
|
### Métadonnées
|
|
|
|
|
|
Les métadonnées sont spécifiées en tout début de fichier, et séparées du contenu par une ligne blanche.
|
|
|
|
|
|
Une ligne de métadonnée commence par son nom entouré de `:`, suivi d'une espace puis de sa valeur. Par exemple :
|
|
|
|
|
|
```rst
|
|
|
```plaintext
|
|
|
J'ai gagné au loto
|
|
|
##################
|
|
|
|
... | ... | @@ -161,65 +233,71 @@ Les sous-sections suivantes décrivent les principales métadonnées. |
|
|
|
|
|
#### title
|
|
|
|
|
|
Le titre est indiqué en début fichier, souligné par des caractères `#` :
|
|
|
```rst
|
|
|
Le titre est indiqué en début fichier, souligné par des caractères `#` :
|
|
|
|
|
|
```plaintext
|
|
|
J'ai gagné au loto
|
|
|
##################
|
|
|
```
|
|
|
Il faut bien faire attention a entièrement souligner le titre (pas plus, pas moins).
|
|
|
|
|
|
Il faut bien faire attention a entièrement souligner le titre (pas plus, pas moins).
|
|
|
|
|
|
La syntaxe utilisant la métadonnée :
|
|
|
```rst
|
|
|
|
|
|
```plaintext
|
|
|
:title: J'ai gagné au loto
|
|
|
```
|
|
|
|
|
|
est aussi acceptée mais elle provoque le warning suivant dont la cause est expliquée dans cette [issue](https://github.com/getpelican/pelican/issues/2485) :
|
|
|
|
|
|
```bash
|
|
|
```shell
|
|
|
WARNING: Document title missing in file [...]/content/blague.rst: Ensure exactly one top level section
|
|
|
```
|
|
|
|
|
|
Pensez bien au fait que ce titre peut être affiché sur plusieurs lignes dans l'en-tête de la page ce qui peut amener à des coupures gênantes : par exemple, `un article` avec un retour à la ligne après `un`.
|
|
|
Pour l'éviter, remplacer certains espaces par des **espaces insécables** en utilisant la directive ` |_| ` (avec les espaces englobants), par exemple `un |_| article sur le |_| calcul scientifique`.
|
|
|
N'en mettez pas trop non plus (idéalement seulement entre un article et son nom) ce qui empêcherait le titre de s'adapter à la largeur de l'affichage et, dans tous les cas, vérifiez l'affichage du titre dans l'en-tête et dans les vignettes (la liste des événements) et ce pour plusieurs tailles d'écran (outils de développement du navigateur).
|
|
|
Pensez bien au fait que ce titre peut être affiché sur plusieurs lignes dans l'en-tête de la page ce qui peut amener à des coupures gênantes : par exemple, `un article` avec un retour à la ligne après `un`. Pour l'éviter, remplacer certains espaces par des **espaces insécables** en utilisant la directive `|_|` (avec les espaces englobants), par exemple `un |_| article sur le |_| calcul scientifique`. N'en mettez pas trop non plus (idéalement seulement entre un article et son nom) ce qui empêcherait le titre de s'adapter à la largeur de l'affichage et, dans tous les cas, vérifiez l'affichage du titre dans l'en-tête et dans les vignettes (la liste des événements) et ce pour plusieurs tailles d'écran (outils de développement du navigateur).
|
|
|
|
|
|
#### date
|
|
|
|
|
|
La date de création de la page (et non de l'événement), au format `YYYY-MM-DD`.
|
|
|
|
|
|
#### slug
|
|
|
|
|
|
C'est l'**identifiant unique** de la page qui servira comme base pour le nom du fichier html généré.
|
|
|
|
|
|
Par défaut, il est généré automatiquement à partir du titre de la page mais il est fortement conseillé de le spécifier manuellement.
|
|
|
Idéalement, il ne devrait contenir que des lettres minuscules, non accentuées et où les espaces et les ponctuations ont été remplacées par un tiret d'union `-` (en évitant les tirets consécutifs).
|
|
|
Par défaut, il est généré automatiquement à partir du titre de la page mais il est fortement conseillé de le spécifier manuellement. Idéalement, il ne devrait contenir que des lettres minuscules, non accentuées et où les espaces et les ponctuations ont été remplacées par un tiret d'union `-` (en évitant les tirets consécutifs).
|
|
|
|
|
|
On peut également penser à rajouter l'année de l'événement dans le slug afin d'éviter les collisions pour événements récurrents (même problématique que pour le [nom de fichier](nom-du-fichier)).
|
|
|
On peut également penser à rajouter l'année de l'événement dans le slug afin d'éviter les collisions pour événements récurrents (même problématique que pour le [nom de fichier](/groupe-calcul/website/-/wikis/nom-du-fichier)).
|
|
|
|
|
|
#### category
|
|
|
Cette métadonnée est uniquement utile pour les événements.
|
|
|
Il peut prendre une des deux valeurs :
|
|
|
|
|
|
Cette métadonnée est uniquement utile pour les événements. Il peut prendre une des deux valeurs :
|
|
|
|
|
|
* `journee` pour les journées,
|
|
|
* `formation` pour les formations.
|
|
|
|
|
|
Cette information est utilisée lors de la construction du site pour référencer l'article, soit dans la page `Nos journées`, soit dans la page `Nos Formations`.
|
|
|
|
|
|
#### start_date
|
|
|
|
|
|
La date de début de l'événement, au format `YYYY-MM-DD`.
|
|
|
|
|
|
#### end_date
|
|
|
|
|
|
La date de fin de l'événement, au format `YYYY-MM-DD`.
|
|
|
|
|
|
#### place
|
|
|
|
|
|
La ville où a lieu l'événement.
|
|
|
|
|
|
#### attendees
|
|
|
Le nombre de participants attendus ou observés à l'événement.
|
|
|
Ce champ est optionnel.
|
|
|
|
|
|
Le nombre de participants attendus ou observés à l'événement. Ce champ est optionnel.
|
|
|
|
|
|
#### tags
|
|
|
Un ou plusieurs tags, séparés par des virgules, permettant de filtrer les événements ou pages.
|
|
|
Par exemple :
|
|
|
```rst
|
|
|
|
|
|
Un ou plusieurs tags, séparés par des virgules, permettant de filtrer les événements ou pages. Par exemple :
|
|
|
|
|
|
```plaintext
|
|
|
:tags: benchmarks, python
|
|
|
```
|
|
|
|
... | ... | @@ -228,24 +306,24 @@ Dans l'optique d'utiliser ces tags pour faire un "nuage de tags" ou autre, il es |
|
|
À noter qu'il n'est pas nécessaire de spécifier l'appartenance d'un événement aux activités du GDR ou du réseau métier, ce tag étant automatiquement rajouté en fonction du dossier de stockage (`evt_sci` ou `evt_tech`).
|
|
|
|
|
|
#### template
|
|
|
|
|
|
Permet de spécifier quel template Jinja2 utiliser pour le rendu HTML.
|
|
|
|
|
|
Cette métadonnée est inutile pour les événements (le template associé aux articles est automatiquement utilisé) mais est nécessaire pour les pages statiques (TODO).
|
|
|
|
|
|
#### summary
|
|
|
Permet de spécifier un résumé.
|
|
|
Par exemple, pour un événement, ce sera le texte qui sera affiché sous son titre si il est mis en avant sur la page d'accueil.
|
|
|
|
|
|
Permet de spécifier un résumé. Par exemple, pour un événement, ce sera le texte qui sera affiché sous son titre si il est mis en avant sur la page d'accueil.
|
|
|
|
|
|
### Syntaxe RST
|
|
|
|
|
|
Voici une [référence pour la syntaxe RST](https://thomas-cokelaer.info/tutorials/sphinx/rest_syntax.html)
|
|
|
ou bien la [documentation officielle](http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html).
|
|
|
Voici une [référence pour la syntaxe RST](https://thomas-cokelaer.info/tutorials/sphinx/rest_syntax.html) ou bien la [documentation officielle](http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html).
|
|
|
|
|
|
#### Kit de survie pour rédiger en RST
|
|
|
|
|
|
##### Liens internes
|
|
|
|
|
|
```
|
|
|
```plaintext
|
|
|
`Liste des méso-centres en France <mesocentres_en_France.html>`_
|
|
|
```
|
|
|
|
... | ... | @@ -253,7 +331,7 @@ Crée un lien interne vers la page mesocentres_en_France.html, page générée |
|
|
|
|
|
##### Liens internes vers un fichier
|
|
|
|
|
|
```
|
|
|
```plaintext
|
|
|
`Avril 2014 <attachments/spip/IMG/pdf/2013_rapport_meso.pdf>`_
|
|
|
```
|
|
|
|
... | ... | @@ -262,14 +340,15 @@ Crée un lien vers le pdf 2013_rapport_meso.pdf dont le texte est `Avril 2014`. |
|
|
> **Attention :** on ne peut pas avoir 2 fois le même texte comme lien sur la même page.
|
|
|
|
|
|
##### Listes et énumérations
|
|
|
|
|
|
Les listes et énumérations se spécifient d'une manière équivalente à la syntaxe Markdown :
|
|
|
- un point d'une liste commence par `*`, `+`, `-`, ... suivie d'une espace et du texte,
|
|
|
- un point d'une énumération commence par un nombre arabe, romain ou une lettre, suivie d'une espace et du texte.
|
|
|
|
|
|
Les différents points d'une même liste ou énumération doivent présenter le même alignement.
|
|
|
De même, si le contenu d'un point est sur plusieurs lignes (texte long, plusieurs paragraphes, sous-liste, ...),
|
|
|
ce contenu doit être aligné avec celui de la première ligne du point. Par exemple :
|
|
|
```rst
|
|
|
* un point d'une liste commence par `*`, `+`, `-`, ... suivie d'une espace et du texte,
|
|
|
* un point d'une énumération commence par un nombre arabe, romain ou une lettre, suivie d'une espace et du texte.
|
|
|
|
|
|
Les différents points d'une même liste ou énumération doivent présenter le même alignement. De même, si le contenu d'un point est sur plusieurs lignes (texte long, plusieurs paragraphes, sous-liste, ...), ce contenu doit être aligné avec celui de la première ligne du point. Par exemple :
|
|
|
|
|
|
```plaintext
|
|
|
|
|
|
- item 1
|
|
|
- item 2 avec du texte
|
... | ... | @@ -280,10 +359,9 @@ ce contenu doit être aligné avec celui de la première ligne du point. Par exe |
|
|
- item 3
|
|
|
```
|
|
|
|
|
|
Contrairement au Markdown, toute liste ou énumération **doit être précédée et suivie d'une ligne blanche**, sinon ce sera considéré comme une description et la ligne précédant la liste sera en gras.
|
|
|
Ceci est particulièrement vrai pour les sous-listes.
|
|
|
Par exemple :
|
|
|
```rst
|
|
|
Contrairement au Markdown, toute liste ou énumération **doit être précédée et suivie d'une ligne blanche**, sinon ce sera considéré comme une description et la ligne précédant la liste sera en gras. Ceci est particulièrement vrai pour les sous-listes. Par exemple :
|
|
|
|
|
|
```plaintext
|
|
|
|
|
|
- item 1
|
|
|
- item 2 avec un peu
|
... | ... | @@ -295,34 +373,38 @@ Par exemple : |
|
|
On continue la description de l'item 2.
|
|
|
- item 3
|
|
|
```
|
|
|
|
|
|
ce qui donnera un rendu équivalant à :
|
|
|
- item 1
|
|
|
- item 2 avec un peu
|
|
|
de texte.
|
|
|
- item 2.1
|
|
|
- item 2.2
|
|
|
|
|
|
* item 1
|
|
|
* item 2 avec un peu de texte.
|
|
|
* item 2.1
|
|
|
* item 2.2
|
|
|
|
|
|
On continue la description de l'item 2.
|
|
|
- item 3
|
|
|
* item 3
|
|
|
|
|
|
##### Substitutions
|
|
|
Il est possible de déclarer des macros pour éviter les répétitions ou pour inclure dans du texte le résultat d'une directive (une image en particulier).
|
|
|
Voir [la documentation officielle](http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#substitution-definitions).
|
|
|
|
|
|
Il est possible de déclarer des macros pour éviter les répétitions ou pour inclure dans du texte le résultat d'une directive (une image en particulier). Voir [la documentation officielle](http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#substitution-definitions).
|
|
|
|
|
|
###### Substitution par du texte
|
|
|
On spécifie le nom de la substitution entre `|`, suivi de la directive `replace` avec le texte à insérer.
|
|
|
On y fait appel en utilisant ce nom également encadré de `|`.
|
|
|
|
|
|
On spécifie le nom de la substitution entre `|`, suivi de la directive `replace` avec le texte à insérer. On y fait appel en utilisant ce nom également encadré de `|`.
|
|
|
|
|
|
L'exemple parle de lui-même :
|
|
|
```rst
|
|
|
|
|
|
```plaintext
|
|
|
Le groupe Calcul est à la fois un |Gdr| et un réseau métier.
|
|
|
|
|
|
.. |GdR| replace:: Groupement de Recherche
|
|
|
```
|
|
|
|
|
|
###### Substitution par une image
|
|
|
|
|
|
De même, on peut utiliser ce mécanisme pour insérer une [image](#image) "en ligne" (c'est-à-dire sans retour à la ligne) dans du texte :
|
|
|
```rst
|
|
|
|
|
|
```plaintext
|
|
|
|
|
|
Depuis 2009, ce groupe s'est structuré au sein du |CNRS| en un Groupement de Recherche
|
|
|
et un réseau métier et continue à œuvrer pour la communauté ...
|
... | ... | @@ -332,13 +414,14 @@ et un réseau métier et continue à œuvrer pour la communauté ... |
|
|
:width: 35 px
|
|
|
:alt: logo CNRS
|
|
|
```
|
|
|
(voir https://calcul-dev.math.unistra.fr/develop/pages/presentation_groupe.html#presentation)
|
|
|
|
|
|
(voir <https://calcul-dev.math.unistra.fr/develop/pages/presentation_groupe.html#presentation>)
|
|
|
|
|
|
###### Substitution par une url
|
|
|
On peut également insérer automatiquement un lien avec une syntaxe de déclaration alternative.
|
|
|
L'appel se fait alors en suffixant le nom (éventuellement entouré de `|` ou de quotes) par un `_` :
|
|
|
|
|
|
```rst
|
|
|
On peut également insérer automatiquement un lien avec une syntaxe de déclaration alternative. L'appel se fait alors en suffixant le nom (éventuellement entouré de `|` ou de quotes) par un `_` :
|
|
|
|
|
|
```plaintext
|
|
|
Dans le cadre de sa veille technologique [...], le Groupe Calcul entretient des liens avec [...] l'AMIES_,
|
|
|
la SMAI_, l'INRIA_, etc.
|
|
|
|
... | ... | @@ -348,42 +431,46 @@ la SMAI_, l'INRIA_, etc. |
|
|
```
|
|
|
|
|
|
###### Où déclarer ces substitutions ?
|
|
|
|
|
|
Pour un besoin local, il suffit d'insérer ces déclarations de substitutions dans le document même (par exemple à la fin).
|
|
|
|
|
|
Si le besoin est plus global, il est conseillé de rajouter ces déclarations dans le fichier `plugins/rst_include/include.rst` qui est automatiquement inséré dans tous les fichiers rst traités.
|
|
|
|
|
|
|
|
|
##### Figures et images
|
|
|
|
|
|
Il existe deux manières d'insérer une image et qui ont des options communes :
|
|
|
- `width` pour spécifier la largeur de l'image (en pixels ou pourcentage),
|
|
|
- `height` pour spécifier la hauteur de l'image en pixels,
|
|
|
- `scale` pour mettre à l'échelle l'image, en pourcentage (se cumule avec `width` et `height` si spécifiés),
|
|
|
- `alt` pour donner une description de l'image quand celle-ci ne peut être affichée (accessibilité),
|
|
|
- `target` pour faire pointer l'image vers une url donnée.
|
|
|
|
|
|
* `width` pour spécifier la largeur de l'image (en pixels ou pourcentage),
|
|
|
* `height` pour spécifier la hauteur de l'image en pixels,
|
|
|
* `scale` pour mettre à l'échelle l'image, en pourcentage (se cumule avec `width` et `height` si spécifiés),
|
|
|
* `alt` pour donner une description de l'image quand celle-ci ne peut être affichée (accessibilité),
|
|
|
* `target` pour faire pointer l'image vers une url donnée.
|
|
|
|
|
|
Voir [la documentation officielle](http://docutils.sourceforge.net/docs/ref/rst/directives.html#images).
|
|
|
|
|
|
###### Figure
|
|
|
|
|
|
Avec la directive `figure`, l'image est affichée de manière centrée, de manière indépendante (affichage "block") avec éventuellement une légende (comme contenu de la directive).
|
|
|
|
|
|
Plusieurs figures consécutives s'afficheront donc chacune sur une ligne séparée.
|
|
|
|
|
|
```rst
|
|
|
```plaintext
|
|
|
.. figure:: ../attachments/img/calcul.png
|
|
|
:width: 100%
|
|
|
:alt: Image situant le réseau et le GdR au croisement des disciplines et en interaction avec ses partenaires
|
|
|
|
|
|
Le Groupe Calcul à la croisée des thématiques en interaction avec ses partenaires.
|
|
|
```
|
|
|
(voir https://calcul-dev.math.unistra.fr/develop/pages/presentation_groupe.html#presentation)
|
|
|
|
|
|
(voir <https://calcul-dev.math.unistra.fr/develop/pages/presentation_groupe.html#presentation>)
|
|
|
|
|
|
###### Image
|
|
|
|
|
|
La directive `image` permet l'affichage simple d'une image sans encadrement (affichage "inline").
|
|
|
|
|
|
En particulier, plusieurs images consécutives s'afficheront les unes à côté des autres.
|
|
|
|
|
|
```rst
|
|
|
```plaintext
|
|
|
.. image:: attachments/spip/Documents/Journees/avril2013/logo_smai.jpg
|
|
|
:height: 100
|
|
|
:alt: logo SMAI
|
... | ... | @@ -392,10 +479,12 @@ En particulier, plusieurs images consécutives s'afficheront les unes à côté |
|
|
:height: 100
|
|
|
:alt: logo SIF
|
|
|
```
|
|
|
(voir https://calcul-dev.math.unistra.fr/develop/2013-04-journee-histoire-calcul.html#description)
|
|
|
|
|
|
(voir <https://calcul-dev.math.unistra.fr/develop/2013-04-journee-histoire-calcul.html#description>)
|
|
|
|
|
|
Il est possible de centrer une ou plusieurs images en les englobant dans une directive [container](#container) avec la classe `text-align-center` :
|
|
|
```rst
|
|
|
|
|
|
```plaintext
|
|
|
.. container:: text-align-center
|
|
|
|
|
|
.. image:: attachments/spip/Documents/Journees/avril2013/logo_smai.jpg
|
... | ... | @@ -408,7 +497,8 @@ Il est possible de centrer une ou plusieurs images en les englobant dans une dir |
|
|
```
|
|
|
|
|
|
On peut également insérer une image "en ligne" dans du texte en utilisant une [substitution](#substitution-par-une-image) :
|
|
|
```rst
|
|
|
|
|
|
```plaintext
|
|
|
|
|
|
Depuis 2009, ce groupe s'est structuré au sein du |CNRS| en un Groupement de Recherche
|
|
|
et un réseau métier et continue à œuvrer pour la communauté ...
|
... | ... | @@ -418,13 +508,16 @@ et un réseau métier et continue à œuvrer pour la communauté ... |
|
|
:width: 35 px
|
|
|
:alt: logo CNRS
|
|
|
```
|
|
|
(voir https://calcul-dev.math.unistra.fr/develop/pages/presentation_groupe.html#presentation)
|
|
|
|
|
|
(voir <https://calcul-dev.math.unistra.fr/develop/pages/presentation_groupe.html#presentation>)
|
|
|
|
|
|
##### Container
|
|
|
|
|
|
La directive `container` permet de regrouper plusieurs éléments RST dans un même `div` et d'y appliquer les classes spécifiées en paramètre de la directive.
|
|
|
|
|
|
L'utilisation typique est l'affichage centré de plusieurs [image](#image) :
|
|
|
```rst
|
|
|
|
|
|
```plaintext
|
|
|
.. container:: text-align-center
|
|
|
|
|
|
.. image:: attachments/spip/Documents/Journees/avril2013/logo_smai.jpg
|
... | ... | @@ -437,51 +530,61 @@ L'utilisation typique est l'affichage centré de plusieurs [image](#image) : |
|
|
|
|
|
Ce texte s'affichera également de manière centrée et peut donc faire office de légende.
|
|
|
```
|
|
|
(voir https://calcul-dev.math.unistra.fr/develop/pages/presentation_groupe.html#presentation)
|
|
|
|
|
|
(voir <https://calcul-dev.math.unistra.fr/develop/pages/presentation_groupe.html#presentation>)
|
|
|
|
|
|
#### Directives personnalisées
|
|
|
|
|
|
En plus de la syntaxe "officielle", certaines directives ont été spécifiquement rajoutées ou personnalisées.
|
|
|
|
|
|
##### section
|
|
|
|
|
|
Indique [une section de page](#les-sections-dune-page).
|
|
|
|
|
|
##### schedule
|
|
|
|
|
|
Indique le début du [programme d'un événement](#programme).
|
|
|
|
|
|
##### day
|
|
|
|
|
|
Dans un [programme](#programme), indique le [jour](#jour) d'un événement.
|
|
|
|
|
|
##### event
|
|
|
Dans un [programme](#programme), indique un [exposé](#exposé).
|
|
|
|
|
|
Dans un [programme](#programme), indique un [exposé](#expos%C3%A9).
|
|
|
|
|
|
##### break_event
|
|
|
|
|
|
Dans un [programme](#programme), indique une [pause](#pause).
|
|
|
|
|
|
##### button
|
|
|
Permet de rajouter un lien interne ou externe sous forme de bouton centré (voir par exemple https://calcul-dev.math.unistra.fr/develop/pages/presentation_groupe.html#le-reseau).
|
|
|
|
|
|
Permet de rajouter un lien interne ou externe sous forme de bouton centré (voir par exemple <https://calcul-dev.math.unistra.fr/develop/pages/presentation_groupe.html#le-reseau>).
|
|
|
|
|
|
Le texte du bouton est spécifié sur la même ligne que la directive et l'url avec l'option `:target:` :
|
|
|
```rst
|
|
|
|
|
|
```plaintext
|
|
|
.. button:: En savoir plus
|
|
|
:target: plus-d-infos.html
|
|
|
```
|
|
|
|
|
|
Par défaut, le lien s'ouvre dans la fenêtre courante. Il est toutefois possible de l'ouvrir dans une nouvelle fenêtre (conseillé pour les liens externes) avec l'option `:blank:` définie à `True` :
|
|
|
```rst
|
|
|
|
|
|
```plaintext
|
|
|
.. button:: En savoir plus
|
|
|
:target: plus-d-infos.html
|
|
|
:blank: True
|
|
|
```
|
|
|
|
|
|
|
|
|
### Les sections d'une page
|
|
|
|
|
|
Le début du contenu d'un événement doit commencer par `.. contents::` afin de générer la table des matières.
|
|
|
|
|
|
Le reste du contenu d'une page doit être découpé en sections indiquées par `.. section:: ` suivi du nom de la section.
|
|
|
Il est également conseillé de spécifier sur la ligne suivante une classe pour personnaliser le rendu de cette section.
|
|
|
Le reste du contenu d'une page doit être découpé en sections indiquées par `.. section:: `suivi du nom de la section. Il est également conseillé de spécifier sur la ligne suivante une classe pour personnaliser le rendu de cette section.
|
|
|
|
|
|
Par exemple :
|
|
|
```rst
|
|
|
|
|
|
```plaintext
|
|
|
.. contents::
|
|
|
|
|
|
.. section:: Description de l'article
|
... | ... | @@ -506,19 +609,22 @@ Par exemple : |
|
|
Les sous-sections suivantes décrivent les principales sections et les classes associées.
|
|
|
|
|
|
#### Description
|
|
|
|
|
|
C'est la section par défaut servant pour décrire l'événement ou indiquer des informations supplémentaires.
|
|
|
|
|
|
La classe à utiliser est `description`
|
|
|
|
|
|
#### Programme
|
|
|
Cette section devrait être remplie automatiquement par Indico.
|
|
|
En attendant et pour les anciens événements non référencés sur Indico, il faut remplir une section dédiée au programme et qui utilise la classe `programme`.
|
|
|
|
|
|
Cette section devrait être remplie automatiquement par Indico. En attendant et pour les anciens événements non référencés sur Indico, il faut remplir une section dédiée au programme et qui utilise la classe `programme`.
|
|
|
|
|
|
Le début du programme commence alors par `.. schedule::` et se suit par la description des différentes journées de l'événement.
|
|
|
|
|
|
##### Programme généré automatiquement
|
|
|
##### Programme généré automatiquement
|
|
|
|
|
|
Lors de la construction du site, il est possible de récupérer le programme saisi sur indico. Il suffit de mettre les lignes suivantes dans l'événement en spécifiant l'adresse indico et son numéro. Ex :
|
|
|
```
|
|
|
|
|
|
```plaintext
|
|
|
.. section:: Programme
|
|
|
:class: programme
|
|
|
|
... | ... | @@ -528,16 +634,18 @@ Lors de la construction du site, il est possible de récupérer le programme sai |
|
|
```
|
|
|
|
|
|
##### Jour
|
|
|
Une journée est spécifiée par `.. day:: ` suivi de sa date au format `DD-MM-YYYY` (le format anglais doit probablement aussi fonctionner).
|
|
|
|
|
|
Une journée est spécifiée par `.. day:: `suivi de sa date au format `DD-MM-YYYY` (le format anglais doit probablement aussi fonctionner).
|
|
|
|
|
|
##### Exposé
|
|
|
Sous une journée donnée, on ajoute une présentation avec `.. event:: ` suivi du titre de la présentation.
|
|
|
|
|
|
Comme propriétés de la présentation, il faut spécifier son heure de début, heure de fin et les noms des orateurs.
|
|
|
S'en suit le résumé (optionnel) de la présentation).
|
|
|
Sous une journée donnée, on ajoute une présentation avec `.. event:: `suivi du titre de la présentation.
|
|
|
|
|
|
Comme propriétés de la présentation, il faut spécifier son heure de début, heure de fin et les noms des orateurs. S'en suit le résumé (optionnel) de la présentation).
|
|
|
|
|
|
Par exemple :
|
|
|
```rst
|
|
|
|
|
|
```plaintext
|
|
|
.. section:: Programme
|
|
|
:class: programme
|
|
|
|
... | ... | @@ -560,8 +668,10 @@ Par exemple : |
|
|
```
|
|
|
|
|
|
##### Supports des exposés
|
|
|
|
|
|
Pour un exposé donné, on peut spécifier un support à télécharger (ou un lien web) avec la propriété `support` suivi du lien interne ou de l'url :
|
|
|
```rst
|
|
|
|
|
|
```plaintext
|
|
|
.. event:: Une super présentation
|
|
|
:begin: 08:00
|
|
|
:end: 10:00
|
... | ... | @@ -569,45 +679,51 @@ Pour un exposé donné, on peut spécifier un support à télécharger (ou un li |
|
|
:support: attachments/.../support1.pdf
|
|
|
```
|
|
|
|
|
|
:warning: les espaces dans les urls doivent être encodées (`%20`) !
|
|
|
⚠ les espaces dans les urls doivent être encodées (`%20`) !
|
|
|
|
|
|
On peut spécifier plusieurs supports en fournissant un lien par ligne après la déclaration de l'option :
|
|
|
|
|
|
```rst
|
|
|
```plaintext
|
|
|
:support:
|
|
|
attachments/.../support1.pdf
|
|
|
attachments/.../support2.pdf
|
|
|
```
|
|
|
|
|
|
La liste des supports s'affiche alors quand on clique sur l'icône de téléchargement.
|
|
|
|
|
|
On peut également spécifier un titre pour chaque support (dans le cas simple ou multiple) en utilisant la syntaxe Markdown `[titre](url)` :
|
|
|
|
|
|
```rst
|
|
|
```plaintext
|
|
|
:support: [Les slides](attachments/.../support1.pdf)
|
|
|
```
|
|
|
|
|
|
pour un unique support, ou :
|
|
|
|
|
|
```rst
|
|
|
```plaintext
|
|
|
:support:
|
|
|
[Diaporama](attachments/.../support1.pdf)
|
|
|
[Vidéo](attachments/.../support2.avi)
|
|
|
```
|
|
|
|
|
|
en cas de supports multiples.
|
|
|
|
|
|
**Note :** le nom `Vidéo` comme dans l'exemple ci-dessus déclenche l'utilisation de l'icône "camera" à la place de l'icône "téléchargement".
|
|
|
|
|
|
##### Pause
|
|
|
On peut spécifier une pause avec `.. break_event:: ` suivi de sa description et d'un horaire de début et de fin.
|
|
|
|
|
|
On peut spécifier une pause avec `.. break_event:: `suivi de sa description et d'un horaire de début et de fin.
|
|
|
|
|
|
#### Organisateurs
|
|
|
|
|
|
Pour spécifier la liste des organisateurs, du comité scientifique ou autre, il faut créer une section avec la classe `orga`.
|
|
|
|
|
|
Dans cette section, toute liste sera formatée de manière spécifique.
|
|
|
|
|
|
#### Partenaires et logos
|
|
|
|
|
|
Parfois les événements sont organisés de manière conjointe avec d'autres groupes / instituts. Une section de classe description est utilisée et les logos stockés dans le dépôt sont affichés de manière centrée. **Merci d'enrichir la base de logos en ajoutant ceux qui n'y sont pas encore**. On peut trouver [ici](https://calcul.math.cnrs.fr/2019-09-anf-perf-eval-hpc.html#partenaires) le rendu du snippet ci-dessous.
|
|
|
|
|
|
```rst
|
|
|
```plaintext
|
|
|
.. section:: Partenaires
|
|
|
:class: description
|
|
|
|
... | ... | @@ -624,15 +740,16 @@ Parfois les événements sont organisés de manière conjointe avec d'autres gro |
|
|
```
|
|
|
|
|
|
#### Autre
|
|
|
Pour d'autre contenu, se référer à la section [description](description).
|
|
|
|
|
|
Pour d'autre contenu, se référer à la section [description](/groupe-calcul/website/-/wikis/description).
|
|
|
|
|
|
## Vérifier le rendu en local
|
|
|
|
|
|
```bash
|
|
|
```shell
|
|
|
make devserver
|
|
|
```
|
|
|
et ouvrir son navigateur préféré sur http://localhost:8000
|
|
|
|
|
|
et ouvrir son navigateur préféré sur <http://localhost:8000>
|
|
|
|
|
|
## Pousser ses modifications
|
|
|
|
... | ... | @@ -640,31 +757,33 @@ Une fois que le rendu de la page est satisfaisant, indexer la modification dans |
|
|
|
|
|
Pousser sur gitlab :
|
|
|
|
|
|
```bash
|
|
|
```shell
|
|
|
git push --set-upstream origin dev-nom
|
|
|
```
|
|
|
|
|
|
- au besoin, suivre le [pipeline](https://gitlab.math.unistra.fr/groupe-calcul/website/pipelines) d'intégration continue.
|
|
|
- une fois le pipeline terminé, vérifier le rendu sur <https://calcul-dev.math.unistra.fr/dev-nom>
|
|
|
- Ouvrir une *merge request* vers la branche `develop` et choisir un assignee (soit même si on a confiance :slight\_smile:)
|
|
|
- Accepter la *merge request* et vérifier le rendu sur le site `develop` https://calcul-dev.math.unistra.fr/develop/#
|
|
|
* au besoin, suivre le [pipeline](https://gitlab.math.unistra.fr/groupe-calcul/website/pipelines) d'intégration continue.
|
|
|
* une fois le pipeline terminé, vérifier le rendu sur <https://calcul-dev.math.unistra.fr/dev-nom>
|
|
|
* Ouvrir une _merge request_ vers la branche `develop` et choisir un assignee (soit même si on a confiance 🙂)
|
|
|
* Accepter la _merge request_ et vérifier le rendu sur le site `develop` <https://calcul-dev.math.unistra.fr/develop/#>
|
|
|
|
|
|
## Archivage d'un événement
|
|
|
|
|
|
Le programme d'un événement qui apparait sur la page web de l'événement est généré à partir du programme saisi dans indico. C'est très pratique lors du montage de l'événement, le programme affiché sur le site calcul reflète toujours la dernière version modifiée sur l'indico. Mais une fois l'événement passé, le lien avec indico reste nécessaire même si le programme ne bouge plus. Le dépot du site n'est pas auto-consistent. Afin de rapatrier l'ensemble des données dans le site, un script d'archivage a été développé. Tout d'abord se mettre sur sa branche de développement:
|
|
|
|
|
|
```bash
|
|
|
```shell
|
|
|
git checkout dev-nom
|
|
|
```
|
|
|
|
|
|
S'assurer que la branche est à jour avec master et se positionner dans le répertoire des événements et appeler le script en passant en paramètre l'événement que vous souhaitez archiver en spécifiant le nombre de participants.
|
|
|
|
|
|
```bash
|
|
|
|
|
|
```shell
|
|
|
git rebase master
|
|
|
python -m utils.archive_evt content/evt_tech/2019-09-anf-perf-eval-hpc.rst 22
|
|
|
```
|
|
|
|
|
|
Le script va mettre à jour le fichier `2019-09-anf-perf-eval-hpc.rst` en y ajoutant le programme et télécharger tous les supports de l'événement et les placer au bon endroit. Il vous propose une commande `git add` qui ajoutera tous les fichiers au prochain commit.
|
|
|
```bash
|
|
|
|
|
|
```shell
|
|
|
mhaefele@mdlspc113:evt_tech (dev-haefele)$ python3 ../../utils/archive_evt.py 2019-09-anf-perf-eval-hpc.rst 22
|
|
|
Treating https://indico.mathrice.fr/event/160/contribution/3/material/slides/2.pdf
|
|
|
Treating https://indico.mathrice.fr/event/160/contribution/3/material/slides/3.pdf
|
... | ... | @@ -692,34 +811,32 @@ git add \ |
|
|
/local/home/mhaefele/ownCloud/work/doc/projects/groupe_calcul/website_adm/website/content/attachments/evt/2019-09-anf-perf-eval-hpc/support08.pdf \
|
|
|
/local/home/mhaefele/ownCloud/work/doc/projects/groupe_calcul/website_adm/website/content/attachments/evt/2019-09-anf-perf-eval-hpc/support09.pdf \
|
|
|
```
|
|
|
Il s'agit d'effectuer ce git add, de faire un commit, de pousser votre branche et de la fusionner avec master via un merge request comme expliqué [ici](#pousser-ses-modifications)
|
|
|
|
|
|
:warning: Pour les orateurs qui utilisent des présentations en HTML en ligne, il faut penser à demander une archive de la présentation HTML ou un export en pdf pour les archives, les liens ne restent pas valides sur le long terme.
|
|
|
Il s'agit d'effectuer ce git add, de faire un commit, de pousser votre branche et de la fusionner avec master via un merge request comme expliqué [ici](#pousser-ses-modifications)
|
|
|
|
|
|
⚠ Pour les orateurs qui utilisent des présentations en HTML en ligne, il faut penser à demander une archive de la présentation HTML ou un export en pdf pour les archives, les liens ne restent pas valides sur le long terme.
|
|
|
|
|
|
## Pour déployer un pod sur PLMShift pour tester une version de dev du site Calcul
|
|
|
|
|
|
- Il faut avoir créé une branche de dev sur le dépôt du site cf. TODO
|
|
|
- Se connecter à [PLMShift](https://plmshift.math.cnrs.fr), le Openshift géré par Mathrice
|
|
|
- En tant que développeur (en haut à gauche), sélectionner `Add` puis `From Catalog` (on peut aussi y accéder en tant qu'administrateur, depuis l'onglet "Workloads" du projet, puis "From Catalog")
|
|
|
- Chercher `calcul` (il faut supprimer les filtres de recherche) et choisir le template `Groupe Calcul`
|
|
|
- Changer le nom en ajoutant un suffixe -votre-nom
|
|
|
- Changer la branche cible et mettre votre branche de développement
|
|
|
- Lancer la construction du pod
|
|
|
- Cliquer sur Build Configs
|
|
|
- Sur votre image, cliquer sur les trois petits points à droite
|
|
|
- Sélectionner "Start Build"
|
|
|
- Prendre un café (car c'est long) et vérifier dans vos pods (Workloads->Pods) si le pod votre-image-build a un statut "completed"
|
|
|
|
|
|
- Admirer sa copie du site
|
|
|
- Networking -> Routes, l'adresse de votre site de dev est dans "location"
|
|
|
|
|
|
- Automatisation de la construction du site sur un push
|
|
|
- Cliquer Builds -> Build Configs -> votre build config
|
|
|
- En bas de la page, dans la partie webhook, cliquer sur "Copy URL with secret"
|
|
|
- Sur le dépôt gitlab de votre fork, coller cette URL dans le champ URL de Settings -> Webhooks.
|
|
|
- Cliquer sur "Add Webhook"
|
|
|
- Le webhook apparaît en bas de page et on peut tester le mécanisme en cliquant sur test -> push event. Si le site se construit à nouveau sur OpenShift, c'est que c'est bon.
|
|
|
* Il faut avoir créé \[une branche de dev sur le dépôt\]([#creer-une-branche-de-developpement-personnelle](https://gitlab.math.unistra.fr/groupe-calcul/website/-/wikis/home#cr%C3%A9er-une-branche-de-d%C3%A9veloppement-personnelle))
|
|
|
* Se connecter à [PLMShift](https://plmshift.math.cnrs.fr), le Openshift géré par Mathrice
|
|
|
* En tant que développeur (en haut à gauche), sélectionner `Add` puis `From Catalog` (on peut aussi y accéder en tant qu'administrateur, depuis l'onglet "Workloads" du projet, puis "From Catalog")
|
|
|
* Chercher `calcul` (il faut supprimer les filtres de recherche) et choisir le template `Groupe Calcul`
|
|
|
* Changer le nom en ajoutant un suffixe -votre-nom
|
|
|
* Changer la branche cible et mettre votre branche de développement
|
|
|
* Lancer la construction du pod
|
|
|
* Cliquer sur Build Configs
|
|
|
* Sur votre image, cliquer sur les trois petits points à droite
|
|
|
* Sélectionner "Start Build"
|
|
|
* Prendre un café (car c'est long) et vérifier dans vos pods (Workloads->Pods) si le pod votre-image-build a un statut "completed"
|
|
|
* Admirer sa copie du site
|
|
|
* Networking -> Routes, l'adresse de votre site de dev est dans "location"
|
|
|
* Automatisation de la construction du site sur un push
|
|
|
* Cliquer Builds -> Build Configs -> votre build config
|
|
|
* En bas de la page, dans la partie webhook, cliquer sur "Copy URL with secret"
|
|
|
* Sur le dépôt gitlab de votre fork, coller cette URL dans le champ URL de Settings -> Webhooks.
|
|
|
* Cliquer sur "Add Webhook"
|
|
|
* Le webhook apparaît en bas de page et on peut tester le mécanisme en cliquant sur test -> push event. Si le site se construit à nouveau sur OpenShift, c'est que c'est bon.
|
|
|
|
|
|
## Pour éteindre un pod
|
|
|
|
... | ... | @@ -727,42 +844,38 @@ Sur PLMShift, en Administrateur, dans "Workloads/Deployment Configs", cliquer su |
|
|
|
|
|
## Pour déployer un pod en partant de zéro
|
|
|
|
|
|
- Créer un projet website sur le gitlab unistra
|
|
|
- Créer un projet dans openshift
|
|
|
- installer la commande oc (https://plmshift.math.cnrs.fr/command-line-tools)
|
|
|
- se connecter au nouveau projet dans openshift :
|
|
|
- La commande `oc` pour se connecter se trouve dans le lien `Copy Login Command` ici : https://plmshift.math.cnrs.fr/command-line-tools
|
|
|
- Sélectionner le nouveau projet `oc project nom_nouveau_projet` en remplaçant `nom_nouveau_projet`par le projet créé juste au -dessus.
|
|
|
- Faire un clone du projet s2i : https://plmlab.math.cnrs.fr/groupe-calcul/website-plmshift
|
|
|
- `cd` dans le clone
|
|
|
- créer le template dans openshift avec la commande :
|
|
|
`oc create -f templates/calcul.json`
|
|
|
- dans openshift, en tant que développeur (en haut à gauche), sélectionner `Add` puis `From Catalog` (on peut aussi y accéder en tant qu'administrateur, depuis l'onglet "Workloads" du projet, puis "From Catalog")
|
|
|
- chercher `calcul` (il faut supprimer les filtres de recherche) et choisir le template `Groupe Calcul`
|
|
|
- changer le lien vers le dépôt git pour mettre le lien vers son fork
|
|
|
- ajouter une limite mémoire dans le buildconfig du template
|
|
|
- aller dans Build Configs
|
|
|
- sélectionner l'image de calcul
|
|
|
- modifier le YAML et mettre dans la section `spec`
|
|
|
```
|
|
|
resources:
|
|
|
limits:
|
|
|
memory: 1Gi
|
|
|
```
|
|
|
- Lancer la construction du pod
|
|
|
- Cliquer sur Build Configs
|
|
|
- Sur votre image, cliquer sur les trois petits points à droite
|
|
|
- Sélectionner "Start Build"
|
|
|
- Prendre un café (car c'est long) et vérifier dans vos pods (Workloads->Pods) si le pod votre-image-build a un statut "completed"
|
|
|
|
|
|
- Admirer le site
|
|
|
- Networking -> Routes, l'adresse de votre site est dans "location"
|
|
|
|
|
|
- Automatisation de la construction du site sur un push
|
|
|
- Cliquer Builds -> Build Configs -> votre build config
|
|
|
- En bas de la page, dans la partie webhook, cliquer sur "Copy URL with secret"
|
|
|
- Sur le dépôt gitlab de votre fork, coller cette URL dans le champ URL de Settings -> Webhooks.
|
|
|
- Cliquer sur "Add Webhook"
|
|
|
- Le webhook apparaît en bas de page et on peut tester le mécanisme en cliquant sur test -> push event. Si le site se construit à nouveau sur OpenShift, c'est que c'est bon.
|
|
|
|
|
|
|
|
|
* Créer un projet website sur le gitlab unistra
|
|
|
* Créer un projet dans openshift
|
|
|
* installer la commande oc (<https://plmshift.math.cnrs.fr/command-line-tools>)
|
|
|
* se connecter au nouveau projet dans openshift :
|
|
|
* La commande `oc` pour se connecter se trouve dans le lien `Copy Login Command` ici : <https://plmshift.math.cnrs.fr/command-line-tools>
|
|
|
* Sélectionner le nouveau projet `oc project nom_nouveau_projet` en remplaçant `nom_nouveau_projet`par le projet créé juste au -dessus.
|
|
|
* Faire un clone du projet s2i : <https://plmlab.math.cnrs.fr/groupe-calcul/website-plmshift>
|
|
|
* `cd` dans le clone
|
|
|
* créer le template dans openshift avec la commande : `oc create -f templates/calcul.json`
|
|
|
* dans openshift, en tant que développeur (en haut à gauche), sélectionner `Add` puis `From Catalog` (on peut aussi y accéder en tant qu'administrateur, depuis l'onglet "Workloads" du projet, puis "From Catalog")
|
|
|
* chercher `calcul` (il faut supprimer les filtres de recherche) et choisir le template `Groupe Calcul`
|
|
|
* changer le lien vers le dépôt git pour mettre le lien vers son fork
|
|
|
* ajouter une limite mémoire dans le buildconfig du template
|
|
|
* aller dans Build Configs
|
|
|
* sélectionner l'image de calcul
|
|
|
* modifier le YAML et mettre dans la section `spec`
|
|
|
|
|
|
```plaintext
|
|
|
resources:
|
|
|
limits:
|
|
|
memory: 1Gi
|
|
|
```
|
|
|
* Lancer la construction du pod
|
|
|
* Cliquer sur Build Configs
|
|
|
* Sur votre image, cliquer sur les trois petits points à droite
|
|
|
* Sélectionner "Start Build"
|
|
|
* Prendre un café (car c'est long) et vérifier dans vos pods (Workloads->Pods) si le pod votre-image-build a un statut "completed"
|
|
|
* Admirer le site
|
|
|
* Networking -> Routes, l'adresse de votre site est dans "location"
|
|
|
* Automatisation de la construction du site sur un push
|
|
|
* Cliquer Builds -> Build Configs -> votre build config
|
|
|
* En bas de la page, dans la partie webhook, cliquer sur "Copy URL with secret"
|
|
|
* Sur le dépôt gitlab de votre fork, coller cette URL dans le champ URL de Settings -> Webhooks.
|
|
|
* Cliquer sur "Add Webhook"
|
|
|
* Le webhook apparaît en bas de page et on peut tester le mécanisme en cliquant sur test -> push event. Si le site se construit à nouveau sur OpenShift, c'est que c'est bon. |
|
|
\ No newline at end of file |