Lundi 3 décembre 2018

Cher journal,

À ma grande surprise, la réécriture d'un parseur propre, fait pour le traitement du HTML, a été plus rapide que ce à quoi je m'attendais. Le choix de Python 3, et de sa bibliothèque html.parser a été un choix bienheureux. Le parseur remplace avantageusement tout le mecanisme de construction d'une entrée de flux Atom, de la balise <entry> de début, à la balise </entry> de fin.

À l'instant t, le convertisseur se comporte plutôt bien, puisqu'il permet de produire à partir de ce genre de code HTML :

<h1>
Sans titre 1<sup>er</sup>
</h1>
<p>
contenu <a
href="../" > plouf plouf</p>

... ce genre de sortie au format Atom :

        <entry>
                <title>Sans titre 1er</title>
                <id>urn:uuid:73c8b6d2-3d49-49b8-8604-c1a95e402725</id>
                <updated>2018-12-03T22:04:07+0100</updated>
                <link href="http://emlwks999.hd.free.fr//~tokamak/articles/irc/" rel="alternate"/>
                <summary type="html">
&lt;h1&gt;
Sans titre 1&lt;sup&gt;er&lt;/sup&gt;
&lt;/h1&gt;
&lt;p&gt;
contenu &lt;a href="/~tokamak/articles/irc/../"&gt; plouf plouf&lt;/p&gt;
                </summary>
        </entry>

Plus impressionnant, la mouture courante est capable de construire visiblement correctement une entrée de flux pour l'article sur IRC.

Clairement, le traitement ligne à ligne n'est pas fait pour lire du HTML, et Bash n'est pas adapté à ce genre de traitement. La partie en Shell a été modifiée pour prendre en compte le fait que l'entrée complète est géré par le code Python, ce qui simplifie la partie en Shell.

Si je ne me suis pas loupé, cette entrée de journal devrait paraître sans soucis dans le flux principal du site. Des copies des différents composants sont joints à cette entrée, pour la postérité. Il reste tout de même pas mal de bizarreries, par exemple pour que le script Shell fonctionne correctement, il faut que le script Python soit dans le PATH. En général, j'ai toujours mon répertoire ~/bin de disponible.

Reste un choix difficile à faire : nommer correctement tous ces fichiers.

[ICO]NameLast modifiedSize
[PARENTDIR]Parent Directory  -
[TXT]html2rss.sh2018-12-03 22:38 2.4K
[   ]atom_debug.xml2018-12-03 22:44 88K
[TXT]html2rss.py2018-12-03 23:11 5.4K

  —