Premier jet de Objectifs de CSL/Clio (styles)

This commit is contained in:
Bastien Dumont 2020-12-30 12:44:22 +01:00
parent 633d751e47
commit f540d3a2de

View File

@ -104,8 +104,45 @@ On peut surmonter de trois manières différentes le fait que les spécification
Le projet *CSL/Clio* repose sur la troisième option. Certes, l'invention de nouvelles variables présente l'avantage de la clarté, et le détournement de variables existantes pourrait entrer en conflit avec des besoins imprévus. J'ai choisi de privilégier la compatibilité avec le plus grand nombre de processeurs. De plus, l'utilisation de variables non standard interdirait de placer les styles développés dans le cadre de *CSL/Clio* dans les dépôts de CSL et de *Zotero*. J'espère que les évolutions futures de CSL permettront de se passer du détournement de variables ; si les adaptations nécessaires à notre discipline se limitent à des spécialisations, une intégration aux dépôts officiels deviendra envisageable.
Ces règles sont exposées dans la partie [*Gérer ses données bibliographiques avec Zotero*](#gérer-ses-données-bibliographiques-avec-zotero).
### Créer un ensemble de styles cohérent et interopérables
Le premier objectif de *CSL/Clio* est donc de fournir des règles communes pour encoder des bibliographies selon les catégories prévues par CSL, en définissant quelles variables peuvent être spécialisées ou détournées pour quels types d'information. Ce vocabulaire commun constitue une condition préalable à la création de styles interopérables, c'est-à-dire qui puissent tous être utilisés avec une base de données bibliographique qui suit ces règles. Une autre condition est l'existence de règles communes pour structurer les styles. L'idée principale est de diviser le code en *modules*, c'est-à-dire de petites unités, de manière à ce que l'on puisse facilement comprendre comment il est organisé et créer un autre style en le modifiant.
Considérons, par exemple, la structure non modulaire suivante (écrite en pseudo-code et non en XML) :
~~~
Pour toute citation, réaliser les étapes suivantes en séparant les segments par des virgules :
— Afficher le nom de l'auteur avec le prénom abrégé avant le nom en petites capitales ;
— Afficher le titre en italiques s'il s'agit d'un livre, en caractères droits avec des guillemets s'ils s'agit d'un article ;
— Afficher la maison d'édition en caractères droits s'il s'agit d'un livre, la nom de la revue en italiques s'il s'agit d'un article.
~~~
Si l'on veut modifier un seul aspect (p. ex. retirer les guillemets d'un titre d'article), il faut parcourir tout le code pour trouver le passage concerné ; or, les règles des revues en histoire sont souvent beaucoup plus raffinées que cela. Le code modulaire suivant sera beaucoup plus facile à comprendre et à manier à mesure qu'il se complexifiera :
~~~
Pour toute citation, réaliser les étapes suivantes en séparant les segments par des virgules :
— Appliquer la macro "nom de l'auteur" ;
— Appliquer la macro "titre" ;
— Appliquer la macro "publication".
Macro "nom de l'auteur" :
— Afficher le nom de l'auteur avec le prénom abrégé avant le nom en petites capitales.
Macro "titre" :
— Afficher le titre en italiques s'il s'agit d'un livre, en caractères droits avec des guillemets s'ils s'agit d'un article.
Macro "publication" :
— Afficher la maison d'édition en caractères droits s'il s'agit d'un livre, la nom de la revue en italiques s'il s'agit d'un article.
~~~
Si l'on reprend l'exemple précédent, on saura immédiatement qu'il faut modifier la macro "titre" pour supprimer les guillemets, et ce d'autant plus s'il est convenu que tous les styles doivent indiquer la mise en forme du titre principal du document (et seulement cela) dans un macro appelée "titre".
Pour garantir que les styles produise bien la mise en forme attendue, ils sont contrôlés automatiquement après chaque modification. D'une part, *CSL/Clio* intrègre une bibliographie type d'une cinquantaine d'items représentant chacun une configuration différente. D'autre part, chaque style est associé à un fichier qui indique la mise en forme attendue par la revue ou l'éditeur pour chacun de ces items dans différentes situations (première citation, citation ultérieure, en combinaison,...). Un style ne sera pas mis en ligne tant qu'il ne produira pas un rendu conforme, et il ne sera pas modifié si la modification proposée entraîne des effets indésirables.
Les conventions suivies dans *CSL/Clio* sont exposées dans la partie [Programmer de nouveaux styles](#programmer-de-nouveaux-styles). Contrairement aux règles d'enregistrement des données bibliographiques, il n'est pas nécessaires de les connaître si l'on ne souhaite pas en programmer soi-même de feuille de style CSL. Cependant, il est bon d'avoir conscience que les styles mis à disposition par le projet *CSL/Clio* suivent des stratégies précises qui ne sont pas suivies par ceux des dépôts officiels. Le lecteur sera également rassuré de savoir que les conventions suivies permettent de produire des styles fiables et que l'on peut aisément corriger ou modifier pour produire d'autres styles.
### Coupler CSL avec des outils de post-traitement
<!-- À terme, mon souhait est que le langage CSL soit étendu de sorte que ces styles ne reposent plus sur des détournements et puissent être intégrés au dépôt officiel. -->