Ag2txt - Transforme des fichiers AmigaGuide en un text imprimable, lisible, plat.
======

Fonction
========

Ag2Txt est un programme fictif. Il devient réalité sous la forme de "ag2txt13"
pour kickstart 1.3 (et peut être pour les versions anciennes aussi) et "ag2txt20"
pour kickstart 2.0 (et plus). Le but de ag2txt et de convertir les noeuds, liens et
textes éclairés de fichier hypertext AmigaGuide. Toutes les autres iformations sont
effacés.. Cà signifie que si le document hypertexte comprend plusieurs fichiers,
il faut tous les convertir.

Le texte convertis utilise les séquences escape Ansi pour les éclairements,
aini, n'importe quel afficheur de texte Amiga peut les afficher correctement.
De même, n'importe quelle correcte imprimante convertira ces séquences en codes
appropriés, comme ça vous pourrez envoyez directement via PRT: votre texte.

A première vue, ce programme peut sembler être une programme inutile. Je suis d'accord.
AmigaGuide et MultiView sont beaucoup mieux et l'hypertexte, c'est bien.
Mais il y a des moments où vous avez envie de lire juste le texte, et imprimer
un hypertexte proprement necessiterait une imprimante et du papier hors du commun!
En fait, j'ai traduit une version C de ce programme, comme çà je peut le lancer
sur une machine UNIX (dans un Xterm).


Ag2txt a été écrit en Amiga E (v2.1b), qui est un langage de programmation spécifique
Amiga en domaine public, basé essentiellement sur le C et avec quelques fonctions
utiles 'empruntées' d'autres langaes. Sa syntaxe se rapproche plus du Pascal et du
Modula-2. Il est brillant. Vous devez en avoir une copie. Cherchez le sur Aminet dans
dev/lang, et il y a même un dev/e avec un chargement de programmes et de texte. Cherchez
le aussi sur les disques Fred Fish 810 et 848. L'auteur, Wouter van Oortmerssen, est un
garsexceptionnellement sympa et n'hésitant pas à aider. Il y a aussi une mailing lit de l'Amiga E,
où lui et d'autres peuvent vous aider en cas de problêmes (envoyez un Email à
"amigae-request@bkhouse.cts.com" en demandant de souscrire (subscribe).


Utilisation
===========

Ag2txt13
--------
Ag2txt13 est une version pour KickStart 1.3 (et au dessus, bien sûr) d'Ag2txt. Il
devrait aussi marcher avec des kickstarts plus vieux, mais je n'ai aucun moyen
de le tester. Cette version n'est pas configurable comme Ag2Txt20, vous ne pouvez spécifier
que le fichier d'entrée, la sortie se faisant sur la console (mais on peut le rediriger,
bien sûr).

Comme vous le savez, les noeuds sont éclairés en vidéo inverse, les liens en italiques.
Ce n'est pas configurable à partir de la ligne de commande comme avec Ag2Txt20, mais
le source est relativement simple a modifier, si vous préférer autre chose.

Comme exemple, pour convertir "docs:reference.guide" en "ram:reference.txt":

  1> ag2txt13 >ram:reference.txt docs:reference.guide

Pour convertir "docs:reference.guide" et l'imprimer :

  1> ag2txt13 >prt: docs:reference.guide


Ag2txt20
--------
Ag2txt20 est la version pour KickStart 2.0 (et plus) d'Ag2txt, et il a une ligne de
commande standard. Cela permet à l'utilisateur de spécifier les fichiers d'entrée et
de sortie (avec par défaut la sorite sur la console), et de changer la façon dont
sont éclairés les noeuds et les liens. La ligne de commande est :

  FROM/A,TO,NODEFONT=NODE/K,LINKFONT=LINK/K

Cela signifie que le fichier source (FROM) doit être spécifié, et tous les autres sont optionnels.
Les mots clefs FROM et TO ne sont pas nécessaire, mais si vous les utilisez, vous pourrez mettre
les arguments dans n'importe quel ordre. Sinon l'argumen de FROM doit être devant l'argument de
TO (mais aussi devant NODEFONT=PLAIN), et cela peut se passer n'importe où dans la ligne. Un truc pour
NODEFONT et LINKFONT sont les raccourcis, respectivment,  NODE et LINK. Ainsi NODEFONT=PLAIN est
équivalent à NODE=PLAIN. Les valeur possible pour PLAIN sont :

  PLAIN   (caractères normaux)
  BOLD    (caractères gras)
  ITALIC  (caractères italiques)
  REVERSE (caractères en vidéo inverse)

Par défaut on a REVERSE pour NODEFONT et ITALIC pour LINKFONT.  Si vous voulez imprmer le document,
il vaudrait mieux ne pas utiliser REVERSE. Cela dépend de votre pilote d'imprimante.
.
Par exemple, convertir "docs:reference.guide" en "ram:reference.txt"
en utilisant la police par défaut :

  1> ag2txt20 from=docs:reference.guide to=ram:reference.txt

La même chose en utilisant le gras pour les noeuds :

  1> ag2txt20 to=ram:reference.txt nodefont=bold from=docs:reference.guide

Cette fois, on utilise le gras pour les liens et on redirige le tout vers un fichier :

  1> ag2txt20 >ram:reference.txt from=docs:reference.guide link=bold

Cette fois ci, on imprime le fichier convertis avec les noeuds en gras :

  1> ag2txt20 node=bold to=prt: from=docs:reference.guide


Bugs/Problêmes
==============

A ce moment, il bouffe pas mal de mémoire, car demandant 2 copie du fichier hypertext en mémoire.
J'ai fait celà parce que la version du filtre (lire un octet, écrire un octet) est *si* lent sur
mon Amiga.

De même, je pense que le fichier produit ne sera pas plus gros que le fichier source (ce qui est
relativement juste, sachant tout ce qui a été enlevé !). Une version filtre ne demanderait pas
une telle prévision.

C'est très facile de modifier le source, ainsi utiliser une police normale (PLAIN) pour les liens
et les noeuds signifie aucune sequences ESCape généré (utile si vous aez une imprimante un peu
vaseuse). Je ne sait pas pourquoi je n'ai pas fait çà, mais c'est un bon et simple exercice pour
le lecteur ! Prenez Amiga E. Apprenez l'Amiga E. Be Hap-E.


Implémentation
==============

Le source est fournit pour les 2 programmes. Vous avez besoin du compilateur Amiga E, ET il
est dans le domaine public, facilement accessible, brillant, alors ce n'est pas un problême,
non ? Bon, ag2txt a été implémenté avec une petite machine, c'est peu, mais ça marche. Enfin,
il marche avec moi. Je le trouve utilise(pour lire Amiga Report!).


Des trucs légaux
================

Ce pogramme (même si il est petit) est CopyRight (c) 1993 Jason R. Hulance.
Sino, la license public GNU prévaut. Vous pouvez me contacter par email à "m88jrh@ecs.oxford.ac.uk".
