# 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

Déb/u/o/gue tes humanités

CC BY-NC-SA 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