Réinventer ed semble être une perte de temps, jusqu'à ce que vous vous rendiez compte que ce programme fonctionne également comme un navigateur - un navigateur inclus dans ed. Vous pouvez éditer une URL aussi facilement qu'un fichier local, et activer le mode navigation pour afficher le HTML d'une façon appropriée pour un programme en ligne de commande. En d'autres termes, nous ignorons la majeure partie des informations de formatage, maintenons les liens et remplissons les formulaires. Ceci permet aux utilisateurs aveugles d'accéder à l'Internet par l'intermédiaire d'une application qui est entièrement compatible avec la nature linéaire de la parole ou du braille.
Si Edbrowse n'est pas fourni par votre distribution, il existe une version en Perl, avec des fonctionnalités moindres, que vous pouvez utiliser sur n'importe quel ordinateur : Linux, Unix, Mac, Windows, etc. Essayez Edbrowse.pl, et si vous l'appréciez, vous pourrez récupérer le package git et compiler les sources pour construire la version C complète.
Si vous êtes un utilisateur de Linux, et que votre distribution de fournisse pas Edbrowse, vous pouvez - bien sûr - utiliser la version Perl mentionnée ci-dessus, mais vous pouvez égalemnt utiliser la version complète en C, en évitant les tracas de la compilation. Des versions liées statiquement pour les architectures 32 bits et 64 bits sont maintenues sur la home page d'Edbrowse.
Cette documentation suppose que vous connaissez ed. En fait, elle aide si vous êtes à l'aise dans ed. Une expérience des navigateurs d'Internet et de la terminologie associée est également utile.
D'abord, quelques mots sur les jeux de caractères. L'anglais est facilement géré par un flot d'octets, une lettre par octet. En fait, chaque lettre tient sur 7 bits; le huitième bit, non utilisé, est mis à 0. Ce système est appelé ASCII et, comme vous pouvez le voir, il est spécifique à l'anglais.
Les langues indo-européens comportent plus de caractères, comme ñ (espagnol), è (français), et ö (allemand). Ceux-ci peuvent tenir sur un octet, en mettant le 8ème bit à 1, selon le standard iso8859-1. D'autres langues, comme le tchèque et le hongrois, se conforment au standard iso8859-2, qui assigne d'autres caractères aux octets supérieurs à 127. Et ensuite il y a l'iso8859-3, et ainsi de suite. Sélectionnez votre page de codes, et toutes les lettres de vore langue tiennent sur un octet.C'est le standard iso8859, rétro-compatible avec l'ASCII. En d'autres termes, z est 122 en ASCII et dans toutes les pages de codes iso8859-x, mais les codes plus élevés, au-dessus de 127, peuvent représenter des lettres différentes dans des langues différentes.
Ceci a fonctionné pendant longtemps, mais que se passe-t-il si vous désirez écrire un paragraphe en français et un autre en tchèque ? Vous pouvez passer de l'iso8859-1 à l'iso8859-2 au milieu du document, ou bien utiliser un nouveau standard qui représente toutes les lettres dans toutes les langues simultanément. Ce jeu de caractères, qui ne code plus les caractères sur un seul octet, est connu sous le terme utf8, lequel est devenu le nouveau standard dans l'industrie informatique. Les logiciels n'ont plus à sélectionner une page iso8859 et assigner des nombres aux lettres dans un synthétiseur vocal. Ainsi, dans votre ordinateur, ñ est représenté par deux octets, et non un seul. C'est transparent pour vous; vous voyez la même lettre sur l'écran, et vous entendez le même son (si votre lecteur d'écran envoie ces lettres à votre synthétiseur). Une façon simple de savoir sur quel système vous êtes est de faire "echo $LANG". Si la réponse contient la chaîne utf8, ou utf-8, en minuscules ou majuscules, votre console utilise utf8, et attend des séquences de 2 octets. Vos fichiers contiendront ces séquences, sans que vous en soyez (probablement) informé. Des systèmes plus anciens (pré utf-8) codent chaque caractère sur un seul octet, et utilisent une page de codes iso8859 pour les traduire.
Il y aurait beaucoup plus à dire sur les jeux de caractères : ceci est juste une brève introduction au sujet. Je n'ai pas besoin d'aller plus loin, parce que Edbrowse ne supporte actuellement que iso8859 ⇔ utf8 . Le chinois, par exemple, requiert des séquences de 3 ou 4 octets, intégrées dans unicode. Edbrowse, pour l'heure, ne peut gérer ce niveau de complexité.
Les sorties et messages d'erreur ont été "internationalisés", comme "chaîne recherchée non trouvée". Positionnez la variable d'environnement LANG pour interagir avec Edbrowse dans votre langue. Les langues acceptées sont listées ci-dessous. Si vous pouvez traduire Edbrowse dans d'autres langues, prière de me le faire savoir.
Anglais: LANG=en (c'est la langue par défaut)
Français: LANG=fr par Erwin Bliesenick avec la documentation
Portuguais brésilien: LANG=pt_br par Cleverson Casarin Uliana
Polonais: LANG=pl_pl par Wojciech Gac
Allemand: LANG=de par Sebastian Humenda
Italien: LANG=it par Enrico Mioso
Lorsqu'un message d'erreur est affiché, les lettres accentuées sont affichées sur un octet, c'est-à-dire en iso8859, à moins que la chaîne utf8 ou utf-8 soit présente dans $LANG, auquel cas les caractères non-ascii sont générés en utf8. LANG=fr_FR.UTF-8 est un réglage usuel en France. De même, le contenu d'un tampon, qu'il soit un fichier local ou un site internet, est affiché en séquences de 8 bits ou en séquences de 2 octets, conformément à $LANG. Gardez à l'esprit que utf8 est devenu le standard, et Edbrowse ne pourra plus afficher de texte ou des messages d'erreur en iso8859 dans quelque temps. En d'autres termes, iso8859 est obsolète.
Si Edbrowse lit un ancien fichier, c'est-à-dire qu'il le charge dans un tampon vide, et qu'il soit codé en iso8859, alors que votre ordinateur est configuré en UTF-8, ce fichier est alors converti à la volée, bien avant que vous vous en aperceviez. Ainsi, il aura l'air normal. Si j'ai tout fait correctement, vous ne verrez aucune différence. (Utilisez la commande iu pour désactiver cette fonctionnalité.)
Quand vous sauvegardez vos données dans le même fichier, c'est-à-dire si vous avez fait quelques ajouts ou modifications, je reconvertis le fichier dans son jeu de caractères original iso8859. Ainsi, vous pouvez renvoyer le fichier modifié à votre correspondant, et ce fichier sera dans son jeu de caractères, comme il l'escompte. Cependant, si vous sauvegardez vos données, ou une partie de vos données, sous un nouveau nom de fichier, il restera dans le jeu de caractères utilisé par votre ordinateur.
Ces conversions ne devraient jamais intervenir sur des fichiers zip, ou des exécutables, ou d'autres types de données binaires. Si vous voyez les mots "conversion en iso8859" ou "conversion en utf8", alors que le fichier n'est pas du texte internationalisé, il y a un problème. N'essayez pas de lancer l'exécutable converti; cela ne marchera pas.
Si votre environnement est en utf8, la fonction de recherche peut amener à quelques confusions. Considérons le mot espagnol niño (petit garçon). Si vous recherchez ni.o, vous ne trouverez pas la ligne contenant ce texte. Le point remplace un caractère, et devrait correspondre à ñ, mais cette lettre accentuée tient sur deux octets. Ironiquement, vous devrez chercher ni..o, et vous trouverez ce que vous cherchez. Nul besoin de dire que ceci est vraiment déroutant.
La recherche/remplacement est effectuée par la librairie pcre et, heureusement pour nous, la dernière version supporte l'utf8. En d'autres termes, je peux passer à pcre l'option qui lui dira de rechercher certaine séquence sur deux octets comme un caractère unique, et pcre se comportera comme attendu. La recherche de ni.o fonctionnera de nouveau. Pour désactiver temporairement l'utf8 dans la recherche/remplacement, utilisez la commande su8.
Quelques pages internet peuvent s'afficher en plusieurs langues. Par exemple, twitter.com a une version anglaise, une version française, et ainsi de suite. Il est possible de sélectionner la langue à l'appel d'une page. Edbrowse l'implémente via le mot-clé localizeweb dans son fichier de configuration. Par exemple, la ligne qui suit dans .ebrc indique que vous désirez la version française, si elle est disponible.
localizeweb = fr
Si non précisé, Edbrowse se réfère à la variable d'environnement $LANG, laquelle est positionnée sur pratiquement tous les systèmes. Ainsi vous n'aurez que rarement besoin de préciser localizeweb dans votre fichier de configuration. Si $LANG n'est pas défini, c'est de l'anglais par défaut. Edbrowse envoie toujours une désignation de langage aux serveurs web, parce que certains sites, comma amazon.con, ne fonctionnent pas correctement sans. If you do set localizeweb yourself, be sure to set it to language code hyphen territory code. Si vous définissez localizeweb, assurez-vous de définir avec le code de langue le code de région ou département (ex. FR-NAQ Fr Nouvelle-Aquitaine ou FR-33 Gironde)
Quitter le programme
q : quitte la session couranteEntrées
rl : utilise readline() en entrée (bascule)Affichage des lignes dans le tampon
p : affiche la ligne courante