Qu'est-ce qu'un format ? C'est une façon particulière d'organiser et structurer des données dans un fichier. Dans cette séance, vous apprendrez les caractéristiques de plusieurs formats, notamment : le texte brut, markdown, HTML, XML.
Chaire de recherche du Canada sur les écritures numériques, Bibliothèque des lettres et des sciences humaines, Ouvroir d'histoire de l'art et de muséologie numérique. — giulia.ferretti@umontreal.ca ; louis-olivier.brassard@umontreal.ca
Plan de la séance
Qu’est-ce qu’un format ?
Quelles sont ses implications techniques et politiques ?
En pratique ! Exercices d’encodage
1. Les formats
1. Les formats
1.1. Qu’est-ce que un format ? – les origines du terme
Les formats de papier pour l’imprimé, première apparition technique du terme ?
1. Les formats
1.2. Et les formats informatiques ?
Une façon particulière d’organiser et structurer des données dans un fichier.
En informatique, au niveau le plus fondamental, tout est exprimé dans un alphabet numérique binaire : 0 et 1. Un format, c’est une convention qui établit la correspondance entre une certaine succession de 0 et de 1, et quelque chose d’autre : par exemple une couleur, ou une lettre de l’alphabet, ou la position d’un pixel sur un écran. L’expression « format texte » désigne une catégorie de formats pour lesquels le contenu en binaire des fichiers encode des caractères textuels uniquement.
En raison de cette structure complexe, les fichiers PDF sont beaucoup plus lourds qu’un simple fichier texte – c’est-à-dire, dans un format texte brut.
3. PDF, DOCX, XML, MD, HTML de plus près
3.2. DOCX
.doc (à partir de MS Word 97) : format binaire, lisible uniquement par le logiciel propriétaire
Microsoft Word
Suite aux pressions de la communauté, Microsoft a publié une spécification pour ce format
.docx (depuis 2007) : est format par défaut des documents produit avec le logiciel Microsoft Word
.doc + x (XML) : intégration du langage de balisage XML
Qu’est-ce qu’un fichier DOCX ? C’est simplement un dossier zip contenant des fichiers XML !
S’il est possible de lire l’encodage d’un fichier .docx, son format s’avrère très verbeux – essayez pour voir !
3. PDF, DOCX, XML, MD, HTML de plus près
3.3. XML
XML : acronyme pour Extensible Markup Language
Créée en 1998
Les données sont stockées sous forme de texte brut : les informations sont créées, stockées, transportées et partagées indépendamment des logiciels utilisés
XML est conçu pour la structuration stricte de données
Il permet de décrire une structure hiérarchique
Les informations sont validées par des schémas : un schéma définit et contraint les caractéristiques qu’un document XML donné peut avoir. Par exemple : un livre doit comporter un titre (obligatoire), mais peut contenir des chapitres (facultatif)
C’est un format général pour décrire les données. (On dira aussi : un méta-format.) Il n’y a pas un seul format XML, mais bien plusieurs schémas possibles !
3. PDF, DOCX, XML, MD, HTML de plus près
3.5. HTML
HTML : acronyme pour Hypertext Markup Language
Créé en 1993
C’est le langage du Web, permettant d’écrire des hyperdocuments, reliés entre eux par des hyperliens (hyperlinks)
Comme XML, HTML a été conçu pour marquer le texte de manière structurelle et non pour décrire la présentation d’une page web
En 2000, HTML est devenu un standard international (ISO/IEC 15445:2000)
La cinquième version (« HTML5 », officialisée en 2014), s’adapte à l’évolution du Web
3. PDF, DOCX, XML, MD, HTML de plus près
3.6. La structure d’un fichier HTML
<!doctype html> <html>
<head>
<metacharset="utf-8">
<title>Titre dans l'onglet</title>
</head>
<body>
<h1>Titre</h1>
<p>Ceci contient un paragraphe.</p>
</body>
</html>
3. PDF, DOCX, XML, MD, HTML de plus près
3.4. Markdown
Créé en 2004
Les données sont stockées sous forme de texte brut : les informations sont créées, stockées, transportées et partagées indépendamment des logiciels utilisés
C’est un langage de balisage léger. Mark up et mark down : baliser, mais baliser « moins »
Lisible par les humains, mais également pratique pour la rédaction
Un surcouche de HTML : tous elements HTML sont valides dans les documents Markdown
Pandoc est un convertisseur « agnostique », il n’impose pas une pratique
par rapport à un balisage.
Bien que ce logiciel puisse faire des conversions entre une myriade de formats, certaines conversions sont impossibles : un format complexe peut être
trop difficile à réduire, au risque de perdre la majorité des
informations, ou encore il peut être impossible de le lire (c’est le cas des formats binaires dont aucune spécification n’est publiée).
4. Conversion entre formats
4.3. Fonctionnement de Pandoc
Pandoc fonctionne en ligne de commande, avec un schéma classique
d’options.
En rappel : en ligne de commande, on commence toujours par appeler un programme (ici, pandoc), en lui fournissant une séquence d’arguments (comme un fichier source à convertir) et d’options (gestion du format, recours à un modèle, etc.).
Conversion d’un fichier source au format markdown.
Notez que le format de sortie n’a pas été précisé : par défaut, Pandoc répondra au format HTML, directement dans la console, sans enregistrer la réponse dans un fichier. Essayez pour voir ce que ça donne !
#!/bin/bash
pandoc mon-fichier.md
# ...
Production d’un fichier HTML. Le prochain exemple crée un fichier html, nommé mon-fichier.html (à partir du fichier source mon-fichier.md). On y fournit également les « drapeaux » (ou options) de ligne de commande permettant d’expliciter le format d’entrée (--from, ou -f pour faire court) :
#!/bin/bash
# Note: les barres obliques inversées permettes de poursuivre l'écriture# de la commande sur une ligne séparée.pandoc \
--from markdown \
--to html \
mon-fichier.md \
--output mon-fichier.html`# => "mon-fichier.html" sera produit !
Utilisation d’un modèle. La troisième commande applique un modèle ou gabarit (en anglais : template), permettant ainsi
de prérégler le rendu du document. On gagnera ainsi du temps en réutilisant un modèle fréquemment utilisé. Ici, on suppose l’existence du fichier mon-modele.html, appelé avec l’option --template de Pandoc :
#!/bin/bash
# Note: les barres obliques inversées permettes de poursuivre l'écriture# de la commande sur une ligne séparée.pandoc \
--from markdown \
--to html \
--template mon-modele.html \
mon-fichier.md \
--output mon-fichier.html
# => "mon-fichier.html" sera produit !
<!doctype html><html>
<head>
<!-- Titre du document, dans les métadonnées --> <title>$titre$</title>
<!-- Auteur du document, dans les métadonnées --> <metaname="author"content="$auteur$">
</head>
<body>
<!-- Titre du document, affiché une balise `h1` --> <h1class="titre">$titre$</h1>
<!-- Auteur du document --> <pclass="auteur">$auteur$</p>
<!-- La date, si indiquée dans le document source --> $if(date)$
<pclass="date">$date$</p>
$endif$
<!-- Le corps du document, ou contenu du markdown,
sera inséré ici, dans la variable `$body$` de pandoc --> <div>$body$</div>
</body>
</html>
Lancez la conversion en HTML en appliquant le modèle/template, puis ouvrez le document obtenu.