Commit b368c284 authored by Matthieu Boileau's avatar Matthieu Boileau
Browse files

Add Spip breves (fix #15)

parent d97cbd27
......@@ -17,8 +17,9 @@ Les fichiers récupérés sont dans `attachments/spip/`.
```bash
spip_articles -> spip_articles.yml # le contenu et les métadonnées des articles
spip_rubriques -> spip_rubriques.yml # permet de construire la table breve_id -> category et le contenu des rubriques
spip_breves -> spip_breves.yml # le contenu des brèves
spip_documents -> spip_documents.yml # permet de construire la table document_id -> document_path
spip_rubriques -> spip_rubriques.yml # permet de construire la table rubrique_id -> category
spip_auteurs -> spip_auteurs.yml # permet de construire la table author_id -> author_name
spip_auteurs_liens -> spip_auteurs_liens.yml # permet de construire la table article_id -> author_name
```
......
......@@ -322,20 +322,21 @@ class Article:
self.mdprefix = f"spip_{self.type}-{self.id}"
self.mdpath = os.path.join(self.category, self.mdprefix + ".md")
self.date = spip_article['date']
try:
self.modified = spip_article['date_modif']
self.date = spip_article['date']
except KeyError:
self.modified = self.date
self.date = spip_article['date_heure']
self.summary = spip_article['descriptif']
self.modified = spip_article.get('date_modif', self.date)
self.summary = spip_article.get('descriptif', '')
self.text = spip_article['texte']
try:
self.authors = self.website.author_index[self.type][self.id]
except KeyError:
self.authors = self.website.default_author
try:
self.authors = self.website.author_index[self.type][self.id]
except KeyError:
self.authors = self.website.default_author
self.tags = [self.type]
def export_to_pelican(self):
"""
......@@ -359,13 +360,12 @@ class Article:
else:
self.title = spip_to_markdown(self.title, self.website).strip() # strip to remove any CR at end of string
tags = []
header = f"""\
title: {self.title}
date: {self.date}
modified: {self.modified}
category: {self.category}
tags: {tags}
tags: {self.tags}
slug: {self.mdprefix}
authors: {self.authors}
summary: {self.summary}
......@@ -389,6 +389,7 @@ class Website:
ATTACHMENTS_PREFIX = "attachments/spip/"
RUBRIQUES_FILENAME = "spip_rubriques_clean.yml"
ARTICLES_FILENAME = "spip_articles_clean.yml"
BREVES_FILENAME = "spip_breves_clean.yml"
DOCUMENTS_FILENAME = "spip_documents.yml"
AUTHORS_FILENAME = "spip_auteurs_clean.yml"
AUTHORS_LINKS_FILENAME = "spip_auteurs_liens.yml"
......@@ -424,6 +425,7 @@ class Website:
self.attachments_prefix = spip_file.get('attachments_prefix', self.ATTACHMENTS_PREFIX)
self.rubriques_filename = spip_file.get('rubriques', self.RUBRIQUES_FILENAME)
self.articles_filename = spip_file.get('articles', self.ARTICLES_FILENAME)
self.breves_filename = spip_file.get('breves', self.BREVES_FILENAME)
self.documents_filename = spip_file.get('documents', self.DOCUMENTS_FILENAME)
self.authors_filename = spip_file.get('authors', self.AUTHORS_FILENAME)
self.authors_links_filename = spip_file.get('authors_links', self.AUTHORS_LINKS_FILENAME)
......@@ -440,9 +442,9 @@ class Website:
logger.critical(f"Error in {config_filename}: {pelican_category}: {spip_rubrique}")
if reset_output_dir:
self.reset_output_directories()
self._reset_output_directories()
def reset_output_directories(self):
def _reset_output_directories(self):
"""Erase existing output files and create empty output directories"""
if os.path.exists("content"):
shutil.rmtree("content")
......@@ -498,10 +500,8 @@ class Website:
def _build_articles(self):
"""
Build:
- the list of Article objects
- the index dictionary: {id_doc: file_path}
"""
Instanciate a list of Article objects
"""
def add_articles(filename, spip_type):
# Load original article file as a list
......@@ -515,6 +515,7 @@ class Website:
add_articles(self.articles_filename, 'article')
add_articles(self.rubriques_filename, 'rubrique')
add_articles(self.breves_filename, 'breve')
def read_spip(self):
"""Read spip yaml files to build useful indices and article list"""
......
%YAML 1.1
---
# spip_calcul.spip_breves
-
id_breve: 1
date_heure: 2012-12-14 00:00:00
titre: 1/2 journée inaugurale du réseau LyonCalcul
texte: L’initiative LyonCalcul propose de profiter de la proximité géographique pour organiser un réseau de contacts et une structure légère d’animation scientifique et technologique.
lien_titre: Site du réseau LyonCalcul
lien_url: http://lyoncalcul.univ-lyon1.fr
statut: publie
id_rubrique: 97
lang: fr
langue_choisie: non
maj: 2012-11-29 06:16:24
-
id_breve: 2
date_heure: 2012-12-03 00:00:00
titre: École "Datacentres : exploiter sans gaspiller"
texte: |-
Du 3 au 7 Décembre à Villard de Lans aura lieu l'école "Datacentres : exploiter sans gaspiller". Cette école est organisée par le Groupe de Services [Ecoinfo->http://www.ecoinfo.cnrs.fr/], en collaboration avec le Groupe Calcul.
lien_titre: Site web d'ecoinfo
lien_url: http://www.ecoinfo.cnrs.fr/
statut: publie
id_rubrique: 97
lang: fr
langue_choisie: non
maj: 2012-11-30 08:24:24
-
id_breve: 3
date_heure: 2013-02-12 00:00:00
titre: Appel à projets Modèles Numériques (MN)
texte: |-
L'ANR vient de publier l'appel à projets Modèles Numériques (MN) 2013 :
[www.agence-nationale-recherche.fr/programmes-de-recherche/appel-detail/modeles-numeriques-mn-2013/->www.agence-nationale-recherche.fr/programmes-de-recherche/appel-detail/modeles-numeriques-mn-2013/]
Date limite de soumission des dossiers : mardi 12 février 2013 13:00
lien_titre:
lien_url:
statut: publie
id_rubrique: 97
lang: fr
langue_choisie: non
maj: 2012-12-17 07:24:41
-
id_breve: 4
date_heure: 2013-01-28 00:00:00
titre: Formation Débogage
texte: |-
La Maison de la Simulation organise en collaboration avec le Groupe Calcul et dans le cadre du projet Equip@meso, une formation "Débogage".
L'objectif de cette formation est de donner les connaissances minimales pour déboguer efficacement des codes de calcul. Nous présenterons la construction et l'architecture d'un programme et différents outils de débogage libres et un outil orienté HPC. Nous couvrirons le spectre depuis la programmation séquentielle jusqu'à la programmation parallèle (MPI et OpenMP). Les outils présentés en cours seront utilisés lors de séances de travaux pratiques.
Cette formation aura lieu à la Maison de la Simulation du 28 au 30 janvier 2013.
lien_titre: Formation Débogage Mds/Calcul
lien_url: http://www.maisondelasimulation.fr/Phocea/Vie_des_labos/Seminaires/index.php?type=2&id=36
statut: publie
id_rubrique: 97
lang: fr
langue_choisie: non
maj: 2012-12-17 07:23:46
-
id_breve: 5
date_heure: 2013-04-09 00:00:00
titre: 10 ans du Groupe Calcul : "Histoire du Calcul"
texte: |-
Le Groupe Calcul fête ses 10 ans en organisant une journée autour de l'"Histoire du Calcul" le 9 avril 2013, à l'IHP.
[Toutes les informations->art219]
lien_titre:
lien_url:
statut: publie
id_rubrique: 97
lang: fr
langue_choisie: non
maj: 2012-12-17 07:35:48
-
id_breve: 6
date_heure: 2013-03-18 00:00:00
titre: Atelier "Initiation à PETSc"
texte: |-
Le Groupe Calcul et la Maison de la Simulation proposent, dans le cadre du projet Equip@meso, une formation d'initiation à la librairie PETSc du lundi 18 mars au mercredi 20 mars 2013.
Cette formation aura lieu à la Maison de la Simulation.
Le programme complet, ainsi que les modalités d'inscriptions, sont disponibles ici :
http://www.maisondelasimulation.fr/Phocea/Vie_des_labos/Seminaires/index.php?type=2&id=37
Les intervenants sont Jérémy Foulon, Loïc Gouarin et Serge Van Criekingen.
Notez que cette formation sera "rejouée" (par les mêmes intervenants) dans la région lyonnaise du 13 au 15 mai 2013 : http://lyoncalcul.univ-lyon1.fr/spip.php?article3
lien_titre:
lien_url:
statut: publie
id_rubrique: 97
lang: fr
langue_choisie: non
maj: 2013-03-26 07:44:43
-
id_breve: 7
date_heure: 2013-03-25 00:00:00
titre: Ecole "précision et reproductibilité en calcul numérique"
texte: |-
Le Groupe Calcul organise du 25 au 29 mars 2013 à Fréjus une école sur la précision et la reproductibilité en calcul numérique.
Pour plus d'information, aller [ici->rub98]
lien_titre:
lien_url:
statut: publie
id_rubrique: 97
lang: fr
langue_choisie: non
maj: 2013-01-23 15:01:55
-
id_breve: 8
date_heure: 2013-03-01 17:10:36
titre: Parallel linear algebra @ MdS
texte: |-
Formation PATC 'Parallel linear algebra' à la Maison de la Simulation du
27 au 29 mars 2013.
[Plus d'informations->http://events.prace-ri.eu/conferenceDisplay.py?confId=121].
lien_titre:
lien_url:
statut: prop
id_rubrique: 97
lang: fr
langue_choisie: non
maj: 2013-03-01 16:10:36
-
id_breve: 9
date_heure: 2013-05-29 11:56:38
titre: Appel à projets parallélisation et optimisation de codes de calcul
texte: |-
L'INSMI, le groupe Calcul et la Maison de la Simulation (MdS) lancent un appel à projets pour aider à la parallélisation de codes de calcul.
Cet appel est ouvert aux doctorants, postdoctorants et jeunes chercheurs ou enseignants-chercheurs des laboratoires de l'INSMI.
Il permet de financer l'accueil d'un chercheur à la MdS pour paralléliser un code de calcul ou pour aider à l'optimisation et l'exécution d'un code existant sur un supercalculateur.
La durée de l'accueil est de quelques semaines et dépend des travaux envisagés. Les travaux doivent commencer avant fin décembre 2013.
L'INSMI finance le séjour et les trajets du chercheur. La MdS aide au projet grâce au soutien de ses ingénieurs.
Les personnes intéressées sont invitées à envoyer (par courriel à helluy@unistra.fr) un descriptif du projet sur une page, comportant les informations suivantes:
-* Titre du projet
-* Nom, prénom du candidat et des éventuels directeurs de thèse.
-* Descriptif des travaux prévus pour le passage d'un code de recherche sur supercalculateur, résultats attendus.
-* Durée des travaux (idéalement entre 3 et 12 semaines).
L'appel d'offres se fait au fil de l'eau et la réponse aux demandes sera très rapide.
lien_titre:
lien_url:
statut: publie
id_rubrique: 97
lang: fr
langue_choisie: non
maj: 2013-05-30 14:13:21
-
id_breve: 10
date_heure: 2013-12-02 00:00:00
titre: ANF "Python avancé en calcul scientifique"
texte: |-
le groupe Calcul organise du 2 au 6 décembre 2013 une Action Nationale de Formation (ANF) sur "Python avancé en calcul scientifique" à Biarritz au domaine de Françon (http://www.vtf-vacances.com/groupe/seminaire-lieu-pyrenees-atlantiques-aquitaine-biarritz,140.html).
Pour plus d'informations, veuillez aller à la page suivante
[http://calcul.math.cnrs.fr/spip.php?rubrique102->http://calcul.math.cnrs.fr/spip.php?rubrique102]
lien_titre:
lien_url:
statut: publie
id_rubrique: 97
lang: fr
langue_choisie: non
maj: 2013-06-28 08:39:04
-
id_breve: 11
date_heure: 2013-09-19 00:00:00
titre: 6ème journée méso-centres
texte: |-
Le groupe Calcul et la coordination des mésoc-centres organisent le 19 septembre 2013 la 6ème journée méso-centres à l'IHP (Paris).
Pour plus d'informations, veuillez vous reporter à la page suivante
[http://calcul.math.cnrs.fr/spip.php?article229->http://calcul.math.cnrs.fr/spip.php?article229]
lien_titre:
lien_url:
statut: publie
id_rubrique: 97
lang: fr
langue_choisie: non
maj: 2013-06-28 08:42:25
-
id_breve: 12
date_heure: 2013-10-07 00:00:00
titre: Ecole "optimisation"
texte: |-
Le Groupe Calcul et la Maison de la Simulation, dans le cadre d'equip@meso, vous proposent une école sur les méthodes d'optimisation de codes au niveau séquentiel et parallèle.
Pour plus de renseignements
[http://calcul.math.cnrs.fr/spip.php?article233->art233]
lien_titre:
lien_url:
statut: publie
id_rubrique: 97
lang: fr
langue_choisie: non
maj: 2013-09-11 06:27:09
-
id_breve: 13
date_heure: 2013-11-13 00:00:00
titre: Journées SUCCES
texte: |-
Les Journées SUCCES sont des rencontres Scientifiques des Utilisateurs du Calcul intensif, de Cloud Et de Stockage, organisées conjointement avec France Grilles. Elles se sont tenues du 13 au 14 novembre 2013 à l'IPGP.
Pour plus de renseignements
[http://succes2013.sciencesconf.org/->http://succes2013.sciencesconf.org/]
lien_titre:
lien_url:
statut: publie
id_rubrique: 97
lang: fr
langue_choisie: non
maj: 2013-11-27 05:10:06
-
id_breve: 14
date_heure: 2014-02-25 07:36:35
titre: Mini-Symposium CANUM 2014
texte: Le GDR Calcul organise un mini-symposium lors du congrès [CANUM 2014->http://smai.emath.fr/canum2014] : "A nouvelles machines, nouveaux algorithmes".
lien_titre:
lien_url:
statut: publie
id_rubrique: 97
lang: fr
langue_choisie: non
maj: 2014-02-25 06:36:35
-
id_breve: 15
date_heure: 2014-06-11 00:00:00
titre: Atelier "Profilage de codes de calcul"
texte: |-
avec le mésocentre de Centrale Paris, 11 juin 2014, Châtenay-Malabry.
Pour plus d'informations, cest [ici->243].
lien_titre:
lien_url:
statut: publie
id_rubrique: 97
lang: fr
langue_choisie: non
maj: 2014-05-14 08:04:16
-
id_breve: 16
date_heure: 2014-07-07 00:00:00
titre: Ecole "optimisation"
texte: |-
2ème édition de l'école "optimisation" qui se tiendra à Strasbourg du 7 au 11 juillet 2014.
Pour plus d'informations, c'est [ici->art240].
lien_titre:
lien_url:
statut: publie
id_rubrique: 97
lang: fr
langue_choisie: non
maj: 2014-05-14 08:07:32
-
id_breve: 17
date_heure: 2014-10-07 00:00:00
titre: 7ème journée mésocentres
texte: [7ème journée mésocentres -> art242] le 7 octobre 2014 à l'IHP
lien_titre:
lien_url:
statut: publie
id_rubrique: 97
lang: fr
langue_choisie: non
maj: 2014-07-04 07:00:01
-
id_breve: 18
date_heure: 2014-10-29 00:00:00
titre: C++: vers 2011 et au-delà
texte: |-
[Atelier "C++: vers 2011 et au-delà"->art246] du 29 au 31 octobre 2014 à l'IHP
lien_titre:
lien_url:
statut: publie
id_rubrique: 97
lang: fr
langue_choisie: non
maj: 2014-07-04 07:01:35
-
id_breve: 19
date_heure: 2014-11-17 00:00:00
titre: Ecole thématique sur les méthodes multigrilles
texte: Pour plus d'information: [Ecole thématique sur les méthodes multigrilles->rub106]
lien_titre:
lien_url:
statut: publie
id_rubrique: 97
lang: fr
langue_choisie: non
maj: 2014-09-03 08:41:24
-
id_breve: 20
date_heure: 2014-10-27 11:40:54
titre: Atelier "Profilage des codes de calcul OpenMP"
texte: |-
avec le mésocentre de Centrale Paris, du 10 au 11 décembre 2014, Châtenay-Malabry.
Plus d'informations : [Atelier "Profilage des codes de calcul OpenMP->art251"]
lien_titre:
lien_url:
statut: prop
id_rubrique: 97
lang: fr
langue_choisie: non
maj: 2014-10-27 10:42:41
-
id_breve: 21
date_heure: 2015-04-28 16:17:00
titre: Atelier C++ : les bases du 11 et du 14
texte: voir l'[article->art254]
lien_titre:
lien_url:
statut: publie
id_rubrique: 97
lang: fr
langue_choisie: non
maj: 2015-02-18 16:18:16
-
id_breve: 22
date_heure: 2015-06-16 00:00:00
titre: Atelier Julia
texte: |-
pour plus d'information
http://calcul.math.cnrs.fr/spip.php?article259
lien_titre:
lien_url:
statut: publie
id_rubrique: 2
lang: fr
langue_choisie: non
maj: 2015-04-30 14:52:46
-
id_breve: 23
date_heure: 2015-10-05 00:00:00
titre: ANF - R avancé et performances
texte: |-
Pour plus d'informations
http://calcul.math.cnrs.fr/spip.php?article257
lien_titre:
lien_url:
statut: publie
id_rubrique: 2
lang: fr
langue_choisie: non
maj: 2015-04-30 14:53:49
-
id_breve: 24
date_heure: 2015-06-19 00:00:00
titre: Méthode de Galerkin discontinue et ses applications
texte: |-
Pour plus d'informations
http://calcul.math.cnrs.fr/spip.php?article258
lien_titre:
lien_url:
statut: publie
id_rubrique: 2
lang: fr
langue_choisie: non
maj: 2015-04-30 14:55:46
-
id_breve: 25
date_heure: 2016-05-25 17:12:35
titre: CANUM 2016, mini-symposium sur "La recherche reproductible".
texte: voir l'[article->art268]
lien_titre:
lien_url:
statut: publie
id_rubrique: 97
lang: fr
langue_choisie: non
maj: 2016-05-25 17:12:44
-
id_breve: 26
date_heure: 2016-07-08 10:33:24
titre: 9èmes journées méso-centres
texte: 9èmes journées méso-centres les 11 et 12 octobre 2016 à l'IHP
lien_titre:
lien_url:
statut: publie
id_rubrique: 97
lang: fr
langue_choisie: non
maj: 2016-07-08 10:33:24
-
id_breve: 27
date_heure: 2017-05-10 07:38:39
titre: 10èmes journées méso-centres les 26 et 27...
texte: 10èmes journées méso-centres les 26 et 27 septembre 2017 à l’IHP
lien_titre: 10èmes journées méso-centres
lien_url:
statut: publie
id_rubrique: 97
lang: fr
langue_choisie: non
maj: 2017-05-10 07:38:39
-
id_breve: 28
date_heure: 2017-10-02 16:24:28
titre: Journée Python et Data Science le 19 décembre...
texte: [Journée Python et Data Science->art287] le 19 décembre 2017 à l'institut de recherche mathématiques de Rennes.
lien_titre:
lien_url:
statut: publie
id_rubrique: 97
lang: fr
langue_choisie: non
maj: 2017-10-02 16:31:57
-
id_breve: 29
date_heure: 2017-10-09 11:55:32
titre: Atelier Visualisation In Situ
texte: [Atelier Visualisation In Situ ->art288] du 11 au 13 décembre 2017 à l'Institut de Mécanique des Fluides de Toulouse.
lien_titre: Atelier Visualisation In Situ
lien_url: http://calcul.math.cnrs.fr/spip.php?article288
statut: publie
id_rubrique: 97
lang: fr
langue_choisie: non
maj: 2017-10-09 12:03:34
-
id_breve: 30
date_heure: 2018-03-20 17:39:41
titre: ANF ExpéNum
texte: [ANF ExpéNum ->art289] du 4 au 8 juin 2018 à l'école centrale de Lyon.
lien_titre: ANF ExpéNum
lien_url: http://calcul.math.cnrs.fr/spip.php?article289
statut: publie
id_rubrique: 97
lang: fr
langue_choisie: non
maj: 2018-03-25 20:21:35
-
id_breve: 33
date_heure: 2018-06-12 12:00:00
titre: Journées GPGPU
texte: [Journées GPGPU ->art292] du 12 au 13 juin 2018 à Lyon.
lien_titre: Journées GPGPU
lien_url: http://calcul.math.cnrs.fr/spip.php?article292
statut: publie
id_rubrique: 10
lang: fr
langue_choisie: non
maj: 2018-05-08 11:50:45
-
id_breve: 31
date_heure: 2018-03-25 20:12:03
titre: ANF UST4HPC
texte: [ANF UST4HPC ->art290] du 14 au 18 mai 2018 à Fréjus.
lien_titre: ANF UST4HPC
lien_url: https://ust4hpc.sciencesconf.org/
statut: publie
id_rubrique: 97
lang: fr
langue_choisie: non
maj: 2018-03-25 20:12:44
-
id_breve: 32
date_heure: 2018-03-25 20:19:01
titre: École GEOMDATA
texte: [École GEOMDATA ->art291] du 10 au 14 septembre 2018 à Fréjus.
lien_titre: École GEOMDATA
lien_url: https://geomdata.sciencesconf.org/
statut: publie
id_rubrique: 97
lang: fr
langue_choisie: non
maj: 2018-03-25 20:19:06
...
......@@ -39,11 +39,17 @@ def clean_titles(s):
"""Return a clean title line"""
title_type = matchobj.group(1)
title = matchobj.group(2)
title = re.sub(r"'", "''", title) # Avoid real text simple quote to be interpreted as end of string
return f"{title_type}'{title}'"
if title.startswith("|-"):
# Do not replace if multiline content
return matchobj.group(0)
else:
# Avoid real text simple quote to be interpreted as end of string
title = re.sub(r"'", "''", title)
return f"{title_type}'{title}'"
s = re.sub('^( titre: )(.*)$', title_replace, s, flags=re.MULTILINE)
s = re.sub('^( nom_site: )(.*)$', title_replace, s, flags=re.MULTILINE)
s = re.sub('^( texte: )(.*)$', title_replace, s, flags=re.MULTILINE)
return s
......@@ -96,3 +102,4 @@ if __name__ == '__main__':
clean_yaml("spip_auteurs.yml")
clean_yaml("spip_articles.yml")
clean_yaml("spip_rubriques.yml")
clean_yaml("spip_breves.yml")
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment