## Enregistrer et Publier des documents

Amaya permet d'enregistrer les documents (X)HTML soit en format d'origine, soit en format texte. Les documents MathML et SVG sont sauvegardés dans leur format d'origine.

Les sauvegardes distantes et locales peuvent être accéder de deux façons, grâce aux commandes Enregistrer et Enregistrer sous.

Cette section décrit les commandes du menu de publication. Il existe un nombre d'options de configuration que vous pouvez changer par l'intermédiaire du menu de configuration.

Amaya ne fournit aucune vue d'ensemble de série de pages installées sur le serveur. Cependant il est possible d'enregistrer des fichiers d'un serveur comme des fichiers locaux grâce aux commandes Enregistrer et Enregistrer sous. Pendant ces opérations, Amaya tient compte des images présentes dans le document.

### La commande Enregistrer

La commande Enregistrer peut être invoquée soit en choisissant Enregistrer depuis le menu Fichier (`Ctrl s`) ou bien en cliquant sur le bouton . Cette commande sauve le document courant à son adresse d'origine. Si la réponse du serveur inclut l'en-tête HTTP `Content-Location`, la cible de la sauvegarde sera l'URL précisée par cet en-tête. Ceci est utile pour enlever les ambiguïtés induites par la négociation du contenu. Soient par exemple "report.html.fr" et "report.html.en" deux versions d'un même document, une écrite en français, l'autre en anglais. On utilisera l'URL virtuelle report.html pour référencer ce document. En fonction de la configuration du client, le serveur retournera soit l'un ou l'autre document lors de la consultation de l'URL report.html. Si le serveur supporte l'en-tête `Content-Location`, il indiquera dans celle-ci l'URL du document qu'il a actuellement servi, par exemple, report.html.fr. Dans ce cas, la sauvegarde du document sera faite vers cette URL en préférence de l'URL virtuel report.html.

Les images nouvellement ajoutées sont sauvées dans le même répertoire que celui du document et aucune confirmation n'est demandée, excepté si le nom du document est inconnu. Les serveurs permettent aux utilisateurs d'importer un document quand seul le nom du serveur ou le répertoire du serveur est donné. Cela est très utile au moment de la navigation, mais n'est pas supporté par la méthode "PUT". Dans ce cas, Amaya détecte que le nom du document manque et propose d'utiliser un nom par défaut pour répondre à la demande. Notez que l'utilisation de l'en-tête`Content-Location` permet de s'affranchir de ce problème.

Si quelqu'un a besoin d'enregistrer des images nouvellement ajoutées dans un autre endroit, la commande Enregistrer sous devra être utilisée à la place.

### La commande Enregistrer sous

Le fait de sélectionner l'entrée Enregistrer sous dans le menu Fichier ouvre une boîte de dialogue qui vous permet d'enregistrer le document courant en changeant le format et à une adresse différente.

Vous pouvez :

- enregistrer le document seulement ou avec ses ressources (images, objets, style, scripts) sur un disque local ou un serveur distant;
- les images et les objets inclus peuvent être sauvés dans le répertoire du document ou à une adresse différente;
- le style (y compris les feuilles de style et les images importées) et les scripts inclus peuvent être sauvés dans le répertoire du document ou à une adresse différente;
- toutes les URIs du document peuvent être mis à jour.

Les choix proposés dans la boîte de dialogue sont les suivants :

- Le champ Où enregistrer indique l'adresse où le document doit être sauvé. Ce peut être un fichier dans le système du fichier local (par exemple "/pub/html/welcome.html") ou le nom d'un URI distante (par exemple "http://www.w3.org/pub/Welcome.html").

  Notez que vous devrez donner le chemin complet comme si il n'y avait aucun moyen de deviner le nom de "http://www.w3.org/pub". Vous devrez également vous assurer que vous avez le droit d'exécuter une méthode PUT dans le cas d'une URI. Regardez la page configurez votre serveur pour permettre la méthode PUT ou demander à votre administrateur Web.

- Les indicateurs Transformer les URLs, Copier les Images et Copier les ressources (styles et scripts)
  - Le choix Transformer les URLs transforme toutes les URIs courantes en URIs relatives quand c'est possible. Bien sûr, si le document est sauvé dans un fichier local et si les URIs pointent sur des fichiers lointains, les URIs resteront absolues. Ceci assure que tous les liens dans le document restent corrects après la copie.

    Si vous sauvez le document localement pour le publier par ftp parce que votre fournisseur d'accès ou Webmaster ne vous permet pas d'utiliser la méthode PUT, vous devez désactiver cette option pour ne pas altérer les liens calculés quand le document était sur le serveur http.

  - Le choix Copier les Images indique que les images et objets inclus dans le document doivent être copiés avec le document à une nouvelle adresse. Vous devez garder ce bouton actif, quand vous voulez engendrer une copie complète du document.

    Quand les images et les objets sont copiés, Amaya met à jour automatiquement tous les attributs src et data pour pointer vers les nouvelles adresses. Les nouvelles adresses seront des URIs relatifs.

  - Le choix Copier les ressources (styles et scripts) indique que les styles (y compris les feuilles de style et les images importées) et les scripts inclus dans le document doivent être copiés avec le document à une nouvelle adresse. Vous devez garder ce bouton actif, quand vous voulez engendrer une copie complète du document.

    Quand ces ressources sont copiées, Amaya met à jour automatiquement tous les liens et processing instructions pour pointer vers les nouvelles adresses. Les nouvelles adresses seront des URIs relatifs.

- Le Format de document propose le choix entre HTML, XML (XHTML) et Texte pour les documents HTML. Ce sous-menu n'est pas proposé quand on sauve un document SVG, MathML, CSS ou tout autre type. Par défaut Amaya conserve le format d'origine du document.

  Le format Texte (voir plus bas) supprime les balises HTML et les remplace par des espaces, sauts de lignes, etc.

- Le champ Charset permet de choisir l'encodage du document parmi la liste des encodages disponibles. Notez que cette option n'est valable que pour les documents supportant la notion d'encodage, tels que les fichiers HTML ou XML. Cette option est valable pour la sauvegarde locale et distante d'un document.

  Très souvent le charset des documents Web est contrôlé par le serveur. Il dépend soit du suffixe du document (html, xml, xhtml, svg, mml), soit des instructions données dans le fichier `.htaccess`.

- Le champ MIME Type permet de changer le type MIME d'un document lors d'une sauvegarde sur un serveur distant. En activant ce bouton, un dialogue apparaîtra vous proposant un certain nombre de types MIME. Vous pourrez également saisir un type MIME diffèrent de ceux qui sont proposés.

- Le champ Où enregistrer les images vous permet de donner le répertoire où les images et les objets doivent être sauvés. Quand Copier les Images est sélectionné, ce champ est initialisé avec le nom du répertoire du document sauvé.
- Le champ Où enregistrer les ressources vous permet de donner le répertoire où les styles et scripts doivent être sauvés. Quand Copier les ressources (styles et scripts) est sélectionné, ce champ est initialisé avec le nom du répertoire du document sauvé.

Ce dialogue inclut trois boutons :

- Le fait de cliquer sur Enregistrer débute le processus de transformation du document et un événement demande confirmation dans les deux cas suivants :

  Pour enregistrer à distance, vérifiez que le proxy http n'est pas mis, ou que le serveur proxy et le serveur cible sont configurés pour travailler avec la méthode PUT.

- Le bouton RAZ annule le contenu des champs "Où enregistrer ...".
- Le bouton Annuler arrête la commande.

### Enregistrer et encodage de caractères (charset)

Trois encodages standard sont considérés :

- `us-ascii` est un code 7-bit qui représente les 96 caractères imprimables (positions 32 à 127 en décimal).
- `iso-8859-1` est un code 8-bit qui représente les mêmes caractères `us-ascii`, aux mêmes positions, plus 95 autres caractères imprimables.
- `utf-8` est un encodage de longueur variable pour un jeu de caractères universel (Universal Character Set - UCS ou ISO10646). UCS représente des milliers de caractères. A noter que les 96 premiers caractères ont la même position dans UCS que dans `us-ascii` (et aussi dans `iso-8859-1`).

Si un document XML ou HTML contient un caractère non disponible dans le jeu de caractères (charset) fourni avec l'encodage, une représentation est nécessaire. XML offre deux telles représentations des caractères :

1. Une référence caractère représente la position (en décimal ou hexadécimal) du caractère dans UCS. Par exemple, la lettre grecque alpha est représentée comme `&#x3b1;` (hexadécimal) ou `&#945;` (décimal)
2. Une référence entité utilise un nom pour représenter un contenu (dans ce cas un caractère). Par exemple la lettre grecque alpha peut être représentée comme `&alpha;`

Les références caractère peuvent être utilisées dans n'importe quel document XML ou HTML, mais les références entité sont autorisées seulement dans un document si lui-même contient un moyen de résoudre ces références.

La résolution des références entité est fournie par la définition du type qui se réfère à une DTD où les noms et les contenus associés sont définis. Pratiquement. cela signifie que vous pouvez utiliser des références entité seulement si `le <!DOCTYPE ...>` est présent et référence une DTD qui définit les noms utilisés.

Avec ceci en tête, il est plus facile de comprendre comment Amaya travaille. Par défaut, Amaya préserve l'encodage initial du document, c'est l'encodage associé au document au chargement. Vous pouvez vérifier cet encodage avec la commande Fichier/Informations sur le document (champ Code de caractère). La commande Enregistrer sauve le document avec cet encodage, tandis que la commande Enregistrer sous vous permet de choisir un autre encodage (champ Charset).

Quand un document est sauvé (commandes Sauver ou Enregistrer sous) tous les caractères qui sont disponibles dans le jeu de caractères de l'encodage sont juste écrits en utilisant cet encodage. Seulement les autres caractères sont écrits en utilisant les références caractère ou entité. Le choix entre ces deux options est fait en accord avec le `doctype`. S'il y a un `doctype` qui référence une DTD qui définit un nom pour le caractère, une référence entité est utilisée (i.e. un nom), sinon Amaya engendre une référence caractère en hexadécimal.

Note : la commande Fichier/Changer le type du document vous permet d'associer, de changer ou retirer le `doctype` à tout moment. Ceci vous permet d'engendrer soit des références caractère soit des références entité.

### Sauver le texte du documents

La commande Enregistrer sous du menu Fichier visualise une boîte de dialogue permettant de sauver le document courant dans des formats différents. Le bouton Texte du menu Format de document sauve le document sous forme de texte, dans un fichier local. Les balises HTML sont remplacées par des espaces, sauts de lignes, etc. La liste de toutes les URIs utilisées dans le document est listée dans ce fichier.