# Pour les rédacteurs

## Organisation

- Dans `content` : texte uniquement, posts à placer dans `content/posts`.
- Dans `assets` : tous les fichiers média en utilisant LFS.

## Éléments syntaxiques

### En-tête

L'en-tête contient les métodonnées de l'article et se présente sous la forme suivante :

```
---
title: Super article
date: 2020-05-11
author: raspbeguy
template: post
tags: tutoriel,news,tribune
---
```

- __Le titre__ est obligatoire.
- __La date__ doit être sous le format `%Y-%m-%d` et est obligatoire.
- __L'auteur__ est obligatoire.
- __Le modèle__ (_template_) doit obligatoirement correspondre à `post`.
- __La liste de tags__ est facultative (mais recommandée) et se compose d'une liste à virgule de mots en minuscules.

Par ailleurs, le nom de fichier d'un post doit correspondre à la version sécurisée du champ `title`, c'est à dire :

- en minuscules ;
- sans diacritiques ;
- chaque caractère spécial et espace remplacé par un tiret `-` non redondant, ni au début ni à la fin.

### Images

Pour placer un média dans un article, utiliser le mot-clé `%assets_url%`.

Par exemple, pour insérer l'image `assets/image.png`, on placera cette ligne dans le texte :

```
![](%assets_url%/image.png)
```

## Tests

Pour vérifier la cohérence des articles, des scripts sont disponibles dans le dossier `tests` :

- `check_post_filename.sh` : vérifie que les fichiers des posts portent bien le nom correspondant à leurs titres. Le drapeau `-f` permet de corriger automatiquement ce nom de fichier.
- `check_assets.sh` : vérifie que les ressources appelées par les posts existent bien dans le dossier `assets`.

Utilisés sans arguments, ces scripts vérifient l'ensemble des articles. Avec un argument, les scripts ne vérifient que le post dont l'argument est le nom de fichier.

## Publication

Pour publier, il suffit de pousser.

# Pour l'administrateur système

Pour installer, cloner le dépôt quelque part, puis faire des liens symboliques de `content` et `assets` dans le dossier racine d'une installation PicoCMS.
