## Sauver et Publier des documents

Amaya permet de sauver 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 Sauver et Sauver comme.

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.

### Sauver des documents en (X)HTML

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

#### La commande sauver

La commande sauver peut être invoquée soit en choisissant Sauver 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 de sauver des images nouvellement ajoutées dans un autre endroit, la commande Sauver comme devra être utilisée à la place.

#### La commande Sauver comme

Le fait de sélectionner l'entrée Sauver comme dans le menu Fichier ouvre une boîte de dialogue qui vous permet de sauver le document courant à une adresse différente, un serveur Web ou un fichier local.

Vous pouvez :

- sauver le document sur un disque local,
- sauver le document sur une URI distante,
- sauver des images dans le répertoire du document ou à une adresse différente,
- transformer les URIs du document,

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

- Le champ Adresse du document 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.

- Le champ Répertoire des images vous permet de sauver des images (si Copier les Images a été sélectionné) à un autre endroit que le fichier HTML. Ce champ devrait contenir le nom d'un répertoire dans le système de fichier local ou une adresse sur le serveur.
  - en utilisant un chemin relatif, les images sont stockées à une adresse relative au répertoire du document. Par exemple, si l'adresse du document est "http://www.w3.org/pub/Welcome.html" et que l'adresse des images est "Images", une image "W3C.png" contenue dans le document est stockée à l'URI "http://www.w3.org/pub/Images/W3C.png" et le fichier HTML est modifiée le référant à :

    <IMG SRC="Images/W3C.png">

    C'est la même chose dans le cas d'une adresse dans le fichier système local.

  - en utilisant un chemin absolu, les images sont stockées à cette adresse exacte, indépendamment de l'adresse du document. Dans l'exemple précédent, si l'adresse des images spécifiée est "http://pub/Images", l'image est stockée à l'adresse "http://www.w3.org/pub/Images/W3C.png" et le fichier HTML correspondant est modifié de la manière suivante :

    <IMG SRC="Images/W3C.png">

- 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 choix Copier les Images indique que les images importées dans le document courant doivent être copiées avec le document à une nouvelle adresse. Il vaut mieux généralement garder ce bouton actif, autrement vous ne serez pas sûr que les images correspondantes seront trouvées en ouvrant le document ultérieurement. Cependant, le rendre inactif est utile quand vous avez changé uniquement le texte du document et que le document est stocké sur le même serveur. Quand les images seront copiées, Amaya mettra à jour automatiquement tous les attributs SRC pour pointer vers de nouvelles adresses d'images. Les nouvelles adresses seront des URIs relatifs.
- Le choix Transformer les URIs 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. Cependant, si vous avez plusieurs documents reliés aux URIs relatives et que vous avez l'intention de les déplacer vers une adresse lointaine, la désactivation de la conversion en URI est nécessaire afin d'éviter le référencement des adresses initiales.
- Le champ Charset permet de changer l'encodage du document. En activant ce bouton, un dialogue apparaîtra dans l'écran vous proposant une 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.
- Le champ Type MIME 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.

Ce dialogue se termine par quatre boutons :

- Le fait de cliquer sur Sauver débute le processus de transformation du document et un événement demande confirmation dans les deux cas suivants :
  1. Le document a été sauvé sur un serveur lointain. L'URI complet qui doit être écrit est visualisé pour vérification.
  2. Le document doit être sauvé localement et le fichier existe déjà.

  Notes :

  - Pour sauver à une adresse lointaine, 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.
  - Amaya ne contacte pas le serveur lointain (dans le cas d'une destination "http://..." destination) pour contrôler si un tel document existe déjà.
- En cliquant sur Butiner l'utilisateur peur choisir le répertoire et le fichier de sauvegarde :
- Le bouton RAZ annule le contenu des champs Adresse du document et Répertoire des images.
- Le bouton Annuler arrête la commande.

### Sauver 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 Sauver sauve le document avec cet encodage, tandis que la commande Sauver comme vous permet de choisir un autre encodage (champ Charset).

Quand un document est sauvé (commandes Sauver ou Sauver comme) 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 des documents en tant que textes

La commande Sauver comme 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.