Eh beh ça déchaîne les foules ^^
Bon, j'ai progressé un peu depuis, donc des fois que ça intéresserait du monde (auquel cas vous avez le droit de le dire, hein !), un petit changelog depuis la dernière fois.
– J'ai ajouté la décompression à la volée, les formats .gz, .bz2 et .xz sont gérés (pour peu que vous ayez l'utilitaire adéquat dans $PATH). J'ai aussi ajouté le support de la lecture par le réseau (http(s) ou ftp, c'est de base en Python donc ça se faisait tout simplement). J'ai aussi ajouté un fichier de conf' pour régler certaines couleurs, et pas mal d'autres modifs internes pour rendre le truc plus facilement évolutif.
– En fait, en relisant la doc', j'ai trouvé moyen d'afficher les images de façon encore plus chouette. Du coup, le quadrillage de fond tel que montré ci-dessus disparaît pour la transparence, mais on gagne pas mal en qualité (ainsi qu'en rapidité d'affichage, d'ailleurs, curieusement). Un bon train valant mieux que de longs discours, voici une image d'origine de l'Orient Express, et voici comment elle s'affiche chez moi, dans un simple xterm (en plein écran mais à résolution raisonnable) :
Pas mal, non ?
(Bon, évidemment, dans un TTY qui n'a pas autant de couleurs, c'est un poil moins beau, forcément. Mais je suis curieux de voir ce que ça rend dans les terminaux que vous utilisez, donc n'hésitez pas à poster des captures si vous voulez)
– J'ai aussi ajouté une option pour sélectionner le pager utilisé. Avec --pager=none (par défaut si vous pipez la sortie vers autre chose), ça affiche simplement tous les fichiers que vous demandez, les uns à la suite des autres. Avec --pager=wait (par défaut si vous ne redirigez pas la sortie), ça affiche les fichiers les uns à la suite des autres, mais ça vous demande de saisir une confirmation pour passer au suivant. Avec --pager=less, chaque fichier est affiché comme si vous l'aviez pipé vers less (en gardant les couleurs et le formatage), mais on a donc bien un less indépendant par fichier et pas un seul less avec tout.
J'aimerais bien rajouter une option --pager=auto, qui afficherait le début du fichier sur la sortie standard, puis, si ça commence à dépasser la taille du terminal, abandonne et passe dans less (ou un équivalent). Techniquement, je vois comment faire. Ce qui m'ennuie, c'est que les deux façons de faire n'auraient pas le même comportement (mon wait qu'on tape entrée, en ayant ou pas spécifié Y ou N, less attend qu'on tape Q pour quitter), et je ne suis pas sûr que changer de façon de manier le truc en cours de route soit bien, donc il faudrait voir pour un less-like un peu plus proche du comportement standard, si ça existe.
– Et puis, faute d'avoir trouvé un navigateur en mode texte fonctionnant comme je veux (cf message précédent), j'ai fini par recoder moi-même un truc qui me sort un résultat à peu près potable. Encore une fois, très expérimental, je suis preneur de tout retour (mais ça reste très personnalisable, il y a d'ailleurs un fichier CSS à modifier pour le rendu des balises).
Notez d'ailleurs que vous avez plusieurs choix, à ce niveau-là : de base, ça vous affiche le texte de la page avec des petits numéros derrière les liens, puis, dans une deuxième étape (et donc un deuxième less si vous avez spécifié l'option concernée), ça vous affiche la liste, numérotée, des liens, pour que vous puissiez retrouver l'adresse que vous aviez repéré en première lecture. Mais vous pouvez aussi demander à afficher le fichier en ajoutant à son chemin d'accès le suffixe « [full] », et dans ce cas, en plus de la CSS par défaut, ça essayera d'aller charger le style précisé dans le fichier, donc avec les couleurs de fond/d'arrière plan et autres instructions plus ou moins étrange. Ce rendu-là n'est pas par défaut, parce que c'est généralement plus bizarre en terminal ^^
Le coup d'ajouter un suffixe est d'ailleurs pris en compte pour tous types de fichier : demandez « [raw] » pour avoir le fichier brut (donc pour du HTML ou du SVG, le code XML de base, sans le transformer en texte ou en image. Une coloration syntaxique sera ajoutée un jour…) ou « [metadata] » pour afficher les méta-données sur le fichier. On peut aussi demander plusieurs choses successivement, par exemple « [full:links] » pour afficher une page HTML avec tout son style, puis sa liste de liens.
Au fait, vu que je n'ai toujours pas eu le courage d'écrire un readme digne de ce nom dans le git, quelques infos supplémentaires sur les dépendances, ça manquait : c'est codé en Python 3, et le truc utilise magic pour repérer de quel type de fichier il s'agit. C'est normalement la seule dépendance totalement requise : pour toutes les autres, si vous ne les avez pas, le script général devrait fonctionner, mais le support des fichiers ayant besoin de la dépendance manquante sera désactivé. Et donc, les dépendances optionnelles sont : PIL pour lire les images, d'une façon générale, plus cairosvg pour lire spécifiquement les SVG ; bs4 (aka BeautifulSoup, version 4) et cssutils pour lire les fichiers HTML ; XLib pour la gestion des presses-papiers. En l'état, je crois que c'est tout, râlez si j'ai oublié quelque chose.
Pour installer les dépendances manquantes, ç'facile, on est sous Debian, donc « apt install python3-x » pour chaque bibliothèque X, vous savez ^^
Dernière modification par Elzen (12-12-2019 19:39:04)