Précisions sur des extensions de citeproc-js

This commit is contained in:
Bastien Dumont 2021-01-05 07:56:29 +01:00
parent 681b56bf85
commit 970d6c8af1

View File

@ -70,7 +70,9 @@ Pour les historiens, son point faible le plus évident est le manque de support
Pour plus de détails, voir [cette discussion](https://github.com/citation-style-language/schema/issues/388) sur le dépôt officiel du schéma CSL. Pour plus de détails, voir [cette discussion](https://github.com/citation-style-language/schema/issues/388) sur le dépôt officiel du schéma CSL.
]. ].
Bien que ce point ne soit pas explicité, les spécifications actuelles de CSL (v. 1.0.1) semblent supposer que la localisation d'un passage dans une publication se fait en fonction d'un critère unique, tel que la page, le chapitre ou la ligne. Les processeurs, en accord avec les tests officiels, ne prévoient en tout cas que ce cas de figure. Or, le plus souvent, lorsque l'on précise la ligne, on indique aussi la page, le folio ou la colonne. De même, on peut avoir besoin de citer une source à la fois selon les divisions internes de la source (p. ex. VI, 5) et selon la page dans l'édition. De ce fait, dans les boîtes de dialogue d'ajout de citation, on ne peut renseigner qu'un des deux critères de localisation dans le champ approprié, l'autre étant à ajouter en suffixe (voir [@fig:double-locator-zotero]). Cela pose problème à double titre : d'abord parce que certains localisateurs, dans certains styles, sont rendus différemment selon qu'ils sont seuls ou combinés à d'autres^[ Bien que ce point ne soit pas explicité, les spécifications actuelles de CSL (v. 1.0.1) semblent supposer que la localisation d'un passage dans une publication se fait en fonction d'un critère unique, tel que la page, le chapitre ou la ligne. Les processeurs, en accord avec les tests officiels, ne prévoient en tout cas que ce cas de figure^[
Il semblerait que [*citeproc-js* supporte les cas les plus simples de localisations selon plusieurs critères](https://forums.zotero.org/discussion/comment/350840). Toutefois, je n'ai pas réussi à le vérifier.
]. Or, le plus souvent, lorsque l'on précise la ligne, on indique aussi la page, le folio ou la colonne. De même, on peut avoir besoin de citer une source à la fois selon les divisions internes de la source (p. ex. VI, 5) et selon la page dans l'édition. De ce fait, dans les boîtes de dialogue d'ajout de citation, on ne peut renseigner qu'un des deux critères de localisation dans le champ approprié, l'autre étant à ajouter en suffixe (voir [@fig:double-locator-zotero]). Cela pose problème à double titre : d'abord parce que certains localisateurs, dans certains styles, sont rendus différemment selon qu'ils sont seuls ou combinés à d'autres^[
Comparer p. ex. « La Fontaine, *À Fouquet*, l. 7 » (ligne seule) et « La Fontaine, *Le Songe de Vaux*, p. 26^5^ » (page et ligne en exposant). Voir aussi [cette discussion](https://github.com/citation-style-language/schema/issues/342). Comparer p. ex. « La Fontaine, *À Fouquet*, l. 7 » (ligne seule) et « La Fontaine, *Le Songe de Vaux*, p. 26^5^ » (page et ligne en exposant). Voir aussi [cette discussion](https://github.com/citation-style-language/schema/issues/342).
] ; ensuite parce que cette lacune oblige à mettre en forme une partie des localisateurs directement dans le champ *Suffixe*, ce qui peut poser problème en cas de modification des normes suivies. Par ailleurs, CSL prévoit une grande variété de critères de localisation dans les *citations*, mais pas dans les *références bilbiographiques* : ainsi, on peut se référerer à un folio précis d'un manuscrit dans une citation, mais non indiquer la localisation d'une œuvre dans un manuscrit dans la bibliographie. ] ; ensuite parce que cette lacune oblige à mettre en forme une partie des localisateurs directement dans le champ *Suffixe*, ce qui peut poser problème en cas de modification des normes suivies. Par ailleurs, CSL prévoit une grande variété de critères de localisation dans les *citations*, mais pas dans les *références bilbiographiques* : ainsi, on peut se référerer à un folio précis d'un manuscrit dans une citation, mais non indiquer la localisation d'une œuvre dans un manuscrit dans la bibliographie.
@ -103,7 +105,7 @@ Actuellement, pour bénéficier malgré tout des avantages de CSL, chacun doit d
On peut surmonter de trois manières différentes le fait que les spécifications CSL et les gestionnaires de bibliographie ne déterminent pas de stratégies d'encodage claire pour une partie des besoins relatifs à la discipline historique : On peut surmonter de trois manières différentes le fait que les spécifications CSL et les gestionnaires de bibliographie ne déterminent pas de stratégies d'encodage claire pour une partie des besoins relatifs à la discipline historique :
#. N'utiliser que les fonctionnalités offertes, en modifiant et en complétant à la main le résultat produit par le processeur CSL. Ainsi, pour indiquer une source, on peut enregistrer la publication dans laquelle elle est éditée dans *Zotero*, choisir un style assez proche de celui de la revue visée et ajouter à la main la mention de l'auteur et du nom de la source. Cette solution n'implique aucun bricolage, limite au minimum le temps d'apprentissage et laisse aux revues la possibilité de proposer des styles CSL sur les dépôts officiels qui ne sont pas complètement conformes à leurs directives, mais suivent en revanche rigoureusement les spécifications de CSL. Elle ne permet toutefois pas de tirer pleinement profit des possibilités de CSL et impose un long temps de vérification et de correction ; #. N'utiliser que les fonctionnalités offertes, en modifiant et en complétant à la main le résultat produit par le processeur CSL. Ainsi, pour indiquer une source, on peut enregistrer la publication dans laquelle elle est éditée dans *Zotero*, choisir un style assez proche de celui de la revue visée et ajouter à la main la mention de l'auteur et du nom de la source. Cette solution n'implique aucun bricolage, limite au minimum le temps d'apprentissage et laisse aux revues la possibilité de proposer des styles CSL sur les dépôts officiels qui ne sont pas complètement conformes à leurs directives, mais suivent en revanche rigoureusement les spécifications de CSL. Elle ne permet toutefois pas de tirer pleinement profit des possibilités de CSL et impose un long temps de vérification et de correction ;
#. Inventer des variables qui ne figurent pas dans les spécifications CSL et rédiger des feuilles de style qui les utilisent. Cette solution est applicable dans la mesure où le processeur utilisé supporte les variables non standard, ce qui est le cas de *citeproc-js* (le plus répandu) et de *citeproc* (sur lequel s'appuie Pandoc) ; #. Inventer des variables qui ne figurent pas dans les spécifications CSL et rédiger des feuilles de style qui les utilisent. Cette solution est applicable dans la mesure où le processeur utilisé supporte les variables non standard, ce qui est le cas de *citeproc-js* (le plus répandu) et de *citeproc* (sur lequel s'appuie Pandoc)^[Le logiciel [*Juris-M*](https://juris-m.github.io/), basé sur *Zotero*, fait un usage important de cette possibilité et utilise même des extensions à la syntaxe de CSL qui sont implémentées dans *citeproc-js*. Il offre des fonctionnalités intéressantes, mais [celles qui pourraient être utilisées pour les références aux sources primaires](!-- REF forum Zotero -->) ne résolvent pas tous les problèmes et risquent d'en poser pour la mise en forme de la bibliographie. En outre, CSL-M ne comble pas toutes les lacunes de CSL pour les historiens et n'est compatible qu'avec *citeproc-js*.] ;
#. Utiliser des variables existantes d'une manière qui n'est pas prévue par les spécifications, ce qui permet de respecter formellement le schéma CSL et de créer des styles compatibles avec tous les processeurs. Plus précisément, cette stratégie consiste à *spécialiser* des variables très abstraites (telles que `annote` pour indiquer un titre de source) et à *détourner* des variables plus spécialisées dont les historiens n'ont a priori pas besoin (telles que `original-publisher` pour indiquer la langue d'origine d'un document traduit). #. Utiliser des variables existantes d'une manière qui n'est pas prévue par les spécifications, ce qui permet de respecter formellement le schéma CSL et de créer des styles compatibles avec tous les processeurs. Plus précisément, cette stratégie consiste à *spécialiser* des variables très abstraites (telles que `annote` pour indiquer un titre de source) et à *détourner* des variables plus spécialisées dont les historiens n'ont a priori pas besoin (telles que `original-publisher` pour indiquer la langue d'origine d'un document traduit).
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. 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.