summaryrefslogtreecommitdiff
path: root/RFC_7992_HTML_Format_for_RFCs.txt
diff options
context:
space:
mode:
Diffstat (limited to 'RFC_7992_HTML_Format_for_RFCs.txt')
-rw-r--r--RFC_7992_HTML_Format_for_RFCs.txt171
1 files changed, 171 insertions, 0 deletions
diff --git a/RFC_7992_HTML_Format_for_RFCs.txt b/RFC_7992_HTML_Format_for_RFCs.txt
new file mode 100644
index 0000000..9038571
--- /dev/null
+++ b/RFC_7992_HTML_Format_for_RFCs.txt
@@ -0,0 +1,171 @@
+Titre: RFC 7992: HTML Format for RFCs
+Auteur:
+Date: Fri 16 Dec 2016 01:00:00 +0100
+Lien: https://www.bortzmeyer.org/7992.html
+
+Depuis la sortie du RFC 7990 et ses copains, le format canonique (le format de
+référence) des RFC n'est plus le texte seul mais un langage XML, normalisé dans
+le RFC 7991. Les formats « de publication » seront produits automatiquement à
+partir de ce XML. C'est ainsi que notre RFC 7992 décrit la sortie HTML, qui
+permettra de publier des beaux RFC sur le Web.
+
+HTML, trop riche et trop mouvant, est en effet mal adapté à l'écriture et à la
+maintenance de documents. Il n'était donc pas envisageable de le choisir comme
+format canonique. En revanche, il est incontournable comme format de
+publication. C'est en effet le langage du Web, et il y a donc logiquement une
+forte demande pour pouvoir lire les RFC en HTML. Avant, lorsque le format
+canonique était le texte brut[1], des versions non officielles étaient publiées
+en HTML (voir un exemple[2]) mais, le texte brut n'ayant pas de formatage
+précis, ces versions n'avaient pas vraiment l'air de vraies pages Web...
+
+(Notez que ce blog que vous êtes en train de lire est produit par un mécanisme
+analogue à celui que les RFC suivront désormais : tapé en XML, avec le HTML
+produit automatiquement[3].)
+
+La section 1 de notre RFC résume les principes de l'HTML utilisé. D'abord, ce
+sera un sous-ensemble de HTML (HTML a bien trop de fonctions). Ensuite, la
+présentation sera largement délégué à une feuille de style CSS, dont les
+caractéristiques sont mentionnées dans le RFC 7993.
+
+La section 2, elle, est le « cahier des charges » du HTML des RFC. Elle précise
+les exigences du RFC 6949. Elle concerne les auteurs du ou des logiciels de
+production des RFC (pour ces logiciels, voir le RFC 7998). Les auteurs de RFC,
+eux, n'ont pas à s'en soucier, ils écrivent du XML, et le HTML sera produit par
+les outils.
+
+Le but principal est que l'HTML produit soit parfaitement lisible sur la grande
+majorité des navigateurs utilisés. Pas question bien sûr d'ajouter une de des
+ridicules mentions « optimisé pour Internet Explorer » qui étaient si communes
+sur les sites Web d'amateurs, dans les années 2000. Notre RFC mentionne
+explicitement l'exigence que les textes soient lisibles avec au moins un
+navigateur « texte », comme Lynx, certaines personnes accédant au Web ainsi
+(par obligation ou par goût). C'est l'une des raisons de la décision de ne pas
+accepter la totalité de HTML.
+
+Le fichier HTML devra être autonome (ne pas dépendre de fichiers extérieurs),
+de manière à pouvoir être transmis facilement par des mécanismes tels que rsync
+ou le courrier électronique.
+
+Le JavaScript est accepté mais à condition qu'il ne modifie en aucun cas le
+texte du RFC. (Il peut, par exemple, ajouter des éléments de navigation, ou
+afficher des métadonnées.)
+
+On l'a dit, CSS sera utilisé pour la présentation, mais le cahier des charges
+exige qu'on puisse facilement remplacer la feuille de style par une de son
+choix, pour s'adapter aux goûts locaux.
+
+Le Web étant fondé sur la notion de lien hypertexte, il y aura évidemment des
+liens, aussi bien ceux mis explicitement par l'auteur (« ce point est développé
+en section N »), que ceux ajoutés automatiquement (de la table des matières
+vers les différentes sections, par exemple).
+
+Un point crucial est évidemment l'accessibilité. Comme le savent tous ceux et
+toutes celles qui vont régulièrement à Paris Web, c'est un point essentiel mais
+souvent oublié. Notre RFC note donc que les publications en HTML des futurs RFC
+devront être accessibles aux malvoyants, aux daltoniens, et aux utilisateurs de
+petits écrans, par exemple les smartphones. (Note personnelle : ce dernier
+point ne devrait pas être dans une section sur l'accessibilité. Le Web est
+prévu - contrairement aux formats du monde du papier, comme PDF - pour être
+visible sur tous les périphériques.)
+
+Au fait, quelle version de HTML sera utilisée (section 3 de notre RFC) ? Ce
+sera HTML5 (et pas, et je le déplore, XHTML ; l'inconvénient, souvent cité
+contre XHTML, de la difficulté à l'écrire n'a pas de sens ici, puisque le HTML
+sera produit automatiquement).
+
+La section 4 précise la syntaxe utilisée (rappelez-vous qu'on n'accepte pas la
+totalité de HTML5) : encodage en UTF-8, sauts de ligne en style Unix (un U+000A
+et rien d'autre), pas de caractères de contrôle comme la tabulation (U+0009).
+Les éventuels commentaires du source XML ne seront pas mis dans le HTML (l'idée
+est qu'ils sont pour les auteurs, pas pour les lecteurs).
+
+Il y a des objets divers qu'on retrouve souvent dans le source XML. Ils sont
+rassemblés dans la section 5. Par exemple, on trouve les identificateurs qui
+seront mis comme valeur des attributs id dans le HTML produit. Ce sont parfois
+des identificateurs mis explicitement par l'auteur, et parfois des
+identificateurs produits par le logiciel, par exemple pour que les entrées de
+la table des matières pointent vers la section correspondante.
+
+Autre objet récurrent, la marque de paragraphe (pilcrow pied-de-mouche,
+caractère Unicode U+00B6, celui-ci : ¶), qui sera mise automatiquement derrière
+chaque paragraphe, mais pas affiché par défaut (il faudra promener le pointeur
+dessus pour le voir).
+
+Maintenant, attaquons les différentes parties du RFC rendu en HTML. D'abord
+(section 6), les premiers objets HTML qu'on rencontrera, notamment les
+métadonnées du RFC. Il y aura évidemment un DOCTYPE identifiant le document
+comme du HTML5. L'élément racine sera <>html>, avec une étiquette de langue qui
+sera bien sûr en, l'anglais. L'élément <>head> qui suivra contiendra une
+déclaration de jeu de caractère, un titre, et diverses métadonnées :
+
+
+ <>meta charset="utf-8">
+ <>title>The Mother of all RFCs<>/title>
+ <>meta name="author" content="Joe Hildebrand">
+ <>meta name="author" content="Heather Flanagan">
+ <>meta name="description" content="This document defines...">
+ <>meta name="generator" content="xmljade v0.2.4">
+ <>meta name="keywords" content="html,css,rfc">
+(Rappelez-vous que le HTML produit n'est hélas pas du XHTML donc il est normal
+que les <>meta> ne soient pas explicitement fermés.) Il y aura aussi un lien
+vers la licence des RFC, en utilisant le cadre général des liens (RFC 5988) :
+
+
+ <>link rel="license" href="https://www.rfc-editor.org/copyright/">
+
+Cette première partie du RFC produit contiendra aussi une feuille de style,
+ainsi qu'un lien vers une éventuelle feuille locale, au cas où un lecteur
+souhaiterait lire le RFC selon un style différent :
+
+
+ <>style>
+ body {}
+ ...
+ <>/style>
+ <>link rel="stylesheet" type="text/css" href="rfc-local.css">
+
+Le début de la partie visible du RFC sera composée d'une <>dl> pour les
+métadonnées affichées, et d'une table des matières. Les métadonnées seront donc
+du genre :
+
+
+ <>dl id="identifiers">
+ <>dt>Workgroup:<>/dt>
+ <>dd class="workgroup">rfc-interest<>/dd>
+ <>dt>Series:<>/dt>
+ <>dd class="series">Internet-Draft<>/dd>
+ <>dt>Status:<>/dt>
+ <>dd class="status">Informational<>/dd>
+ <>dt>Published:<>/dt>
+ <>dd><>time datetime="2014-10-25"
+ class="published">2014-10-25<>/time><>/dd>
+ ...
+
+La partie principale du RFC sera, elle, rendue selon les principes décrits en
+section 9 pour chacun des éléments XML qui composent le source.
+
+La dernière partie du RFC incluera un index (si le source XML avait un attribut
+indexInclude dans l'élément <>rfc>), les adresses des auteurs (formatées en
+hCard), et les métadonnées considérées comme les moins importantes (les autres
+ayant été mises au début).
+
+La section 9 de notre RFC est particulièrement longue car elle décrit le rendu
+en HTML de tous les éléments du vocabulaire XML du RFC 7991. Je ne vais pas
+tout décrire ici, juste donner quelques exemples. Ainsi, <>artwork> sera rendu
+dans un élément HTML <>pre>, si le schéma était en art ASCII, sera inclus tel
+quel dans le HTML si le schéma était en SVG (RFC 7996), et sera mis sous forme
+d'un <>img> (avec contenu de plan data:) dans les autres cas. <>sourcecode>,
+lui, est toujours restitué sous forme d'un <>pre> HTML.
+
+La traduction de certains éléments en HTML est plus directe. Par exemple, <>em>
+est simplement rendu par le même élément HTML.
+
+Et, pour finir, un petit mot sur la sécurité (section 11) : comme les RFC en
+HTML ne sont pas forcément téléchargés depuis le Web mais peuvent être lus
+depuis un fichier local (après, par exemple, synchronisation via rsync), on ne
+bénéficie pas forcément des protections du navigateur. Donc, prudence.
+
+Liens:
+[1]: http://www.bortzmeyer.org/rfc-en-texte-brut.html (lien)
+[2]: https://tools.ietf.org/html/rfc7285 (lien)
+[3]: http://www.bortzmeyer.org/blog-implementation.html (lien)