Déb/u/o/gue tes humanités
Saison 4 Séance 02

Les formats

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

  1. Qu’est-ce qu’un format ?
  2. Quelles sont ses implications techniques et politiques ?
  3. 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.

Arthur Perret, 2021

2. Implications technique et politiques

2. Implications technique et politiques

2.1. L’interopérabilité

Transmission d’informations entre machines

2. Implications technique et politiques

2.2. Format ouvert ou fermé ?

Standards et licences.

3. PDF, DOCX, XML, MD, HTML de plus près

Standards et licences.

3. PDF, DOCX, XML, MD, HTML de plus près

3.1. PDF

  • Portable Document Format : pour afficher et imprimer les fichiers toujours de la même manière
  • 1991 par Adobe
  • Depuis 2008, standard ouvert : ISO standard 32000-1:2008
  • Le fichier est structuré sur quatre niveaux
    • Header : indique la version de la spécification PDF du fichier
    • Body : contenant les objets qui constituent le document contenu dans le dossier
    • Cross-reference Table : contenant les informations sur les objets indirects dans le fichier
    • Trailer : indiquant l’emplacement de la cross-reference table dans le corps du fichier.
  • À l’intérieur de la balise body, chaque page est traitée individuellement
  • 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 !

Un document de traitement de texte au format Microsoft Word, dans lequel il n’y a d’écrit que « Bonjour ».

Aperçu des fichiers produits par l’écriture de « Bonjour! » et l’insertion d’une image dans un document Microsoft Word DOCX.

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>
    <meta charset="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
  • Tableau d’équivalence avec HTML

3. PDF, DOCX, XML, MD, HTML de plus près

3.5. Exercice avec Markdown

Baliser le texte d’un article avec du markdown

Lien vers l’article

Lien vers le texte brut à baliser

Identifier

  • le titre, sous-titre
  • image initiale
  • référence
  • titre en italique

4. Conversion entre formats

4. Conversion entre formats

4.1. La conversion

Pour les formats textuels, la conversion consiste en la transformation de balises (plus légères) en d’autres balises (plus verbeuses).

En entrée :

  • texte balisé
  • métadonnées sérialisées
  • bibliographie structurée

En sortie :

  • texte mis en forme, selon la d’affichage (comme les titres en gras ou en italique)
  • bibliographie formatée selon la convention choisie (APA, MLA, Études françaises, etc.)

4. Conversion entre formats

4.2. Conversion entre formats

Des logiciels permettent de passer aisément d’un format à un autre, comme Pandoc :

  • Créé 2006, par le philosophe John MacFarlane
  • 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.).

<programme> <fichier.entrée> (optionnel: <fichier.sortie>, <drapeau>, etc.)

4. Conversion entre formats

4.4. Pandoc – Exemples

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 !

5. Pandoc en pratique

5. Pandoc en pratique

5.1. Installer Pandoc

  • Terminal
    • Windows : Start > Windows Power Shell
    • Mac : chercher « terminal »
    • Linux : chercher « terminal »

5. Pandoc en pratique

5.2. Installation – Deuxième étape

Pour installer Pandoc, suivez les instructions sur cette page : https://docs.zettlr.com/fr/installing-pandoc/

6. Exercice

  • Créer un document Markdown avec des niveaux de titre, une liste, une citation longue et de l’emphase (italique et gras)
  • Lancer la commande pandoc mon-fichier.md, en l’adaptant selon les exemples montrés précédemment
  • Ouvrir le fichier HTML obtenu

6. Exercice

6.1. Ajouter des métadonnées

Pour ajouter des métadonnées, on débutera l’écriture du document markdown avec un bloc au format YAML, délimité par les triplets suivants --- :

1
2
3
4
5
6
---
titre: Le titre de mon document
auteur: Mon Nom
---

<!-- Le corps du document ira ici -->

Essayez de convertir votre fichier markdown en HTML, puis en DOCX.
(Indice : manuel d’utilisateur de Pandoc)

Suite à vos conversions, vous devriez obtenir la série de fichiers suivants :

# dans votre répertoire courant...
.
├── mon-fichier.docx
├── mon-fichier.html
└── mon-fichier.md

Ouvrez les fichiers obtenus. Que remarquez-vous ?

6. Exercice

6.2. Appliquer un modèle

Créez un fichier HTML avec le code suivant :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<!doctype html>
<html>
  <head>
    <!-- Titre du document, dans les métadonnées -->
    <title>$titre$</title>

    <!-- Auteur du document, dans les métadonnées -->
    <meta name="author" content="$auteur$">
  </head>

  <body>
    <!-- Titre du document, affiché une balise `h1` -->
    <h1 class="titre">$titre$</h1>

    <!-- Auteur du document -->
    <p class="auteur">$auteur$</p>

    <!-- La date, si indiquée dans le document source -->
    $if(date)$
    <p class="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.

Ressources