simplification

This commit is contained in:
Bastien Dumont 2021-03-09 23:09:20 +01:00
parent f53960bb87
commit a7a657cf44

View File

@ -788,7 +788,7 @@ Suivant un principe éprouvé et largement appliqué en programmation, [le code
* Contrairement à l'usage courant dans les fichiers CSL, l'ordre des macros va de la plus générale à la plus précise : ainsi, un coup d'œil sur le début du fichier (macros `citation` et `bibliography`) donne une indication sur la logique d'ensemble, puis la poursuite de la lecture permet d'acquérir une compréhension de plus en plus précise; * Contrairement à l'usage courant dans les fichiers CSL, l'ordre des macros va de la plus générale à la plus précise : ainsi, un coup d'œil sur le début du fichier (macros `citation` et `bibliography`) donne une indication sur la logique d'ensemble, puis la poursuite de la lecture permet d'acquérir une compréhension de plus en plus précise;
* Les choix conditionnels et les instructions de mise en forme doivent être reléguées dans les macros de plus bas niveau possible. Par exemple : * Les choix conditionnels et les instructions de mise en forme doivent être reléguées dans les macros de plus bas niveau possible. Par exemple :
* On n'indiquera pas dans la macro `citation` que le titre d'un article doit être indiqué en caractères droits et celui d'un livre en italiques : la macro `citation` contiendra un appel à la macro `publicationTitle`, qui elle-même contiendra ces informations; * On n'indiquera pas dans la macro `citation` que le titre d'un article doit être indiqué en caractères droits et celui d'un livre en italiques : la macro `citation` contiendra un appel à la macro `publicationTitle`, qui elle-même contiendra ces informations;
* Dans `REB.csl`, la macro `publicationReference` appelle `publicationTitle` sans considérer si l'on est dans le cas d'une source pour laquelle la variable `year-suffix` a été renseignée dans le champ _Extra_, indiquant que le titre de la publication est redondant et ne doit pas être affiché. Ce n'est que dans la macro `publicationTitle` qu'apparaît l'instruction selon laquelle il ne faut rien afficher si la variable `year-suffix` est renseignée. Cela permet à la macro `publicationReference` de donner uniquement les informations qu'elle doit donner : dans quel ordre sont affichés, le cas échéant, les différents composants de la citation, et par quels caractères ils sont séparés. * Dans `REB.csl`, la macro `publicationReference` appelle systématiquement `publicationTitle`. Ce n'est que dans la macro `publicationTitle` qu'apparaît l'instruction selon laquelle il ne faut rien afficher si la variable `year-suffix` est renseignée. Cela permet à la macro `publicationReference` d'indiquer seulement dans quel ordre sont affichés, le cas échéant, les différents composants de la citation, et par quels caractères ils sont séparés.
* Le nom d'une macro doit indiquer précisément ce qu'elle fait : `publicationTitle` s'occupe du titre principal d'une publication (et non d'une source), `titleInItalics` produit un titre en italiques; * Le nom d'une macro doit indiquer précisément ce qu'elle fait : `publicationTitle` s'occupe du titre principal d'une publication (et non d'une source), `titleInItalics` produit un titre en italiques;
* Par convention, les noms de macros doivent être en _camelCase_; * Par convention, les noms de macros doivent être en _camelCase_;
* Les macros doivent être courtes (entre 3 et 40 lignes). Dès que vous imbriquez des choix conditionnels ou que vous mêlez des informations sur des parties différentes de la citation (titre, auteur,...), demandez-vous si vous ne pourriez pas créer différentes macros pour gérer ces différents problèmes et les appeler dans votre macro principale. La logique d'ensemble n'en sera que plus claire; * Les macros doivent être courtes (entre 3 et 40 lignes). Dès que vous imbriquez des choix conditionnels ou que vous mêlez des informations sur des parties différentes de la citation (titre, auteur,...), demandez-vous si vous ne pourriez pas créer différentes macros pour gérer ces différents problèmes et les appeler dans votre macro principale. La logique d'ensemble n'en sera que plus claire;