README.md 2.19 KB
Newer Older
1
2
3
4
5
# Conversion d'un site Spip en site Pelican

## Dépendances

- `wget`
Matthieu Boileau's avatar
Matthieu Boileau committed
6
7
- `python 3.6` (pour le support de fstring)
- les paquets python listés dans `requirements.txt` à installer avec :
8
9
10
11
12
13

```bash
pip install -r requirements.txt
```

## Utilisation
14

15
### 1. Récupérer les fichiers joints
16

17
Le script suivant aspire les répertoires `IMG/` et `Documents/` du site Spip pour récupérer les fichiers qui ne sont pas des pages web :
18

Matthieu Boileau's avatar
Matthieu Boileau committed
19
```
20
python3 get_attached_files.py
21
22
```

23
Les fichiers récupérés sont dans `attachments/spip/`
24

Matthieu Boileau's avatar
Matthieu Boileau committed
25
### 2. Exporter la base de données Spip
26

Matthieu Boileau's avatar
Matthieu Boileau committed
27
1. Se connecter à la [base mysql](http://calcul.math.cnrs.fr/phpmyadmin/index.php?db=spip_calcul) du site spip avec phpmyadmin
28
2. Exporter la table globale du site en format `yaml`, par exemple dans le fichier `spip_site.yml`
29
30
31

### 3. Nettoyer l'export `yaml`

32
Depuis le répertoire de ce projet, lancer le script `process_yaml.py` pour découper en sous fichiers yaml et nettoyer l'encodage des caractères :
33
34

```
35
python3 process_yaml.py spip_site.yml
36
37
```

38
Ce script produit les fichiers `./spip_yml/spip_*_clean.yml`.
39

Matthieu Boileau's avatar
Matthieu Boileau committed
40
41
42
### 4. Définir la stratégie de conversion des rubriques et articles Spip en catégories Pélican

- Explorer la structure des rubriques du site Spip
Matthieu Boileau's avatar
Matthieu Boileau committed
43
44
45
46
47

```
python3 spip2pelican.py --rubriques
```

Matthieu Boileau's avatar
Matthieu Boileau committed
48
49
50
51
52
53
54
- Lister le contenu en articles des rubriques afin de déterminer la correspondance `spip_article -> pelican_category` ou `spip_rubrique -> pelican_category`

```
python3 spip2pelican.py --articles id_rubrique
```


Matthieu Boileau's avatar
Matthieu Boileau committed
55
### 5. Convertir les articles Spip en articles Pelican
56

Matthieu Boileau's avatar
Matthieu Boileau committed
57
58
- Editer le fichier `config.yml`, en particulier le dictionnaire `categories` qui opère la conversion des rubriques Spip en *category* Pelican en fonction du schéma déterminé dans l'étape précédente.

59
60
- Lancer la conversion:

61
62
63
64
```
python3 spip2pelican.py
```

Matthieu Boileau's avatar
Matthieu Boileau committed
65
### 6. Transférer les fichiers markdown exportés vers le nouveau site
66
67

```
Matthieu Boileau's avatar
Matthieu Boileau committed
68
rsync -av content/ ../website/content/
69
```
Matthieu Boileau's avatar
Matthieu Boileau committed
70

Matthieu Boileau's avatar
Matthieu Boileau committed
71
### 7. Transférer les fichiers joints vers le nouveau site
Matthieu Boileau's avatar
Matthieu Boileau committed
72
73

```
74
rsync -av --delete attachments/spip/ ../website/content/attachments/spip/
Matthieu Boileau's avatar
Matthieu Boileau committed
75
```
Matthieu Boileau's avatar
Matthieu Boileau committed
76
77
78

## Notes

79
- les balises html ne sont pas converties car elles sont supportées par la syntaxe markdown, seuls les champs `href` et `img` sont traités
Matthieu Boileau's avatar
Matthieu Boileau committed
80