2011-11-18 Ce bon vieux Lynx

Dernière modification

Résumé : Comment utiliser Lynx pour sauvegarder l'essentiel d'une page web en texte brut, sans en perdre les liens.

Modifié(e) :

< Il reste à mettre en forme les titres de section, le titre du document lui-même, et quelques bricoles. Le fichier texte est [http://www.k1ka.be/pics/lynx/web.txt là], et le PDF résultant est [http://www.k1ka.be/pics/lynx/web.pdf là]. Comme les chemins de l'informatique libre ne sont pas jonchés de pétales de roses, j'ai quand même dû affronter une difficulté inattendue sous la forme des caractères accentués dans une URL, codés avec un ''%'' que LaTeX n'aimait pas. Curieusement, en les retranscrivant sous leur forme naturelle, ils ont été acceptés.

à

> Il reste à mettre en forme les titres de section, le titre du document lui-même, et quelques bricoles. Le fichier texte est [http://www.k1ka.be/pics/lynx/web.txt là], et le PDF résultant est [http://www.k1ka.be/pics/lynx/web.pdf là].
> http://www.k1ka.be/pics/lynx/pdf.png
> Comme les chemins de l'informatique libre ne sont pas jonchés de pétales de roses, j'ai quand même dû affronter une difficulté inattendue sous la forme des caractères accentués dans une URL, codés avec un ''%'' que LaTeX n'aimait pas. Curieusement, en les retranscrivant sous leur forme naturelle, ils ont été acceptés.


http://www.k1ka.be/pics/lynx/Northern_Lynx_(f__maculata).png Wikimedia

À mes yeux, Lynx, le butineur en mode texte, était surtout une curiosité historique. Mon sentiment était que pour celui qui tient vraiment à surfer dans un terminal, Links semble plus convivial. Mais j'ai réalisé récemment que Lynx, utilisé de manière non-interactive avec l'option -dump, renvoit les pages html dans un format «texte brut» intéressant.

Le premier parti que j'en ai tiré est de filtrer les textes glanés sur le net que je souhaite conserver, pour les mettre en forme avec [[2009-11-01_Conversion_entre_formats_de_textes_avec_Pandoc?|Pandoc]]. Dans le but d'obtenir une version imprimable d'une page web, il est intéressant que les liens apparaissent de manière lisible sous forme de notes de bas de page, ce qui n'est pas évident en effectuant un copié-collé depuis une fenêtre de navigateur, ou en sauvegardant le code html.

Dans le cas de Pandoc, la syntaxe utilisée est le Markdown; si l'on compare la façon dont les liens sont traités par Lynx avec celle-ci, la similarité est assez évidente:

     [137]Le Parlement européen a adopté, mardi 15 novembre, un texte de loi lui
     permettant de lutter contre la spéculation sur les dettes d'une partie de
     ses États membres. [138]L'UE encadre la spéculation sur les dettes des Etats
  
  References
    
     Visible links
     1. http://www.lemonde.fr/
     
    (...)
    
    137. http://www.lemonde.fr/europe/article/2011/11/15/l-union-europeenne-encadre-la-speculation-sur-les-dettes-des-etats_1603856_3214.html#ens_id=1603618
    138. http://www.lemonde.fr/europe/article/2011/11/15/l-union-europeenne-encadre-la-speculation-sur-les-dettes-des-etats_1603856_3214.html#ens_id=1603618
    Ceci est [un lien][lien]
    
    [lien]: http://www.foo.net/bar/
    Here is a footnote reference,[^1] and another.[^longnote]
    
    [^1]: Here is the footnote.
    
    [^longnote]: Here's one with multiple blocks.

Gràce à Lynx, il est ainsi possible d'obtenir en un tournemain une version texte de base facile à éditer. On élimine rapidement tout ce qui est superflu (menus, pieds de pages, etc.) ainsi que les références vers les liens inutiles. Ensuite, avec Vim, cette commande permet de reformatter les crochets signalant la présence d'un lien, en insérant un ^:

  :'<,'>s/\[\(\d\+\)\]/[^\1]/g

Puis on modifie les numéros des références de liens:

  :'<,'>s/^\s*\(\d\+\)\. /[^\1]: /

On rend ces URLs cliquables en les enfermant dans des <>:

  :'<,'>s/\(https*:\S*\)/<\1>/

À titre d'exemple, Longue vie au Web !, le texte de Tim Berners-Lee sur framablog, donne un dump de 2072 lignes. Une fois le superflu éliminé, il en reste 555, dont 40 liens en références. Les quelques manoeuvres pour y parvenir, y compris les 2 commandes précitées, prennent une demi-minute sans se presser.

Un seul regret, les crochets créés par Lynx dans le texte sont situés avant les liens, alors que le numéro de la note devrait évidemment être situé en fin de mot selon toutes les conventions typographiques. Un peu d'édition reste donc inévitable.

Avec Vim, je «mappe» la touche F3 pour sélectionner la prochaine séquence de caractères correspondant à [.*]:

  :map <F3> /\[\^<CR>v/\]<CR>

...Ce qui fonctionne remarquablement bien: à ce stade, on tape d pour la supprimer, et on avance dans le texte jusqu'à l'endroit approprié pour la ré-insérer.

http://www.k1ka.be/pics/lynx/macro_Vim.png

Il reste à mettre en forme les titres de section, le titre du document lui-même, et quelques bricoles. Le fichier texte est , et le PDF résultant est .

http://www.k1ka.be/pics/lynx/pdf.png

Comme les chemins de l'informatique libre ne sont pas jonchés de pétales de roses, j'ai quand même dû affronter une difficulté inattendue sous la forme des caractères accentués dans une URL, codés avec un % que LaTeX n'aimait pas. Curieusement, en les retranscrivant sous leur forme naturelle, ils ont été acceptés.

Bon, tout ça reste un truc de geek, et le texte en question est assez long (je l'ai choisi précisément pour ça et parce qu'il semble sous Creative Commons BY-SA) mais ça m'a déjà rendu bien service. Une impression de qualité à partir d'un traitement texte conventionnel demande un peu de travail également.

Un autre usage de Lynx est de l'utiliser dans un script CGI pour en faire un «proxy du pauvre», mais ça sera pour un autre article.