diff options
Diffstat (limited to 'docs')
-rw-r--r-- | docs/posts/2024-05-06-la-saisie-du-texte-dans-un-nouveau-document.html | 136 |
1 files changed, 70 insertions, 66 deletions
diff --git a/docs/posts/2024-05-06-la-saisie-du-texte-dans-un-nouveau-document.html b/docs/posts/2024-05-06-la-saisie-du-texte-dans-un-nouveau-document.html index a67148f..058d925 100644 --- a/docs/posts/2024-05-06-la-saisie-du-texte-dans-un-nouveau-document.html +++ b/docs/posts/2024-05-06-la-saisie-du-texte-dans-un-nouveau-document.html @@ -180,19 +180,21 @@ Du fait de mon implication dans Stylo, le regard que je porte sur ce terrain n†<p>Chaque environnement d’écriture incarne un modèle et une vision du traitement de l’information, que l’on peut englober sous le nom de cet environnement. Lors de l’interaction entre un usager et une machine, par le biais de cet environnement, les médiations à l’oeuvre sont des représentations de ce modèle dont les traces présentes dans les documents sont les indices.</p> <p>En prenant le cas de Stylo, nous pouvons détailler ce que désigne cette appellation en fouillant l’architecture logicielle, puisque le code est en libre accès, afin de cibler les traces de cette relation entre l’auteur et son environnement.</p> <p>Tout d’abord, Stylo représente un espace sur le Web dans lequel nous pouvons écrire en suivant la syntaxe de trois formats de texte brut, le Markdown, le YAML et le BibTeX. Le Web fonctionne différemment d’un environnement local sur son ordinateur personnel.</p> -<p>Alain Mille en dresse l’histoire depuis les débuts d’Internet dans les années 1960 <span class="citation" data-cites="mille_internet_2014">(2014)</span> à partir du réseau filaire ARPAnet …</p> -<p>Sur le Web, les données sont généralement séparées de l’espace d’affichage et sont stockées sur un serveur, dans une base de données. Il y aurait donc au moins deux modules différents, la partie <em>client</em> – ce qui est affiché dans le navigateur – et la partie <em>serveur</em>, soit la base de données. Dans notre cas, nous allons scinder l’ architecture logicielle de Stylo en trois parties.</p> +<p>Alain Mille en dresse l’histoire depuis les débuts d’Internet dans les années 1960 <span class="citation" data-cites="mille_internet_2014">(2014)</span> à partir du réseau filaire ARPAnet développé par le département de la défense américaine. Seulement, comme le souligne A. Mille, il manque une brique pour naisse l’Internet : un protocole de transfert des documents. Le premier protocole a vu le jour en 1969<a href="#fn14" class="footnote-ref" id="fnref14" role="doc-noteref"><sup>14</sup></a> et a fait l’objet de la première RFC<a href="#fn15" class="footnote-ref" id="fnref15" role="doc-noteref"><sup>15</sup></a> (<em>Request for comments</em>) avant de trouver une forme plus aboutie dans le protocole TCP en 1974 et permet avec sa distribution sous forme de paquets la naissance d’Internet. Ce n’est qu’en 1990, au CERN ((Organisation européenne pour la recherche nucléaire)), que Tim Berners-Lee participe à la conception du Web – et du <em>World Wide Web</em> – pour pallier le problème d’échanges de documents numériques rencontré dans cette institution grâce au développement du langage de balisage HTML. Le Web vient donc répondre à un besoin, celui de la compatibilité des informations et de leur interoperabilité dans une structure. En créant un environnement spécifique composés de normes de structuration des informations interprétable par un logiciel – le navigateur, le Web devient agnostique et ne dépend plus de la même couche d’abstraction logicielle qu’un environnement local. L’ordinateur devient un terminal, un client à partir duquel on peut se connecter au réseau et accéder aux informations qui y circulent.</p> +<p>Sur le Web, les données sont généralement séparées de l’espace d’affichage et sont stockées sur un serveur, dans une base de données. Il y aurait donc au moins deux modules différents, la partie <em>client</em> – ce qui est affiché dans le navigateur – et la partie <em>serveur</em>, soit la base de données.</p> +<p>[Faire une petite transition]</p> +<p>Dans notre cas, nous allons scinder l’ architecture logicielle de Stylo en trois parties.</p> <figure> <img src="https://s3.hedgedoc.org/demo/uploads/afdf01ec-bd0b-4b38-8394-752d6e2d1e4b.png" title="Les différents modules de Stylo" alt="Les différents modules de Stylo" /> <figcaption aria-hidden="true">Les différents modules de Stylo</figcaption> </figure> <p>Tout d’abord, nous retrouvons la base de données où sont stockées toutes les informations et données de Stylo : les comptes utilisateurs, les articles, les espaces de travail, les corpus, etc. Cette base de données est réalisée avec MongoDB, un système de gestion de base de données non relationnelles développé en 2007 et s’appuyant sur des documents structurés en JSON.</p> -<p>Le deuxième bloc de Stylo est le module d’export qui permet de transformer les informations saisies et visibles dans l’éditeur en de multiples documents. Tout ce module est développé et maintenu avec le langage de programmation Python par David Larlet. Cette brique technologique est articulée autour du logiciel de transformation et de conversion Pandoc<a href="#fn14" class="footnote-ref" id="fnref14" role="doc-noteref"><sup>14</sup></a> déployée sur un serveur et rendue accessible via une autre API<a href="#fn15" class="footnote-ref" id="fnref15" role="doc-noteref"><sup>15</sup></a> fabriquée à partir du framework FastAPI<a href="#fn16" class="footnote-ref" id="fnref16" role="doc-noteref"><sup>16</sup></a>. Le module d’export intégré à Stylo<a href="#fn17" class="footnote-ref" id="fnref17" role="doc-noteref"><sup>17</sup></a> permet de convertir et de transformer les textes sources en une multitude d’artefacts, selon les capacités de transformation et de conversion du logiciel Pandoc auquel il est rattaché.</p> +<p>Le deuxième bloc de Stylo est le module d’export qui permet de transformer les informations saisies et visibles dans l’éditeur en de multiples documents. Tout ce module est développé et maintenu avec le langage de programmation Python par David Larlet. Cette brique technologique est articulée autour du logiciel de transformation et de conversion Pandoc<a href="#fn16" class="footnote-ref" id="fnref16" role="doc-noteref"><sup>16</sup></a> déployée sur un serveur et rendue accessible via une autre API<a href="#fn17" class="footnote-ref" id="fnref17" role="doc-noteref"><sup>17</sup></a> fabriquée à partir du framework FastAPI<a href="#fn18" class="footnote-ref" id="fnref18" role="doc-noteref"><sup>18</sup></a>. Le module d’export intégré à Stylo<a href="#fn19" class="footnote-ref" id="fnref19" role="doc-noteref"><sup>19</sup></a> permet de convertir et de transformer les textes sources en une multitude d’artefacts, selon les capacités de transformation et de conversion du logiciel Pandoc auquel il est rattaché.</p> <p>Le dernier bloc de Stylo concerne l’interface que les utilisateurs voient affichée sur leur écran. Étant donné que Stylo est accessible via un navigateur web, l’interface a été conçue avec les technologies de cet environnement. On retrouve des objets en HTML, en CSS et en Javascript. Le <em>framework</em> React, une surcouche à Javascript <em>open source</em> développée par Facebook (aujourd’hui Meta) en 2013, a été employé pour faire les différents composants de l’interface et intégrer de nombreuses librairies telle que <em>i18n</em> qui permet d’implémenter le multilinguisme dans l’interface et changer la langue affichée à l’écran en un seul clic.</p> -<p>L’éditeur de texte, pièce maîtresse de Stylo, s’appuie sur la technologie Monaco<a href="#fn18" class="footnote-ref" id="fnref18" role="doc-noteref"><sup>18</sup></a> développé par Microsoft et rendu disponible sous licence MIT.</p> -<p>Ces deux blocs, la base de données MongoDB et l’interface web, ne sont pas en communication directe. Les champs de texte dans la partie HTML ne permettent pas d’écrire directement dans la base de données. En conséquence, un canal de communication devait être établi entre ces deux objets pour que les données puissent être accessibles à la fois en lecture, pour l’affichage dans la page web, et en écriture pour ajouter, modifier ou supprimer des éléments. Pour mettre en oeuvre cette communication, une API (<em>Application Programming Interface</em>) utilisant le langage de requête GraphQL a été mise en place et rendue accessible via le protocole HTTP (<em>Hypertext Transfert Protocol</em>)<a href="#fn19" class="footnote-ref" id="fnref19" role="doc-noteref"><sup>19</sup></a>, la surcouche du protocole internet utilisée pour le web. Le langage de requête et de manipulation des données GraphQL a également été développé par Facebook à partir de 2012 puis publié en <em>open source</em> en 2015.</p> -<p>L’une des particularités d’une API GraphQL, contrairement à une API REST par exemple, est quelle sert l’ensemble des données à une seule adresse (<em>endpoint</em>) alors que plus généralement, les données sont accessibles à des URL très précises, ce qui a pour effet de rendre explicite la structuration des données dans la base. En ne servant les données qu’à une seule adresse, l’API s’échappe de la contrainte de la structuration des données et contourne les problèmes récurrents d’<em>over-fetching</em> ou d’<em>under-fetching</em> que l’on peut rencontrer dans certaines applications<a href="#fn20" class="footnote-ref" id="fnref20" role="doc-noteref"><sup>20</sup></a> L’API GraphQL est donc agnostique à l’égard de la forme de la base de données. Par contre, la définition de requêtes adressables à la base de données doit être déclarée pour que l’on puisse faire circuler les informations entre le serveur et le client. Pour effectuer cela, GraphQL à son propre langage de description de schéma (SDL, <em>Schema Definition Language</em>) et permet de déclarer explicitement les différentes façons d’écrire une requête.</p> -<p>Par exemple dans Stylo, le champ <code>user</code> contient les informations suivantes<a href="#fn21" class="footnote-ref" id="fnref21" role="doc-noteref"><sup>21</sup></a> :</p> +<p>L’éditeur de texte, pièce maîtresse de Stylo, s’appuie sur la technologie Monaco<a href="#fn20" class="footnote-ref" id="fnref20" role="doc-noteref"><sup>20</sup></a> développé par Microsoft et rendu disponible sous licence MIT.</p> +<p>Ces deux blocs, la base de données MongoDB et l’interface web, ne sont pas en communication directe. Les champs de texte dans la partie HTML ne permettent pas d’écrire directement dans la base de données. En conséquence, un canal de communication devait être établi entre ces deux objets pour que les données puissent être accessibles à la fois en lecture, pour l’affichage dans la page web, et en écriture pour ajouter, modifier ou supprimer des éléments. Pour mettre en oeuvre cette communication, une API (<em>Application Programming Interface</em>) utilisant le langage de requête GraphQL a été mise en place et rendue accessible via le protocole HTTP (<em>Hypertext Transfert Protocol</em>)<a href="#fn21" class="footnote-ref" id="fnref21" role="doc-noteref"><sup>21</sup></a>, la surcouche du protocole internet utilisée pour le web. Le langage de requête et de manipulation des données GraphQL a également été développé par Facebook à partir de 2012 puis publié en <em>open source</em> en 2015.</p> +<p>L’une des particularités d’une API GraphQL, contrairement à une API REST par exemple, est quelle sert l’ensemble des données à une seule adresse (<em>endpoint</em>) alors que plus généralement, les données sont accessibles à des URL très précises, ce qui a pour effet de rendre explicite la structuration des données dans la base. En ne servant les données qu’à une seule adresse, l’API s’échappe de la contrainte de la structuration des données et contourne les problèmes récurrents d’<em>over-fetching</em> ou d’<em>under-fetching</em> que l’on peut rencontrer dans certaines applications<a href="#fn22" class="footnote-ref" id="fnref22" role="doc-noteref"><sup>22</sup></a> L’API GraphQL est donc agnostique à l’égard de la forme de la base de données. Par contre, la définition de requêtes adressables à la base de données doit être déclarée pour que l’on puisse faire circuler les informations entre le serveur et le client. Pour effectuer cela, GraphQL à son propre langage de description de schéma (SDL, <em>Schema Definition Language</em>) et permet de déclarer explicitement les différentes façons d’écrire une requête.</p> +<p>Par exemple dans Stylo, le champ <code>user</code> contient les informations suivantes<a href="#fn23" class="footnote-ref" id="fnref23" role="doc-noteref"><sup>23</sup></a> :</p> <ul> <li>_id</li> <li>displayName</li> @@ -232,13 +234,13 @@ Du fait de mon implication dans Stylo, le regard que je porte sur ce terrain n†<span id="cb2-6"><a href="#cb2-6" aria-hidden="true" tabindex="-1"></a> }</span> <span id="cb2-7"><a href="#cb2-7" aria-hidden="true" tabindex="-1"></a>}</span></code></pre></div> <p>Cet exemple montre qu’il y a une certaine économie de l’information implémentée dans le fonctionnement même de GraphQL pour n’aller chercher que les informations nécessaires pour une requête particulière, pour peu que la requête en elle-même soit bien rédigée. D’ailleurs, il s’agit là d’un des écueils potentiels de GraphQL : des requêtes mal formulées peuvent aller à l’encontre de ce principe.</p> -<p>Dans Stylo, chaque fonctionnalité, chaque bouton (ou presque) qui réalise une action de lecture ou d’écriture est lié à une requête GraphQL. Le protocole HTTP comporte deux méthodes bien connues pour faire circuler des informations entre un client et un serveur : <code>GET</code> et <code>POST</code>. Un des arguments phares présenté par GraphQL est sa dimension agnostique par rapport au protocole de communication des informations employé, que ce soit HTTP ou des WebSockets ou autre. Pourtant, malgré la capacité de GraphQL à être utilisable avec toutes les méthodes d’HTTP<a href="#fn22" class="footnote-ref" id="fnref22" role="doc-noteref"><sup>22</sup></a>, une bonne pratique appliquée par la communauté GraphQL est l’emploi du protocole HTTP couplé à la méthode <code>POST</code> pour tous types de requêtes (que ce soit une <code>query</code>, une <code>mutation</code> ou encore une <code>subscription</code>). Lors de la transmission des informations par la méthode <code>GET</code>, toutes les informations sont insérées dans l’URL ce qui 1) les rend visibles (et vulnérables) et 2) impose une limite du nombre de caractères (aux alentours de 2000 au maximum) au risque de déclencher une erreur 414 (URL trop longue). En conséquence, il est préférable d’utiliser la méthode <code>POST</code> pour envoyer ou récupérer des informations car elles ne seront ni visibles ni limitées en longueur. Malgré l’aspect agnostique de GraphQL, la forme textuelle des requêtes implique en elle-même un choix particulier de transmission des informations avec ce qu’il comporte comme avantages et inconvénients.</p> -<p>Les spécificités du protocoles HTTP sont définies dans les <em>Request for Comments</em> (RFC) publiés par l’<em>Internet Engineering Task Force</em> (IETF) fondée en 1986 et dont le siège se trouve aux États-Unis. Les documents et leurs contenus sont régulièrements mis à jour par la communauté qui participe à ces commentaires. Le numéro de la RFC en lien avec la méthode <code>POST</code> est le 9110<a href="#fn23" class="footnote-ref" id="fnref23" role="doc-noteref"><sup>23</sup></a> publié en juin 2022.</p> +<p>Dans Stylo, chaque fonctionnalité, chaque bouton (ou presque) qui réalise une action de lecture ou d’écriture est lié à une requête GraphQL. Le protocole HTTP comporte deux méthodes bien connues pour faire circuler des informations entre un client et un serveur : <code>GET</code> et <code>POST</code>. Un des arguments phares présenté par GraphQL est sa dimension agnostique par rapport au protocole de communication des informations employé, que ce soit HTTP ou des WebSockets ou autre. Pourtant, malgré la capacité de GraphQL à être utilisable avec toutes les méthodes d’HTTP<a href="#fn24" class="footnote-ref" id="fnref24" role="doc-noteref"><sup>24</sup></a>, une bonne pratique appliquée par la communauté GraphQL est l’emploi du protocole HTTP couplé à la méthode <code>POST</code> pour tous types de requêtes (que ce soit une <code>query</code>, une <code>mutation</code> ou encore une <code>subscription</code>). Lors de la transmission des informations par la méthode <code>GET</code>, toutes les informations sont insérées dans l’URL ce qui 1) les rend visibles (et vulnérables) et 2) impose une limite du nombre de caractères (aux alentours de 2000 au maximum) au risque de déclencher une erreur 414 (URL trop longue). En conséquence, il est préférable d’utiliser la méthode <code>POST</code> pour envoyer ou récupérer des informations car elles ne seront ni visibles ni limitées en longueur. Malgré l’aspect agnostique de GraphQL, la forme textuelle des requêtes implique en elle-même un choix particulier de transmission des informations avec ce qu’il comporte comme avantages et inconvénients.</p> +<p>Les spécificités du protocoles HTTP sont définies dans les <em>Request for Comments</em> (RFC) publiés par l’<em>Internet Engineering Task Force</em> (IETF) fondée en 1986 et dont le siège se trouve aux États-Unis. Les documents et leurs contenus sont régulièrements mis à jour par la communauté qui participe à ces commentaires. Le numéro de la RFC en lien avec la méthode <code>POST</code> est le 9110<a href="#fn25" class="footnote-ref" id="fnref25" role="doc-noteref"><sup>25</sup></a> publié en juin 2022.</p> <p>La méthode <code>POST</code> est définie dans le paragraphe 9.3.3 comme :</p> <blockquote> -<p>The POST method requests that the target resource process the representation enclosed in the request according to the resource’s own specific semantics. For example, POST is used for the following functions (among others) : - Providing a block of data, such as the fields entered into an HTML form, to a data-handling process; - Posting a message to a bulletin board, newsgroup, mailing list, blog, or similar group of articles; - Creating a new resource that has yet to be identified by the origin server; and - Appending data to a resource’s existing representation(s).<a href="#fn24" class="footnote-ref" id="fnref24" role="doc-noteref"><sup>24</sup></a></p> +<p>The POST method requests that the target resource process the representation enclosed in the request according to the resource’s own specific semantics. For example, POST is used for the following functions (among others) : - Providing a block of data, such as the fields entered into an HTML form, to a data-handling process; - Posting a message to a bulletin board, newsgroup, mailing list, blog, or similar group of articles; - Creating a new resource that has yet to be identified by the origin server; and - Appending data to a resource’s existing representation(s).<a href="#fn26" class="footnote-ref" id="fnref26" role="doc-noteref"><sup>26</sup></a></p> </blockquote> -<p>À travers cette brève définition, l’on remarque que l’usage principal de la méthode <code>POST</code> est plutôt relatif à l’envoi d’informations, qu’elles soient nouvelles ou mises à jour. Le comportement de <code>POST</code> fait toutefois débat, notamment quant à son usage pour l’envoi de certaines informations puisque, comme cela est indiqué dans sa définition, <code>POST</code> laisse le soin au serveur (la ressource cible) de traiter les données contenus dans son message selon sa propre sémantique. En somme, contrairement à d’autres méthodes comme <code>PUT</code>, <code>POST</code> n’est pas idempotente<a href="#fn25" class="footnote-ref" id="fnref25" role="doc-noteref"><sup>25</sup></a>, ce qui pourrait entraîner des différences de résultat lors de l’exécution d’une requête. Par exemple, la duplication d’une requête en cas de problème de connexion. Au contraire, une méthode idempotente comme <code>PUT</code> ou <code>DELETE</code> aurait le même effet du côté du serveur et cela quel que soit le nombre de fois que cette requête lui aura été envoyée : une ressource supprimée ne le sera qu’une fois.</p> +<p>À travers cette brève définition, l’on remarque que l’usage principal de la méthode <code>POST</code> est plutôt relatif à l’envoi d’informations, qu’elles soient nouvelles ou mises à jour. Le comportement de <code>POST</code> fait toutefois débat, notamment quant à son usage pour l’envoi de certaines informations puisque, comme cela est indiqué dans sa définition, <code>POST</code> laisse le soin au serveur (la ressource cible) de traiter les données contenus dans son message selon sa propre sémantique. En somme, contrairement à d’autres méthodes comme <code>PUT</code>, <code>POST</code> n’est pas idempotente<a href="#fn27" class="footnote-ref" id="fnref27" role="doc-noteref"><sup>27</sup></a>, ce qui pourrait entraîner des différences de résultat lors de l’exécution d’une requête. Par exemple, la duplication d’une requête en cas de problème de connexion. Au contraire, une méthode idempotente comme <code>PUT</code> ou <code>DELETE</code> aurait le même effet du côté du serveur et cela quel que soit le nombre de fois que cette requête lui aura été envoyée : une ressource supprimée ne le sera qu’une fois.</p> <p>Cependant, cette caractéristique tend à disparaître dans le cas de l’utilisation de <code>POST</code> avec une structure GraphQL puisque cette dernière ne dépend pas d’une architecture composée de multiples adresses (une pour chaque ressource) mais d’une seule adresse à laquelle on soumet des requêtes. Dans le cas de Stylo, <code>POST</code> est donc soumis à l’architecture GraphQL, on peut donc bien considérer GraphQL agnostique à l’égard de la méthode <code>POST</code> du protocole HTTP.</p> <p>Enfin, dans le cas d’une requête <code>POST</code>, le contenu à envoyer sur le serveur est formaté en JSON. Ci-dessous un exemple de requête <code>POST</code> envoyée depuis l’interface Web de Stylo vers le serveur :</p> <div class="sourceCode" id="cb3"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span><span class="dt">"query"</span><span class="fu">:</span><span class="st">"query updateWorkingVersion(articleId: ID!, $content:</span></span> @@ -265,7 +267,7 @@ Du fait de mon implication dans Stylo, le regard que je porte sur ce terrain n†<p>Que l’on soit sous système d’exploitation Linux, MacOS ou Windows, le XML peut être saisi et lu dans tous les éditeurs de texte. Chacun est en capacité de créer ses propres régles d’agencement des contenus en créant un schéma qui correspond aux besoins d’une chaîne éditoriale.</p> <p>Par exemple, lors de l’édition d’un article scientifique, comment pouvons-nous définir un auteur ?</p> <p>Si l’on écrit la chaîne de caractère “Rémi Dupont” à la fin du texte, nous pouvons, par convention de lecture, deviner que “Rémi” est le prénom de l’auteur et “Dupont” son nom. Or, pour l’ordinateur, cette chaîne de caractère n’est rien d’autre qu’une série de caractères qui n’a aucune valeur sémantique particulière, hormis peut-être qu’il s’agit d’un paragraphe.</p> -<p>Si l’on saisit cette même chaîne de caractères en XML, on peut ajouter une baliser <code><auteur>Rémi Dupont</auteur></code> pour signifier explicitement qu’il s’agit de l’auteur du texte.</p> +<p>Si l’on saisit cette même chaîne de caractères en XML, on peut ajouter une balise <code><auteur>Rémi Dupont</auteur></code> pour signifier explicitement qu’il s’agit de l’auteur du texte.</p> <p>Il est également possible de préciser encore plus cette notion d’auteur en y ajoutant par exemple des balises <code><prénom></code> et <code><nom></code> à l’intérieur de la balise <code><auteur></code>. La description de ce qu’est un auteur, pour l’écriture de cet exemple, devient formelle et explicite. Cependant, pour l’écriture savante, est-ce qu’un auteur est seulement un nom et un prénom ? En fonction des contextes de publication, il est possible qu’un autre agent, la revue, définisse également la notion d’auteur avec d’autres informations telles que l’affiliation académique, une adresse courriel et un identifiant unique comme l’ORCID. Rémi Dupont prendrait alors la forme suivante :</p> <div class="sourceCode" id="cb4"><pre class="sourceCode xml"><code class="sourceCode xml"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><<span class="kw">auteur</span>></span> <span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a> <<span class="kw">nom</span>>Dupont</<span class="kw">nom</span>></span> @@ -280,20 +282,20 @@ Du fait de mon implication dans Stylo, le regard que je porte sur ce terrain n†<p>La contrainte du format est liée à d’autres contraintes comme la compatibilité (quel format peut être lu par quel programme ou logiciel ?), l’interopérabilité (est-ce que le format peut être utilisé de la même façon quel que soit l’environnement ?), la dépendance (de quoi un système a-t-il besoin pour traiter le format ?) et les droits associées (est-ce que le format peut être lu, modifié ou partagé ?).</p> <p>Si le but du format est de constituer une série d’informations compréhensibles, utilisables et communicables, il reste une contrainte forte pour les chaînes de publication. Que ce soit en tant que format d’entrée, format pivot de transformation ou format de publication – nous reviendrons sur les transformations et les artefacts publiables dans le chapitre 4 –, il déterminera le fonctionnement de la chaîne.</p> <p>Comme nous l’avons déjà mentionné, il y a trois formats centraux dans l’éditeur de texte Stylo : le Markdown pour le corps du texte, le YAML pour les métadonnées et le BibTeX pour les références bibliographiques. Chacun de ces formats a sa propre histoire et ses propres spécifications. Afin de mieux comprendre la structuration des informations dans Stylo, nous allons passer en revue certaines des particularités de ces formats et de leur implémentation dans l’éditeur.</p> -<p>Mardown est un langage de balisage léger créé en 2004 par John Gruber<a href="#fn26" class="footnote-ref" id="fnref26" role="doc-noteref"><sup>26</sup></a>. Sa syntaxe, beaucoup plus légère et moins verbeuse que le HTML dont il est issu, permet de structurer et de décrire sémantiquement le texte. Il a été pensé pour pouvoir être converti facilement vers d’autres formats comme HTML, LaTeX ou PDF. Markdown se distingue des autres langages de balisages légers car il est déclinable en différentes variantes (ou saveurs). Chacune d’entre elles ajoute une particularité dans la syntaxe Markdown. Parmi les plus populaires, on retrouve :</p> +<p>Mardown est un langage de balisage léger créé en 2004 par John Gruber<a href="#fn28" class="footnote-ref" id="fnref28" role="doc-noteref"><sup>28</sup></a>. Sa syntaxe, beaucoup plus légère et moins verbeuse que le HTML dont il est issu, permet de structurer et de décrire sémantiquement le texte. Il a été pensé pour pouvoir être converti facilement vers d’autres formats comme HTML, LaTeX ou PDF. Markdown se distingue des autres langages de balisages légers car il est déclinable en différentes variantes (ou saveurs). Chacune d’entre elles ajoute une particularité dans la syntaxe Markdown. Parmi les plus populaires, on retrouve :</p> <ul> -<li>CommonMark<a href="#fn27" class="footnote-ref" id="fnref27" role="doc-noteref"><sup>27</sup></a></li> -<li>GitHub Flavored Markdown (GFM)<a href="#fn28" class="footnote-ref" id="fnref28" role="doc-noteref"><sup>28</sup></a></li> -<li>MultiMarkdown<a href="#fn29" class="footnote-ref" id="fnref29" role="doc-noteref"><sup>29</sup></a></li> -<li>Pandoc<a href="#fn30" class="footnote-ref" id="fnref30" role="doc-noteref"><sup>30</sup></a></li> -<li>Quarto<a href="#fn31" class="footnote-ref" id="fnref31" role="doc-noteref"><sup>31</sup></a></li> +<li>CommonMark<a href="#fn29" class="footnote-ref" id="fnref29" role="doc-noteref"><sup>29</sup></a></li> +<li>GitHub Flavored Markdown (GFM)<a href="#fn30" class="footnote-ref" id="fnref30" role="doc-noteref"><sup>30</sup></a></li> +<li>MultiMarkdown<a href="#fn31" class="footnote-ref" id="fnref31" role="doc-noteref"><sup>31</sup></a></li> +<li>Pandoc<a href="#fn32" class="footnote-ref" id="fnref32" role="doc-noteref"><sup>32</sup></a></li> +<li>Quarto<a href="#fn33" class="footnote-ref" id="fnref33" role="doc-noteref"><sup>33</sup></a></li> </ul> -<p>Cette propriété à être déclinable et adaptable distingue fortement Markdown des autres langages de balisage. En effet, puisque chaque saveur contient des éléments personnalisés de structuration des contenus – des balises –, il est important de connaître la saveur que l’on doit utiliser dans un environnement au risque de se retrouver avec des balises qui ne sont pas interprétées.</p> +<p>Cette capacité à être déclinable et adaptable distingue fortement Markdown des autres langages de balisage. En effet, puisque chaque saveur contient des éléments personnalisés de structuration des contenus – des balises –, il est important de connaître la saveur que l’on doit utiliser dans un environnement au risque de se retrouver avec des balises qui ne sont pas interprétées.</p> <p>Par exemple, la saveur Quarto Markdown utilise la structure ci-dessous pour insérer une vidéo dans un texte. Cependant, ce marquage ne sera interprété que lorsque Quarto transformera le document Markdown en un autre document, or dans Stylo cette ligne sera traitée comme un paragraphe et ne sera pas transformée parce que Stylo ne connaît pas cette structure puisque la saveur Quarto de Markdown n’y est pas prise en charge.</p> <div class="sourceCode" id="cb5"><pre class="sourceCode md"><code class="sourceCode markdown"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a>{{< video https://www.youtube.com/embed/wo9vZccmqwc >}}</span></code></pre></div> -<p>À ce propos, aucune saveur spécifique n’a été implémentée dans Stylo pour laisser le champ libre aux utilisateurs d’employer celle qui leur convient le mieux. Néanmoins, lorsque les sources sont transformées par le module d’export (l’export des sources n’est pas concerné), les utilisateurs doivent respecter les préconisations données par Pandoc puisque c’est ce dernier logiciel qui réalise les transformations et conversions. Les saveurs les plus couramment utilisées avec Pandoc sont CommonMark et GitHub Flavored Markdown<a href="#fn32" class="footnote-ref" id="fnref32" role="doc-noteref"><sup>32</sup></a>.</p> +<p>À ce propos, aucune saveur spécifique n’a été implémentée dans Stylo pour laisser le champ libre aux utilisateurs d’employer celle qui leur convient le mieux. Néanmoins, lorsque les sources sont transformées par le module d’export (l’export des sources n’est pas concerné), les utilisateurs doivent respecter les préconisations du logiciel Pandoc puisque c’est ce dernier qui réalise les transformations et conversions des documents. Les saveurs les plus couramment utilisées avec Pandoc sont CommonMark et GitHub Flavored Markdown<a href="#fn34" class="footnote-ref" id="fnref34" role="doc-noteref"><sup>34</sup></a>.</p> <p>Autrement dit, Stylo n’impose pas de variante de Markdown si l’on s’en sert comme éditeur de texte sans la nécessité d’utiliser le module d’export. Dès qu’une chaîne éditoriale s’appuie sur ce module, comme c’est le cas pour la chaîne Stylo, Métopes, OpenEdition, il devient essentiel d’employer les variantes que traitent Pandoc pour que les transformations et conversions se fassent sans erreur. Pour conclure sur le langage de balisage Markdown, sa possible déclinaison en diverses saveurs fait de ce langage un avantage et un inconvénient. C’est un avantage pour sa plasticité et son adaptibilité aux besoins d’une communauté ou d’un projet. Cependant, si les adaptations réalisées le sont dans une niche, soit parce que la communauté qui en définit les règles comporte trop de peu de membres, soit parce qu’il n’y a qu’un seul environnement qui traite cette saveur, le Markdown perd sa caractéristique interopérable et contraint les usagers à bricoler des équivalences entre les transformations pour préserver la structuration des contenus.</p> -<p>La sérialisation des métadonnées est réalisée en YAML qui, dans sa version originale de 2004 est l’acronyme de <em>Yet Another Markup Language</em> puis se transforme à l’occasion de la publication de sa version 1.1 en <em>YAML Ain’t Markup Language</em>. YAML est un langage de sérialisation de données pour tous les langage de programmation. Un usage récurrent qui en est fait consiste à utiliser YAML pour créer des fichiers de configuration. Dans le cas des outils liés à l’édition numérique, YAML sera utilisé pour enregistrer les métadonnées associées à un document. Le principe de YAML est très facile à assimiler puisqu’il repose sur le même fonctionnement qu’un dictionnaire avec la structure <code>clef: valeur</code>. Chaque utilisateur a la possibilité de créer de toute pièce son document YAML et de choisir les <code>clefs</code> et les <code>valeurs</code> qui leur sont associées. C’est ensuite l’application qui va parser le contenu en suivant l’architecture des informations. Dans Stylo, les <code>clefs</code> ont été prédéterminées lors des développements de l’interface et les utilisateurs n’ont plus qu’à remplir un formulaire pour déclarer les <code>valeurs</code> qui seront associées aux différentes <code>clefs</code> – un mode permet d’accéder au contenu en YAML brut sans surcouche graphique.</p> +<p>La sérialisation des métadonnées est réalisée en YAML qui, dans sa version originale de 2004 avait pour signification <em>Yet Another Markup Language</em> puis se transforme à l’occasion de la publication de sa version 1.1 en <em>YAML Ain’t Markup Language</em>. YAML est un langage de sérialisation de données pour tous les langage de programmation. Un usage récurrent qui en est fait consiste à utiliser YAML pour créer des fichiers de configuration. Dans le cas des outils liés à l’édition numérique, YAML sera utilisé pour enregistrer les métadonnées associées à un document. Le principe de YAML est très facile à assimiler puisqu’il repose sur le même fonctionnement qu’un dictionnaire avec la structure <code>clef: valeur</code>. Chacun a la possibilité de créer de toute pièce son document YAML et de choisir les <code>clefs</code> et les <code>valeurs</code> qui leur sont associées. C’est ensuite l’application qui va parser le contenu en suivant l’architecture des informations dans le fichier YAML. Dans Stylo, les <code>clefs</code> ont été prédéterminées lors des développements de l’interface et les utilisateurs n’ont plus qu’à remplir un formulaire pour déclarer les <code>valeurs</code> qui seront associées aux différentes <code>clefs</code> – un mode permet d’accéder au contenu en YAML brut sans surcouche graphique.</p> <p>Si nous reprenons l’exemple de l’auteur mentionné précédemment, un auteur est déclaré comme suit dans Stylo :</p> <div class="sourceCode" id="cb6"><pre class="sourceCode yaml"><code class="sourceCode yaml"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="fu">authors</span><span class="kw">:</span></span> <span id="cb6-2"><a href="#cb6-2" aria-hidden="true" tabindex="-1"></a><span class="at"> </span><span class="kw">-</span><span class="at"> </span><span class="fu">affiliations</span><span class="kw">:</span><span class="at"> </span><span class="st">''</span></span> @@ -306,23 +308,23 @@ Du fait de mon implication dans Stylo, le regard que je porte sur ce terrain n†<span id="cb6-9"><a href="#cb6-9" aria-hidden="true" tabindex="-1"></a><span class="at"> </span><span class="fu">surname</span><span class="kw">:</span><span class="at"> </span><span class="st">''</span></span> <span id="cb6-10"><a href="#cb6-10" aria-hidden="true" tabindex="-1"></a><span class="at"> </span><span class="fu">viaf</span><span class="kw">:</span><span class="at"> </span><span class="st">''</span></span> <span id="cb6-11"><a href="#cb6-11" aria-hidden="true" tabindex="-1"></a><span class="at"> </span><span class="fu">wikidata</span><span class="kw">:</span><span class="at"> </span><span class="st">''</span></span></code></pre></div> -<p>Les métadonnées sélectionnées pour représenter l’auteur dans Stylo reflète principalement les besoins émis par les revues, par exemple Sens Public ou Humanités Numériques, ou les plateformes de diffusion telles qu’Érudit et OpenEdition. Dans Stylo, un auteur est donc représenté uniquement par ces informations. Néanmoins, il arrive que certains utilisateurs ou institutions requièrent d’autres informations pour décrire plus précisément un auteur et nécessite des adaptations. Par exemple, la clef YAML <code>affiliations</code> désigne sans distinction l’institution, le laboratoire ou encore le département de rattachement. Pourtant, selon les revues, il peut être important de faire formellement cette différence.</p> -<p>Au-delà de Stylo, l’utilisation de YAML est toutefois controversée. Contrairement à d’autres langages de structuration de données dont le comportement est pérenne, comme le standard JSON (<em>JavaScript Object Notation</em>) publié pour la première fois en 1999<a href="#fn33" class="footnote-ref" id="fnref33" role="doc-noteref"><sup>33</sup></a>, YAML 1.0 subit des modifications régulières depuis 2004 avec une version 1.1 en 2005 puis une version 1.2 en 2009 et une dernière mise à jour en 2021 avec la version 1.2.2. Là où une certaine stabilité que l’on trouve dans des formats tel que JSON apporte une forme de pérennité pour les applications, malgré une modification mineure en 2005 avec la suppression de la saisie de commentaires dans les documents au format JSON, YAML fait le choix d’évoluer et de s’adapter aux besoins des communautés. Cependant, comme le mentionne Ruud van Asseldonk sur son blog<a href="#fn34" class="footnote-ref" id="fnref34" role="doc-noteref"><sup>34</sup></a>, ces mises à jour peuvent générer des complications lorsque les fichiers YAML doivent passer d’un environnement à un autre alors que les versions de YAML utilisées sont différentes. Par exemple, Pandoc intègre en juillet 2018 la version 1.2 de YAML<a href="#fn35" class="footnote-ref" id="fnref35" role="doc-noteref"><sup>35</sup></a> où nous pouvons y lire :</p> +<p>Les métadonnées sélectionnées pour représenter l’auteur dans Stylo reflète principalement les besoins émis par les revues, par exemple Sens Public ou Humanités Numériques, ou les plateformes de diffusion telles qu’Érudit et OpenEdition. Dans Stylo, un auteur est donc représenté uniquement par ces informations. Néanmoins, il arrive que certains utilisateurs ou institutions requièrent d’autres informations pour décrire plus précisément un auteur et nécessite des adaptations. Par exemple, la clef YAML <code>affiliations</code> désigne sans distinction l’institution, le laboratoire ou encore le département de rattachement. Pourtant, selon les revues, il peut être important de faire formellement cette différence. Dans Stylo, la notion d’auteur ne s’incarne qu’à travers ce choix qui a été implémenté. L’auteur est donc formellement constitué de 10 entrées au maximum. Ce qui est valable pour les auteurs l’est également pour les autres types de données décrites dans les métadonnées du document. La réduction d’un auteur à quelques mot-clés n’est pas très importante puisqu’elle couvre les besoin de la plupart des revues – ce qui est quand même l’objectif de Stylo –.</p> +<p>Au-delà de Stylo, l’utilisation de YAML est toutefois controversée. Contrairement à d’autres langages de structuration de données dont le comportement est pérenne, comme le standard JSON (<em>JavaScript Object Notation</em>) publié pour la première fois en 1999<a href="#fn35" class="footnote-ref" id="fnref35" role="doc-noteref"><sup>35</sup></a>, YAML 1.0 subit des modifications régulières depuis 2004 avec une version 1.1 en 2005 puis une version 1.2 en 2009 et une dernière mise à jour en 2021 avec la version 1.2.2. Là où une certaine stabilité que l’on trouve dans des formats tel que JSON apporte une forme de pérennité pour les applications, malgré une modification mineure en 2005 avec la suppression de la saisie de commentaires dans les documents au format JSON, YAML fait le choix d’évoluer et de s’adapter aux besoins des communautés. Cependant, comme le mentionne Ruud van Asseldonk sur son blog<a href="#fn36" class="footnote-ref" id="fnref36" role="doc-noteref"><sup>36</sup></a>, ces mises à jour peuvent générer des complications lorsque les fichiers YAML doivent passer d’un environnement à un autre alors que les versions de YAML utilisées sont différentes. Par exemple, Pandoc intègre en juillet 2018 la version 1.2 de YAML<a href="#fn37" class="footnote-ref" id="fnref37" role="doc-noteref"><sup>37</sup></a> où nous pouvons y lire :</p> <blockquote> <p>Update manual for “true” YAML values. Now that we’re using HsYAML and YAML 1.2, the valid true values are true, True, TRUE. NOTE! y, yes, on no longer count as true values.</p> </blockquote> -<p>Le changement de version génère une modification de comportement des valeurs <code>y, yes, on</code> qui signifiaient le booléen <code>true</code> dans la version 1.1 et ne sont plus que des chaînes de caractères à partir de la version 1.2. Or, tous les parseurs de YAML n’ont pas fait cette mise à jour. Par exemple, la très répandue librairie Python PyYaml, dont la dernière mise à jour remonte à juillet 2023<a href="#fn36" class="footnote-ref" id="fnref36" role="doc-noteref"><sup>36</sup></a>, s’appuie toujours sur la version 1.1 de YAML. En somme, si un document doit passer d’un environnement utilisant la version 1.1 ou la version 1.2, les informations structurées ne seront pas traitées de la même manière.</p> -<p>Nous sommes en droit de nous demander pourquoi YAML reste aussi populaire ? Ruud van Asseldonk apporte plusieurs réponses à cette question. La première est que YAML fait partie des plus anciens langages de sérialisation de données et répondait alors à un besoin de toute une génération de développeurs, ensuite il permet l’écriture de commentaires à l’intérieur des documents, c’est-à -dire du texte qui ne sera pas traité par le parseur, alors que JSON ne le permet pas. Des alternatives comme le langage TOML<a href="#fn37" class="footnote-ref" id="fnref37" role="doc-noteref"><sup>37</sup></a> ont vu le jour dans les années 2010 (2013 pour le TOML) pour tenter de pallier les problèmes sus-mentionnés. Le langage TOML est par exemple utilisée pour le fichier de configuration du paquet Python “Pressoir-CLI” afin de déclarer différents paramètres, par exemple de mise en page, parsés par le Pressoir et utilisés pour générer des livres au format HTML. Cet outil fera l’objet d’une analyse détaillée dans le prochain chapitre<a href="#fn38" class="footnote-ref" id="fnref38" role="doc-noteref"><sup>38</sup></a>.</p> -<p>Enfin, le dernier format pivot utilisé dans Stylo, le BibTeX, est utilisé pour structurer les références bibliographiques. BiBTeX est un format standard permettant de décrire des listes de références bibliographiques inventé par Oren Patashnik en 1985 pour l’écosystème LaTeX. Au-delà de LaTeX, c’est un format largement utilisé par les gestionnaire de références bibliographiques comme Zotero<a href="#fn39" class="footnote-ref" id="fnref39" role="doc-noteref"><sup>39</sup></a> ou eBib<a href="#fn40" class="footnote-ref" id="fnref40" role="doc-noteref"><sup>40</sup></a>.</p> -<p>Le choix d’intégrer BibTeX à Stylo provient de la possibilité d’utiliser l’API de Zotero dans l’éditeur de Stylo pour récupérer les informations des références bibliographiques. Ce fonctionnement entre Zotero et Stylo permet aux utilisateurs de ne passer que rarement par la forme brute du BibTeX, puis il permet de décentraliser la gestion et le nettoyage des informations de chaque références dans Zotero et limite les phases de nettoyage des informations à ce seul espace. Stylo est plutôt prévu pour récupérer des listes de références bibliographiques et procurer des fonctionnalités pour les intégrer dans un texte. L’utilisation du format BibTeX permet d’automatiser la saisie et la transformation des références bibliographiques selon les styles requis pour un document. Pourtant, ce choix pourrait être tout à fait discutable du fait des limites de Zotero et de BibTeX. Lors de la création d’un nouvel objet dans Zotero, le premier élément à saisir est le type d’objet à référencer. Le nombre de types est limité à 17. Cela couvre une bonne partie des besoins académiques mais pas les exceptions qui vont toutes rentrer dans le dernier type <code>@misc</code> pour « tout autre type de document ». Il en va de même pour les informations rattachées à chaque type de données<a href="#fn41" class="footnote-ref" id="fnref41" role="doc-noteref"><sup>41</sup></a> : selon les disciplines ou pour certains documents très particuliers, les champs de Zotero peuvent être trop restrictifs alors qu’il serait nécessaire de pouvoir saisir de nouvelles entrées pour enrichir les données bibliographiques tout en préservant leur structuration. Actuellement, la seule possibilité serait d’utiliser le champ <code>Extra</code> pour ajouter une information supplémentaire sous la forme de chaîne de caractères sans avoir de structure explicite.</p> -<p>D’autres problèmes peuvent surgir entre la représentation d’une référence bibliographique dans Zotero et dans Stylo/Pandoc. Lors de l’édition d’articles en anglais et en français, nous nous sommes aperçus d’une différence de comportement importante entre ce que prévoit le format BibTeX, son interprétation dans Zotero et celle que l’on en fait dans Stylo.. Avec BibTeX il existe plusieurs paramètres de langues : <code>langid</code> et <code>language</code>. <code>langid</code> permet initialement d’identifier la langue à appliquer à l’entrée (comme traitement) et <code>language</code> sert à déclarer la langue employée dans le document. Stylo et Pandoc prennent les deux paramètres en charge, alors que dans Zotero il n’est possible de renseigner que <code>language</code> et pas <code>langid</code>, <code>language</code> combinant les deux objets. En récupérant les références bibliographiques depuis Zotero, Stylo récupère seulement le paramètre <code>language</code> puisque le paramètre <code>langid</code> n’existe pas dans Zotero. Lors du traitement des informations avec Pandoc, il n’est pas possible de déclarer le traitement à appliquer à la référence bibliographique. Par défaut, Stylo va appliquer la langue du contenu du texte dans Stylo à toutes les références bibliographiques. Dans un texte comme celui-ci, le paramètre par défaut est réglé sur le français. Les références en anglais seront alors transformées selon les règles orthotypographiques françaises et pas selon les normes anglaises. Pour une structure éditoriale telle qu’une revue, ce paramètre n’est pas opérationnel. De ceci découle une discussion entre les membres de l’équipe de développement de Stylo<a href="#fn42" class="footnote-ref" id="fnref42" role="doc-noteref"><sup>42</sup></a> sur la conduite à tenir pour informer les usagers de ce problème et trouver une solution pour le contourner. À ce jour, nous avons décidé de renseigner le problème dans la documentation de Stylo<a href="#fn43" class="footnote-ref" id="fnref43" role="doc-noteref"><sup>43</sup></a> pour avertir les utilisateurs. Une modification du format ou du fonctionnement du gestionnaire de références bibliographiques serait beaucoup trop lourde en termes d’effets de bord dans Stylo, c’est pour cela qu’à ce stade nous en sommes restés à cette solution.</p> +<p>Le changement de version génère une modification de comportement des valeurs <code>y, yes, on</code> qui signifiaient le booléen <code>true</code> dans la version 1.1 et ne sont plus que des chaînes de caractères à partir de la version 1.2. Or, tous les parseurs de YAML n’ont pas fait cette mise à jour. Par exemple, la très répandue librairie Python PyYaml, dont la dernière mise à jour remonte à juillet 2023<a href="#fn38" class="footnote-ref" id="fnref38" role="doc-noteref"><sup>38</sup></a>, s’appuie toujours sur la version 1.1 de YAML. En somme, si un document doit passer d’un environnement utilisant la version 1.1 ou la version 1.2, les informations structurées ne seront pas traitées de la même manière.</p> +<p>Nous sommes en droit de nous demander pourquoi YAML reste aussi populaire ? Ruud van Asseldonk apporte plusieurs réponses à cette question. La première est que YAML fait partie des plus anciens langages de sérialisation de données et répondait alors à un besoin de toute une génération de développeurs, ensuite il permet l’écriture de commentaires à l’intérieur des documents, c’est-à -dire du texte qui ne sera pas traité par le parseur, alors que JSON ne le permet pas. Des alternatives comme le langage TOML<a href="#fn39" class="footnote-ref" id="fnref39" role="doc-noteref"><sup>39</sup></a> ont vu le jour dans les années 2010 (2013 pour le TOML) pour tenter de pallier les problèmes sus-mentionnés. Le langage TOML est par exemple utilisée pour le fichier de configuration du paquet Python “Pressoir-CLI” afin de déclarer différents paramètres, par exemple de mise en page, parsés par le Pressoir et utilisés pour générer des livres au format HTML. Cet outil fera l’objet d’une analyse détaillée dans le prochain chapitre<a href="#fn40" class="footnote-ref" id="fnref40" role="doc-noteref"><sup>40</sup></a>.</p> +<p>Enfin, le dernier format pivot utilisé dans Stylo, le BibTeX, est utilisé pour structurer les références bibliographiques. BiBTeX est un format standard permettant de décrire des listes de références bibliographiques inventé par Oren Patashnik en 1985 pour l’écosystème LaTeX. Au-delà de LaTeX, c’est un format largement utilisé par les gestionnaire de références bibliographiques comme Zotero<a href="#fn41" class="footnote-ref" id="fnref41" role="doc-noteref"><sup>41</sup></a> ou eBib<a href="#fn42" class="footnote-ref" id="fnref42" role="doc-noteref"><sup>42</sup></a>.</p> +<p>Le choix d’intégrer BibTeX à Stylo provient de la possibilité d’utiliser l’API de Zotero dans l’éditeur de Stylo pour récupérer les informations des références bibliographiques. Ce fonctionnement entre Zotero et Stylo permet aux utilisateurs de ne passer que rarement par la forme brute du BibTeX, puis il permet de décentraliser la gestion et le nettoyage des informations de chaque références dans Zotero et limite les phases de nettoyage des informations à ce seul espace. Stylo est plutôt prévu pour récupérer des listes de références bibliographiques et procurer des fonctionnalités pour les intégrer dans un texte. L’utilisation du format BibTeX permet d’automatiser la saisie et la transformation des références bibliographiques selon les styles requis pour un document. Pourtant, ce choix pourrait être tout à fait discutable du fait des limites de Zotero et de BibTeX. Lors de la création d’un nouvel objet dans Zotero, le premier élément à saisir est le type d’objet à référencer. Le nombre de types est limité à 17. Cela couvre une bonne partie des besoins académiques mais pas les exceptions qui vont toutes rentrer dans le dernier type <code>@misc</code> pour « tout autre type de document ». Il en va de même pour les informations rattachées à chaque type de données<a href="#fn43" class="footnote-ref" id="fnref43" role="doc-noteref"><sup>43</sup></a> : selon les disciplines ou pour certains documents très particuliers, les champs de Zotero peuvent être trop restrictifs alors qu’il serait nécessaire de pouvoir saisir de nouvelles entrées pour enrichir les données bibliographiques tout en préservant leur structuration. Actuellement, la seule possibilité serait d’utiliser le champ <code>Extra</code> pour ajouter une information supplémentaire sous la forme de chaîne de caractères sans avoir de structure explicite.</p> +<p>D’autres problèmes peuvent surgir entre la représentation d’une référence bibliographique dans Zotero et dans Stylo/Pandoc. Lors de l’édition d’articles en anglais et en français, nous nous sommes aperçus d’une différence de comportement importante entre ce que prévoit le format BibTeX, son interprétation dans Zotero et celle que l’on en fait dans Stylo.. Avec BibTeX il existe plusieurs paramètres de langues : <code>langid</code> et <code>language</code>. <code>langid</code> permet initialement d’identifier la langue à appliquer à l’entrée (comme traitement) et <code>language</code> sert à déclarer la langue employée dans le document. Stylo et Pandoc prennent les deux paramètres en charge, alors que dans Zotero il n’est possible de renseigner que <code>language</code> et pas <code>langid</code>, <code>language</code> combinant les deux objets. En récupérant les références bibliographiques depuis Zotero, Stylo récupère seulement le paramètre <code>language</code> puisque le paramètre <code>langid</code> n’existe pas dans Zotero. Lors du traitement des informations avec Pandoc, il n’est pas possible de déclarer le traitement à appliquer à la référence bibliographique. Par défaut, Stylo va appliquer la langue du contenu du texte dans Stylo à toutes les références bibliographiques. Dans un texte comme celui-ci, le paramètre par défaut est réglé sur le français. Les références en anglais seront alors transformées selon les règles orthotypographiques françaises et pas selon les normes anglaises. Pour une structure éditoriale telle qu’une revue, ce paramètre n’est pas opérationnel. De ceci découle une discussion entre les membres de l’équipe de développement de Stylo<a href="#fn44" class="footnote-ref" id="fnref44" role="doc-noteref"><sup>44</sup></a> sur la conduite à tenir pour informer les usagers de ce problème et trouver une solution pour le contourner. À ce jour, nous avons décidé de renseigner le problème dans la documentation de Stylo<a href="#fn45" class="footnote-ref" id="fnref45" role="doc-noteref"><sup>45</sup></a> pour avertir les utilisateurs. Une modification du format ou du fonctionnement du gestionnaire de références bibliographiques serait beaucoup trop lourde en termes d’effets de bord dans Stylo, c’est pour cela qu’à ce stade nous en sommes restés à cette solution.</p> <p>Le choix des formats dans lesquels les utilisateurs peuvent saisir leurs textes et leurs données n’est pas anodin. Qu’il soit ancien, récent, verbeux ou léger, permissif ou rigide, le format d’écriture conditionne ce que l’on a le droit d’écrire ou non. En ce sens la décision de ce qui peut être saisi est déjà prise avant qu’un texte soit frappé sur le clavier. Par exemple, dans Stylo, le Markdown ne permet pas à un philologue de saisir explicitement un appareil critique. C’est une syntaxe qui n’existe pas alors que c’est le cas pour d’autre environnements comme LaTeX et le paquet <a href="http://www.ekdosis.org/"><code>ekdosis</code></a> développé et maintenu par Robert Alessi. Dans ce cas-ci, puisque l’appareil critique n’existe pas en Markdown, il ne peut pas exister dans Stylo sauf si l’utilisateur fait abstraction du format et qu’il change de paradigme pour celui de la page et de la représentation graphique. En faisant cela, l’utilisateur fait également abstraction de la machine et de ce qu’elle peut interpréter du contenu puis écrire dans le texte. Lorsque nous sommes dans un environnement mis à disposition comme Stylo, le risque est que celui-ci ne soit pas complètement adapté à des besoins ou à une intention. Il risque d’y avoir une friction entre les formats imposés par l’environnement et les besoins en écriture.</p> <h3 id="co-écriture-entre-les-agents">Co-écriture entre les agents</h3> <p>En régissant les procédés de saisi du textes, un rapport de force semble s’instaurer entre les instances éditrices des architextes (que ce soit des collectifs, des institutions ou des entreprises) et les usagers. Dans le cas d’un logiciel de traitement de texte lorsque, par exemple, Microsoft propose une modification de la police utilisée par défaut dans une version actualisée du logiciel MSWord, Microsoft change également les manières d’écrire de tous les individus à travers le monde qui utilisent ce logiciel (et qui ont installé la mise à jour).</p> <p>Si l’on s’arrête à la vision superficielle du texte, comme le propose J. Goody avec la raison graphique <span class="citation" data-cites="goody_raison_1979">(Goody, 1979)</span>, on ne voit que les modifications d’affichage des éléments graphiques mais nous oublions ceux qui sont invisibles et cachés derrière la page.</p> -<p>Certes, les interfaces d’écriture sont présentés sous la forme de gabarits que l’on doit remplir, comme on peut le faire avec des logiciels de création de diapositives dont chacune est découpée en sections contenant tour à tour des images, des titres ou du texte. Dans cet exemple-ci nous avons affaire à une construction visuelle du document : un emplacement pour le titre de la diapositive, un autre pour le texte, un autre pour une image ou pour un graphique, etc. À ce sujet, E. Tufte <span class="citation" data-cites="tufte_cognitive_2003">(2003)</span> a publié un article sur l’utilisation du logiciel PowerPoint et démontre à travers plusieurs cas d’étude les effets du logiciel sur la forme des présentations et des informations qu’elles contiennent. La thèse qu’il y défend est que ce logiciel, en 2003, « […] perturbe, domine et banalise systématiquement le contenu. » <a href="#fn44" class="footnote-ref" id="fnref44" role="doc-noteref"><sup>44</sup></a> notamment parce qu’il « facilite activement la réalisation de présentation légère »<a href="#fn45" class="footnote-ref" id="fnref45" role="doc-noteref"><sup>45</sup></a>. À travers son analyse des usages de PowerPoint, E. Tufte nous montre qu’il ne s’agit pas d’un manque de fonctionnalité pour enrichir des supports de présentation, que l’auteur qualifie de pauvres, mais que le logiciel lui-même induit ce type de présentation avec des <em>templates</em> préfabriqués, des réalisations de graphiques automatisées ou d’autres fonctionnalités similaires qui appauvrissent les présentations parce que leur fonctionnement est calqué sur un modèle de présentation marketing qui n’est pas adapté aux sciences. Il ne s’agit plus seulement de remplir des gabarits préfabriqués mais également de penser les formes que peuvent prendre l’information, ce que Tufte nomme « The Cognitive Style of PowerPoint », qui n’est pas sans rappeler la raison computationnelle de Bruno Bachimont <span class="citation" data-cites="bachimont_intelligence_2000">(2000)</span>.</p> +<p>Certes, les interfaces d’écriture sont présentés sous la forme de gabarits que l’on doit remplir, comme on peut le faire avec des logiciels de création de diapositives dont chacune est découpée en sections contenant tour à tour des images, des titres ou du texte. Dans cet exemple-ci nous avons affaire à une construction visuelle du document : un emplacement pour le titre de la diapositive, un autre pour le texte, un autre pour une image ou pour un graphique, etc. À ce sujet, E. Tufte <span class="citation" data-cites="tufte_cognitive_2003">(2003)</span> a publié un article sur l’utilisation du logiciel PowerPoint et démontre à travers plusieurs cas d’étude les effets du logiciel sur la forme des présentations et des informations qu’elles contiennent. La thèse qu’il y défend est que ce logiciel, en 2003, « […] perturbe, domine et banalise systématiquement le contenu. » <a href="#fn46" class="footnote-ref" id="fnref46" role="doc-noteref"><sup>46</sup></a> notamment parce qu’il « facilite activement la réalisation de présentation légère »<a href="#fn47" class="footnote-ref" id="fnref47" role="doc-noteref"><sup>47</sup></a>. À travers son analyse des usages de PowerPoint, E. Tufte nous montre qu’il ne s’agit pas d’un manque de fonctionnalité pour enrichir des supports de présentation, que l’auteur qualifie de pauvres, mais que le logiciel lui-même induit ce type de présentation avec des <em>templates</em> préfabriqués, des réalisations de graphiques automatisées ou d’autres fonctionnalités similaires qui appauvrissent les présentations parce que leur fonctionnement est calqué sur un modèle de présentation marketing qui n’est pas adapté aux sciences. Il ne s’agit plus seulement de remplir des gabarits préfabriqués mais également de penser les formes que peuvent prendre l’information, ce que Tufte nomme « The Cognitive Style of PowerPoint », qui n’est pas sans rappeler la raison computationnelle de Bruno Bachimont <span class="citation" data-cites="bachimont_intelligence_2000">(2000)</span>.</p> <p>En changeant de paradigme, de la raison graphique pour celui de la raison computationnelle, l’assujetissement à ces architextes dépasse cette surcouche graphique et concerne également toutes les sous-couches (in)visibles de structuration textuelle du texte, mais aussi tout le processus d’inscription du document dans la mémoire, ainsi que les protocoles et méthodes qui permettent d’accéder à ces données. Comme nous l’avons vu précédemment, ce n’est pas l’image du texte affichée à l’écran qui est sauvegardée mais bien une suite de caractères binaires dont l’écriture intermédiaire est une suite de symboles, de chiffres et de lettres.</p> -<p>Pourtant, on constate un paradoxe entre le nom d’un logiciel comme Pages, un traitement de texte disponible sous MacOS convoquant la métaphore de la page comme imaginaire en y enfermant les utilisateurs, et le rôle de guide qu’il doit remplir dans le traitement des informations. Dans ce cas-ci, le nom du logiciel ne réfère ni à son fonctionnement ni à son utilité. Alors que dans les années 1980, lors de la génèse des traitements de texte, les lettres <code>WP</code> signifiaient WordPerfect<a href="#fn46" class="footnote-ref" id="fnref46" role="doc-noteref"><sup>46</sup></a>, et que la plupart des autres concurrents employaient également le mot <em>word</em> dans le nom de leur logiciel, car c’est bien le mot et son traitement informatique qui était au centre des développements, la démarche d’Apple en 2005 nous montre un changement de perspective : on passe du mot à la page. L’attention est porté à un autre endroit, sur une page que génère Pages et qui n’existe pas dans d’autres environnements. Depuis vingt ans que cet outil est nativement disponible sur les ordinateurs de chez Apple, la compatibilité avec d’autres formats et/ou logiciels à fortement augmentée, en témoigne les arguments de communication mis en avant sur la page web du logiciel<a href="#fn47" class="footnote-ref" id="fnref47" role="doc-noteref"><sup>47</sup></a> mais compatible ne veut pas dire identique. En plus de n’être accessible que <strong>sous</strong> MacOS, cette page ne l’est également que <strong>sous</strong> Pages : cette formulation courante laisse entendre que l’utilisateur devient alors sujet de son environnement d’écriture, nous dit F. Kittler <span class="citation" data-cites="kittler_mode_2015">(2015)</span>.</p> +<p>Pourtant, on constate un paradoxe entre le nom d’un logiciel comme Pages, un traitement de texte disponible sous MacOS convoquant la métaphore de la page comme imaginaire en y enfermant les utilisateurs, et le rôle de guide qu’il doit remplir dans le traitement des informations. Dans ce cas-ci, le nom du logiciel ne réfère ni à son fonctionnement ni à son utilité. Alors que dans les années 1980, lors de la génèse des traitements de texte, les lettres <code>WP</code> signifiaient WordPerfect<a href="#fn48" class="footnote-ref" id="fnref48" role="doc-noteref"><sup>48</sup></a>, et que la plupart des autres concurrents employaient également le mot <em>word</em> dans le nom de leur logiciel, car c’est bien le mot et son traitement informatique qui était au centre des développements, la démarche d’Apple en 2005 nous montre un changement de perspective : on passe du mot à la page. L’attention est porté à un autre endroit, sur une page que génère Pages et qui n’existe pas dans d’autres environnements. Depuis vingt ans que cet outil est nativement disponible sur les ordinateurs de chez Apple, la compatibilité avec d’autres formats et/ou logiciels à fortement augmentée, en témoigne les arguments de communication mis en avant sur la page web du logiciel<a href="#fn49" class="footnote-ref" id="fnref49" role="doc-noteref"><sup>49</sup></a> mais compatible ne veut pas dire identique. En plus de n’être accessible que <strong>sous</strong> MacOS, cette page ne l’est également que <strong>sous</strong> Pages : cette formulation courante laisse entendre que l’utilisateur devient alors sujet de son environnement d’écriture, nous dit F. Kittler <span class="citation" data-cites="kittler_mode_2015">(2015)</span>.</p> <p>Cette position kittlerienne, que l’on peut qualifier d’essentialiste, pose les fondations des travaux de K. Hayles <span class="citation" data-cites="hayles_my_2005">(Hayles, 2005)</span>, du posthumanisme, et du nouveau matérialisme, courants dans lesquels s’inscrivent en outre les travaux de K. Barad <span class="citation" data-cites="barad_meeting_2007 barad_frankenstein_2023">(2007, 2023)</span> et ceux de M. Vitali-Rosati <span class="citation" data-cites="vitali-rosati_pour_2021">(2021)</span>. Pourtant, leur approche du rapport entre humain et machine est radicalement différente de celle de F. Kittler. Alors que F. Kittler identifie la machine et l’utilisateur par une série de propriétés ou définitions <em>avant</em> leur interaction, quasiment de manière décisive, les posthumanistes choisissent de ne pas déterminer les agents préalablement à l’environnement mais comme résultats de l’agencement de plusieurs dynamiques dans un espace donné. C’est en ce sens que sont mobilisées et développées les notions de <em>worldview</em> ches K. Hayles, où Mère Nature devient une Matrice (<em>My Mother was a Computer</em>), l’<em>intra-action</em> à la place d’interaction puisque les agents ne sont pas prédéterminés chez K. Barad et enfin l’<em>éditorialisation</em> chez M. Vitali-Rosati qui propose une ontologie de la médiation (métaontologie) selon laquelle le media n’existe pas, on y retrouve la provocation de Kittler, et que toutes ces dynamiques, ces intra-actions, sont des médiations dont la matérialité, dans un agencement donné, produit du sens <span class="citation" data-cites="vitali-rosati_media_2019">(Vitali-Rosati & Larrue, 2019)</span>.</p> <p>Ainsi, l’assujetissement de l’humain aux logiciels que nous avons mentionné, que F. Kittler critique vivement dans ses travaux, n’a plus de raison d’être dans cette perspective non-essentialiste offerte par l’éditorialisation puisque ces entités sont uniquement déterminées lorsqu’il y a intra-action. Les relations entre les agents ne peuvent plus être présupposées et leur détermination est réalisée depuis un référentiel quasiment unique si l’on considère que les paramètres de cet environnement sont variables et que la probabilité d’obtention de conditions strictement identiques est quasi nulle. Depuis cette perspective où l’on considère les différents agents comme des productions de leur agencement dans un écosystème, il devient intéressant d’observer leur relation tout au long de ce processus pour comprendre comment ils s’affectent les uns les autres.</p> <p>Néanmoins, un trouble persiste dans cette relation entre ces agents. Il se manifeste entre ce que l’usager à l’intention d’écrire et le document que produit la machine, qui est structuré selon un certains nombre de normes, formats, etc., implémentés dans un logiciel. Ce trouble nait de la rencontre entre une représentation du texte structurée graphiquement et une représentation du texte structurée par du texte, comme c’est le cas pour une page web interprétée par un navigateur et son pendant au format HTML. En ce sens, nous examinons la possibilité que l’écriture numérique puisse être affublée d’une caractéristique supplémentaire : la cécité. Cette caractéristique nous semble présente dans le fait qu’il y ait plusieurs angles morts entre ces deux conceptions du texte qui ne permettent ni à l’utilisateur ni à la machine de voir le texte dans sa totalité. La piste de ce trouble nous mène également à comprendre l’enjeu de cette relation entre l’usager et son environnement puisque. En le dévoilant, nous mettrons à jour les indices de la rencontre entre un auteur et son environnement d’écriture.</p> @@ -350,7 +352,7 @@ Du fait de mon implication dans Stylo, le regard que je porte sur ce terrain n†<p>Chacun de ces états a une signification particulière. Le premier état est la projection d’une structure de l’information, tandis que le deuxième en permet l’interprétation et l’affichage par le navigateur, la troisième est une représentation formatée pour circuler entre un client et un serveur et enfin, la quatrième, est à l’état de stockage, prête à être appelée pour réaliser le chemin en sens inverse.</p> <p>Ces différents états du texte sont plus que de simples représentations. Ce sont des documents différents et chacun à une signification et un usage qui lui est propre. Par exemple, la forme en Markdown brut ne peut pas circuler en l’état avec le protocole HTTP, il lui manque toute une série d’informations et une transformation vers un autre format (le JSON) pour employer ce canal de communication : ce dont s’occupe Stylo.</p> <p>Parmi ces quatre documents produits pour écrire, un seul l’est par l’utilisateur tandis que les autres formes sont écrites par Stylo.</p> -<p>Écrire dans un environnement numérique dépasse l’encodage de signes dans un seul format d’écriture. Comme nous l’avons vu avec Stylo, ce sont différents protocoles qui sont mobilisés pour produire une suite de documents intermédiaires et, par ce cheminement, imprègnent l’écriture d’une matérialité. Lorsque Stylo promeut une reprise en main du texte par les utilisateurs, il ne faut pas comprendre un environnement moins complexe en termes d’interactions des différentes composantes dans cet écosystème, il faut y voir une chaîne de traitement transparente, libre et ouverte sur les transformations opérées dans le texte. Pourtant, plutôt qu’une reprise en main, nous lui préférons la notion de <strong>déprise</strong> sur le texte, au sens que lui donnait Louise Merzeau <span class="citation" data-cites="sauret_revue_2020">(Sauret, 2020)</span><a href="#fn48" class="footnote-ref" id="fnref48" role="doc-noteref"><sup>48</sup></a>.</p> +<p>Écrire dans un environnement numérique dépasse l’encodage de signes dans un seul format d’écriture. Comme nous l’avons vu avec Stylo, ce sont différents protocoles qui sont mobilisés pour produire une suite de documents intermédiaires et, par ce cheminement, imprègnent l’écriture d’une matérialité. Lorsque Stylo promeut une reprise en main du texte par les utilisateurs, il ne faut pas comprendre un environnement moins complexe en termes d’interactions des différentes composantes dans cet écosystème, il faut y voir une chaîne de traitement transparente, libre et ouverte sur les transformations opérées dans le texte. Pourtant, plutôt qu’une reprise en main, nous lui préférons la notion de <strong>déprise</strong> sur le texte, au sens que lui donnait Louise Merzeau <span class="citation" data-cites="sauret_revue_2020">(Sauret, 2020)</span><a href="#fn50" class="footnote-ref" id="fnref50" role="doc-noteref"><sup>50</sup></a>.</p> <blockquote> <p>Cette formule est empruntée à Louise Merzeau qui l’employait pour parler des […] utilisateurs des grandes plateformes du Web [et de] la perte de contrôle de leurs usages, restreints et conditionnés par les algorithmes et par des interfaces de plus en plus normalisées.</p> </blockquote> @@ -520,41 +522,43 @@ Zacklad, M. (2019). <span>Le design de l’information : textualisation, documen <li id="fn11"><p>Cette dimension essentialiste propre à l’interaction est détaillée dans le chapitre 1 (ajouter lien)<a href="#fnref11" class="footnote-back" role="doc-backlink">↩︎</a></p></li> <li id="fn12"><p>Le chapitre 1 devra décrire l’intermédialité montréalaise, il faudra ajouter un renvoi ici<a href="#fnref12" class="footnote-back" role="doc-backlink">↩︎</a></p></li> <li id="fn13"><p>En informatique, le qualificatif agnostique désigne une ressource indépendante du système au sein duquel elle se trouve. Par exemple, un logiciel agnostique fonctionnerait de la même manière sous différents systèmes d’exploitation. Il en gagne ainsi la propriété d’interopérabilité.<a href="#fnref13" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn14"><p>Pandoc est un incontournable pour transformer des documents. Il a été développé et maintenu en Haskell par son créateur John MacFarlane depuis 2006.<a href="#fnref14" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn15"><p>La pandoc-api est accessible à cet <em>endpoint</em> : https://pandoc-api.stylo.huma-num.fr/<a href="#fnref15" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn16"><p>FastAPI est disponible à cette adresse : https://fastapi.tiangolo.com/, consulté le 24 février 2024.<a href="#fnref16" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn17"><p>On peut trouver le module d’export à cette URL : https://export.stylo.huma-num.fr/<a href="#fnref17" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn18"><p>Voir le site web dédié à l’éditeur Monaco : https://microsoft.github.io/monaco-editor/, consulté le 29 février 2024.<a href="#fnref18" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn19"><p>L’<em>endpoint</em> de l’API GraphQL de Stylo est accessible ici : https://stylo.huma-num.fr/graphql.<a href="#fnref19" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn20"><p>Ces deux problèmes désignent soit une récupération trop importante de données et nécessite un tri après récupération des données sur le serveur, soit un manque de données pallié par un deuxième appel ou plus au serveur pour compléter le besoin.<a href="#fnref20" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn21"><p>La modélisation du schéma GraphQL de Stylo est accessible sur le dépôt Github à l’adresse suivante :https://github.com/EcrituresNumeriques/stylo/blob/master/graphql/models/user.js<a href="#fnref21" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn22"><p>Voir https://graphql.or/learn/serving-over-http/, consulté le 24 février 2024.<a href="#fnref22" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn23"><p>Voir la page web https://www.rfc-editor.org/rfc/rfc9110#name-introduction, consultée le 24 février 2024.<a href="#fnref23" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn24"><p>Traduction personnelle : La méthode POST demande à la ressource cible de traiter la représentation incluse dans la demande selon sa propre sémantique. Par exemple, la méthode POST est utilisée pour les usages suivants (parmi d’autres) : Fournir les blocs de données, comme les champs d’un formulaire HTML, à un traitement de données ; Publier un message sur un tableau d’affichage, un groupe d’échange, une liste de diffusion, un blog ou un groupe d’articles similaire ; Créer une nouvelle ressource qui n’a pas encore été identifiée par le serveur d’origine ; et Ajouter des données à la (aux) représentation(s) existante(s) d’une ressource.<a href="#fnref24" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn25"><p>L’idempotence signifie qu’une opération a le même effet et cela quel que soit le nombre d’application.<a href="#fnref25" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn26"><p>Voir son site web, consulté le 31 mars 2024 : https://daringfireball.net/projects/markdown/<a href="#fnref26" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn27"><p>Les spécificités de CommonMark sont disponibles sur le site web dédié à cette saveur : https://commonmark.org/, consulté le 31 mars 2024.<a href="#fnref27" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn28"><p>Celles de GFM sont disponibles sur cette page web : https://github.github.com/gfm/, consultée le 31 mars 2024.<a href="#fnref28" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn29"><p>Celles de MultiMarkdown sont disponibles sur cette page web : https://rawgit.com/fletcher/MultiMarkdown-6-Syntax-Guide/master/index.html, cinsultée le 31 mars 2024.<a href="#fnref29" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn30"><p>Celles de Pandoc sont disponibles sur cette page web : https://pandoc.org/MANUAL.html#pandocs-markdown, consultée le 31 mars 2024.<a href="#fnref30" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn31"><p>Celles de Quarto sont disponibles sur cette page web : https://quarto.org/docs/authoring/markdown-basics.html, consultée le 31 mars 2024.<a href="#fnref31" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn32"><p>Outre celle qui porte son nom, Pandoc prend en charge d’autres variantes de Markdown comme cela est indiqué dans la documentation à ce sujet : https://pandoc.org/MANUAL.html#markdown-variants.<a href="#fnref32" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn33"><p>Voir le site web de JSON : https://www.json.org/json-en.html, consulté le 31 mars 2024.<a href="#fnref33" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn34"><p>Voir le blog de Ruud van Asseldonk : https://ruudvanasseldonk.com/2023/01/11/the-yaml-document-from-hell, consulté le 31 mars 2024.<a href="#fnref34" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn35"><p>Voir la page des <em>releases</em> de Pandoc : https://pandoc.org/releases.html#pandoc-2.2.2-2018-07-16, consultée le 31 mars 2024.<a href="#fnref35" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn36"><p>Voir la page web de la librairie : https://pypi.org/project/PyYAML/, consultée le 31 mars 2024.<a href="#fnref36" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn37"><p>Voir le site web du langage TOML : https://toml.io/en/, consulté le 31 mars 2024.<a href="#fnref37" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn38"><p>Le pressoir-cli est un paquet python développé par la CRCEN et disponible à cette page web : https://pypi.org/project/pressoir-cli/, consultée le 31 mars 2024.<a href="#fnref38" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn39"><p>Zotero est un logiciel de gestion de références bibliographiques très connu, il est l’alternative libre et <em>open source</em> à Mendeley, voir le site web de Zotero : https://www.zotero.org/, consulté le 31 mars 2024.<a href="#fnref39" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn40"><p>EBib est un logiciel de gestion de références bibliographiques fonctionnant depuis l’éditeur de texte Emacs, voir le site du projet : https://joostkremers.github.io/ebib/, consultée le 31 mars 2024.<a href="#fnref40" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn41"><p>cf. le tableau des champs accolés aux types de documents en annexe.<a href="#fnref41" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn42"><p>Voir la discussion sur GitHub : https://github.com/EcrituresNumeriques/stylo/pull/991, consultée le 31 mars 2024.<a href="#fnref42" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn43"><p>Voir la documentation de Stylo : http://stylo-doc.ecrituresnumeriques.ca/fr/bibliographie/#lettres-capitales-pour-les-titres-en-anglais, consultée le 31 mars 2024.<a href="#fnref43" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn44"><p>Traduction personnelle : […] routinely disrupts, dominates, and trivializes content.<a href="#fnref44" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn45"><p>Traduction personnelle : actively facilitates the making of lightweight presentations.<a href="#fnref45" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn46"><p>Cet acronyme correspondait à la commande pour exécuter le logiciel depuis un terminal, alors qu’aujourd’hui il réfère plutôt au logiciel WordPress.<a href="#fnref46" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn47"><p>Voir le site web, consulté le 21 mars 2024 : https://www.apple.com/pages/compatibility/<a href="#fnref47" class="footnote-back" role="doc-backlink">↩︎</a></p></li> -<li id="fn48"><p>Louise Merzeau n’a jamais publié de document sur cette déprise, néanmoins Nicolas Sauret mentionne ce concept et son sens dans sa thèse.<a href="#fnref48" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn14"><p>Il n’y a pas de corrélation directe avec l’utilisation de la norme ASCII par les institutions américaines à cette date, néanmoins on remarque qu’il y a un engouement pour l’informatique à la fin des années 1960.<a href="#fnref14" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn15"><p>On peut retrouver tout le contenu de cette RFC sur cette page web : https://www.rfc-editor.org/rfc/rfc3.html. Les RFC sont numérotées, dans ce cas-ci il s’agit de la RFC 3, et vont par ordre croissant. Une modification d’un document numéroté fait l’objet d’un nouveau numéro et rend obsolète la version antérieure. Comme on peut la page Web, la RFC 3 est rendue obsolète par la numéro 10, puis la 16, etc.<a href="#fnref15" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn16"><p>Pandoc est un incontournable pour transformer des documents. Il a été développé et maintenu en Haskell par son créateur John MacFarlane depuis 2006.<a href="#fnref16" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn17"><p>La pandoc-api est accessible à cet <em>endpoint</em> : https://pandoc-api.stylo.huma-num.fr/<a href="#fnref17" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn18"><p>FastAPI est disponible à cette adresse : https://fastapi.tiangolo.com/, consulté le 24 février 2024.<a href="#fnref18" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn19"><p>On peut trouver le module d’export à cette URL : https://export.stylo.huma-num.fr/<a href="#fnref19" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn20"><p>Voir le site web dédié à l’éditeur Monaco : https://microsoft.github.io/monaco-editor/, consulté le 29 février 2024.<a href="#fnref20" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn21"><p>L’<em>endpoint</em> de l’API GraphQL de Stylo est accessible ici : https://stylo.huma-num.fr/graphql.<a href="#fnref21" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn22"><p>Ces deux problèmes désignent soit une récupération trop importante de données et nécessite un tri après récupération des données sur le serveur, soit un manque de données pallié par un deuxième appel ou plus au serveur pour compléter le besoin.<a href="#fnref22" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn23"><p>La modélisation du schéma GraphQL de Stylo est accessible sur le dépôt Github à l’adresse suivante :https://github.com/EcrituresNumeriques/stylo/blob/master/graphql/models/user.js<a href="#fnref23" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn24"><p>Voir https://graphql.or/learn/serving-over-http/, consulté le 24 février 2024.<a href="#fnref24" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn25"><p>Voir la page web https://www.rfc-editor.org/rfc/rfc9110#name-introduction, consultée le 24 février 2024.<a href="#fnref25" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn26"><p>Traduction personnelle : La méthode POST demande à la ressource cible de traiter la représentation incluse dans la demande selon sa propre sémantique. Par exemple, la méthode POST est utilisée pour les usages suivants (parmi d’autres) : Fournir les blocs de données, comme les champs d’un formulaire HTML, à un traitement de données ; Publier un message sur un tableau d’affichage, un groupe d’échange, une liste de diffusion, un blog ou un groupe d’articles similaire ; Créer une nouvelle ressource qui n’a pas encore été identifiée par le serveur d’origine ; et Ajouter des données à la (aux) représentation(s) existante(s) d’une ressource.<a href="#fnref26" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn27"><p>L’idempotence signifie qu’une opération a le même effet et cela quel que soit le nombre d’application.<a href="#fnref27" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn28"><p>Voir son site web, consulté le 31 mars 2024 : https://daringfireball.net/projects/markdown/<a href="#fnref28" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn29"><p>Les spécificités de CommonMark sont disponibles sur le site web dédié à cette saveur : https://commonmark.org/, consulté le 31 mars 2024.<a href="#fnref29" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn30"><p>Celles de GFM sont disponibles sur cette page web : https://github.github.com/gfm/, consultée le 31 mars 2024.<a href="#fnref30" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn31"><p>Celles de MultiMarkdown sont disponibles sur cette page web : https://rawgit.com/fletcher/MultiMarkdown-6-Syntax-Guide/master/index.html, cinsultée le 31 mars 2024.<a href="#fnref31" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn32"><p>Celles de Pandoc sont disponibles sur cette page web : https://pandoc.org/MANUAL.html#pandocs-markdown, consultée le 31 mars 2024.<a href="#fnref32" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn33"><p>Celles de Quarto sont disponibles sur cette page web : https://quarto.org/docs/authoring/markdown-basics.html, consultée le 31 mars 2024.<a href="#fnref33" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn34"><p>Outre celle qui porte son nom, Pandoc prend en charge d’autres variantes de Markdown comme cela est indiqué dans la documentation à ce sujet : https://pandoc.org/MANUAL.html#markdown-variants.<a href="#fnref34" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn35"><p>Voir le site web de JSON : https://www.json.org/json-en.html, consulté le 31 mars 2024.<a href="#fnref35" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn36"><p>Voir le blog de Ruud van Asseldonk : https://ruudvanasseldonk.com/2023/01/11/the-yaml-document-from-hell, consulté le 31 mars 2024.<a href="#fnref36" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn37"><p>Voir la page des <em>releases</em> de Pandoc : https://pandoc.org/releases.html#pandoc-2.2.2-2018-07-16, consultée le 31 mars 2024.<a href="#fnref37" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn38"><p>Voir la page web de la librairie : https://pypi.org/project/PyYAML/, consultée le 31 mars 2024.<a href="#fnref38" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn39"><p>Voir le site web du langage TOML : https://toml.io/en/, consulté le 31 mars 2024.<a href="#fnref39" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn40"><p>Le pressoir-cli est un paquet python développé par la CRCEN et disponible à cette page web : https://pypi.org/project/pressoir-cli/, consultée le 31 mars 2024.<a href="#fnref40" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn41"><p>Zotero est un logiciel de gestion de références bibliographiques très connu, il est l’alternative libre et <em>open source</em> à Mendeley, voir le site web de Zotero : https://www.zotero.org/, consulté le 31 mars 2024.<a href="#fnref41" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn42"><p>EBib est un logiciel de gestion de références bibliographiques fonctionnant depuis l’éditeur de texte Emacs, voir le site du projet : https://joostkremers.github.io/ebib/, consultée le 31 mars 2024.<a href="#fnref42" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn43"><p>cf. le tableau des champs accolés aux types de documents en annexe.<a href="#fnref43" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn44"><p>Voir la discussion sur GitHub : https://github.com/EcrituresNumeriques/stylo/pull/991, consultée le 31 mars 2024.<a href="#fnref44" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn45"><p>Voir la documentation de Stylo : http://stylo-doc.ecrituresnumeriques.ca/fr/bibliographie/#lettres-capitales-pour-les-titres-en-anglais, consultée le 31 mars 2024.<a href="#fnref45" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn46"><p>Traduction personnelle : […] routinely disrupts, dominates, and trivializes content.<a href="#fnref46" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn47"><p>Traduction personnelle : actively facilitates the making of lightweight presentations.<a href="#fnref47" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn48"><p>Cet acronyme correspondait à la commande pour exécuter le logiciel depuis un terminal, alors qu’aujourd’hui il réfère plutôt au logiciel WordPress.<a href="#fnref48" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn49"><p>Voir le site web, consulté le 21 mars 2024 : https://www.apple.com/pages/compatibility/<a href="#fnref49" class="footnote-back" role="doc-backlink">↩︎</a></p></li> +<li id="fn50"><p>Louise Merzeau n’a jamais publié de document sur cette déprise, néanmoins Nicolas Sauret mentionne ce concept et son sens dans sa thèse.<a href="#fnref50" class="footnote-back" role="doc-backlink">↩︎</a></p></li> </ol> </section> </div> |