Éditer le fichier `editions/[project]/fragments/accueil.frag.html` pour modifier la page d’accueil d’une édition.
Éditer le fichier <spanclass="dossier">[projet-]editions</span>/<spanclass="dossier">[edition]</span>/<spanclass="dossier">fragments</span>/<spanclass="fichier">accueil.frag.html</span> pour modifier la page d’accueil d’une édition.
## Menu
Le menu HTML est le résultat de la transformation du fichier **mon-edition/menu.xml** par la feuille XSL par défaut placée dans **{MAX-dir}/ui/menu.xsl**.
Une feuille de transformation placée dans **mon-edition/ui/xsl/menu.xsl** remplacera celle par défaut. 3 paramètres sont disponibles dans cette XSL :
Le menu HTML est le résultat de la transformation du fichier <spanclass="dossier">mon-edition</span>/<spanclass="fichier">menu.xml</span> par la feuille XSL par défaut placée dans <spanclass="dossier">[projet-]MaX</span>/<spanclass="dossier">ui</span>/<spanclass="dossier">xsl</span>/<spanclass="fichier">menu.xsl</span>.
Une feuille de transformation placée dans <spanclass="dossier">[projet-]editions</span>/<spanclass="dossier">[edition]</span>/<spanclass="dossier">ui</span>/<spanclass="dossier">xsl</span>/<spanclass="fichier">menu.xsl</span> peut remplacer celle par défaut.
Trois paramètres sont disponibles dans cette XSL :
**projectId* : identifiant du projet,
**baseURI* : baseURI du projet,
**selectedTarget* : entrée de menu courante (valeur d'un des attributs @target).
**selectedTarget* : entrée de menu courante (valeur d’un des attributs @target).
## Sommaires
@@ -28,7 +27,7 @@ Il est possible de :
#### Modification de la XQuery
Pour modifier la Xquery, il convient de :
1. Créer un fichier editions/[projectId]/xq/toc.xq,
1. Créer un fichier <spanclass="dossier">editions</span>/<spanclass="dossier">[edition]</span>/<spanclass="dossier">xq</span>/<spanclass="fichier">toc.xq</span>,
2. Y rédiger une requête Xquery prenant en compte 3 paramètres :
* $baseURI : valeur de la variable de configuration [baseURI](../config#la-variable-baseuri)
Afin d'être compatible avec la XSL de la table des matières de MaX (fichier MAX/ui/xsl/toc.xsl), cette XQuery doit générer
une balise`<ul/>` composée d'élements `<li/>` et `<ul/>`. Les items de liens devront renseigner ces liens dans l'attribut **data-href**.
Afin d'être compatible avec la XSL de la table des matières de MaX (fichier <spanclass="dossier">[projet-]MaX</span>/<spanclass="dossier">ui</span>/<spanclass="dossier">xsl</span>/<spanclass="dossier">[tei ou ead]</span>/<spanclass="fichier">toc.xsl</span>), cette XQuery doit générer
un élément`<ul/>` composé d’éléments `<li/>`(et `<ul/>` s’il y a besoin de listes impriquées). Les valeurs des liens devront être renseignées en valeur de l’attribut **data-href** de l’élément ``<li>``.
Exemple de listing (généré par la XQuery par défaut de MaX) compatible avec **MAX/ui/xsl/toc.xsl** :
Exemple de listing (généré par la XQuery par défaut de MaX) compatible avec <spanclass="dossier">[projet-]MaX</span>/<spanclass="dossier">ui</span>/<spanclass="dossier">xsl</span>/<spanclass="dossier">tei</span>/<spanclass="fichier">toc.xsl</span> :
```
<ul>
@@ -77,27 +76,29 @@ Exemple de listing (généré par la XQuery par défaut de MaX) compatible avec
#### Modification de la XSL
Créer un fichier **editions/[projectId]/ui/xsl/toc.xsl** afin de transformer le résultat de la XQuery
(XQuery par défaut ou surcharge **editions/[projectId]/xq/toc.xq** ) en HTML.
Pour modifier la XSL par défaut, il faut créer un fichier <spanclass="fichier">toc.xsl</span>.
<spanclass="dossier">[projet-]editions</span>/<spanclass="dossier">[edition]</span>/<spanclass="dossier">ui</span>/<spanclass="dossier">xsl</span>/<spanclass="dossier">[tei ou ead]</span>/<spanclass="fichier">toc.xsl</span>
Cette XSL permet detransformer le résultat de la XQuery par défaut ou celle qui la surcharge (<spanclass="dossier">[projet-]editions</span>/<spanclass="dossier">[edition]</span>/<spanclass="dossier">xq</span>/<spanclass="fichier">toc.xq</span>) en HTML.
En l'absence d'un tel fichier, MaX exécutera **MAX/ui/xsl/toc.xsl**.
En l’absence d'un tel fichier, MaX exécutera <spanclass="dossier">[projet-]MaX</span>/<spanclass="dossier">ui</span>/<spanclass="dossier">xsl</span>/<spanclass="dossier">[tei ou ead]</span>/<spanclass="fichier">toc.xsl</span>.
### Sommaire d'un document
Tout comme le sommaire d'une édition, il est possible de :
### Sommaire d’un document
* Modifier la XQuery afin de modifier les éléments sélectionnés pour le sommaire,
* Modifier la XSL transformant ces éléments au format HTML.
Tout comme le sommaire d’une édition, il est possible de :
* modifier la XQuery afin de modifier les éléments sélectionnés pour le sommaire,
* modifier la XSL transformant ces éléments au format HTML.
#### Modification de la XQuery
1. Créer un fichier editions/[projectId]/xq/document_toc.xq
1. Créer un fichier <spanclass="dossier">[projet-]editions</span>/<spanclass="dossier">[edition]</span>/<spanclass="dossier">xq</span>/<spanclass="fichier">document_toc.xq</span>
2. Y rédiger une requête Xquery prenant en compte 4 paramètres :
* $baseURI : valeur de la variable de configuration [baseURI](../config#la-variable-baseuri),
* $dbPath : valeur de la variable de configuration [dbPath](../config),
* $project : identifiant de l'édition,
* $project : identifiant de l’édition,
* $doc : nom du document courant pour lequel est construite la table des matières.
Afin d'être compatible avec la feuille de transformation XSL appliquée par défaut au résultat de cette XQuery, celle-ci doit :
* retourner le sommaire dans un élement tei `<ul/>`,
* construire des sous-éléments `<li/>` pour chaque entrée en spécifiant l'url des liens dans un attribut data-href,
* construire un sous-élement `<head/>` pour chaque `<li/>`, contenant le libellé de l'entrée.
* retourner le sommaire dans un élement `<ul/>`,
* construire des sous-éléments `<li/>` pour chaque entrée en spécifiant l’url des liens dans un attribut ``@data-href``,
* construire un sous-élement `<head/>` pour chaque `<li/>`, contenant le libellé de l’entrée.
#### Modification de la XSL
La XSL par défaut peut également surchargée :
Il faut alors créer un fichier <spanclass="fichier">document_toc.xsl</span>.
<spanclass="dossier">[projet-]editions</span>/<spanclass="dossier">[edition]</span>/<spanclass="dossier">ui</span>/<spanclass="dossier">xsl</span>/<spanclass="dossier">[tei ou ead]</span>/<spanclass="fichier">document_toc.xsl</span>
Créer un fichier **editions/[projectId]/ui/xsl/document_toc.xsl** afin de transformer le résultat de la XQuery
(XQuery par défaut ou surcharge **editions/[projectId]/xq/document_toc.xq** ) en HTML.
Cette XSL permet de transformer le résultat de la XQuery (XQuery par défaut ou surcharge présente dans <spanclass="dossier">editions/[projectId]/xq/document_toc.xq** ) en HTML.
Cette XSL reçoit en entrée :
* le titre du document courant dans une variable **$docTitle**,
Les pages statiques d’une édition sont écrites en XHTML et se placent dans le dossier ``[projet-]editions/[edition]/fragments``. Chaque fichier a pour extension `.frag.html`
Les pages statiques d’une édition sont écrites en XHTML et se placent dans le dossier <spanclass="dossier">[projet-]editions</span>/<spanclass="dossier">[edition]</span>/<spanclass="dossier">fragments</span>. Chaque fichier a pour extension `.frag.html`
<divclass="mermaid">
graph LR;
@@ -14,5 +14,5 @@ graph LR;
</div>
Si le contenu de l’élément `<target>` est `presentation.html` dans le fichier `menu.xml`, MaX va alors chercher dans le dossier `[projet-]editions/[mon-edition]/fragments` un fichier `presentation.frag.html` afin de l’afficher.
Si le contenu de l’élément `<target>` est `presentation.html` dans le fichier <spanclass="fichier">menu.xml</span>, MaX va alors chercher dans le dossier <spanclass="dossier">[projet-]editions</span>/<spanclass="dossier">[edition]</span>/<spanclass="dossier">fragments</span> un fichier <spanclass="fichier">presentation.frag.html</span> afin de l’afficher.
Voir d’autres exemples dans la section [[Menu]](../menu#menu).
* consultation « isolée », pour afficher le texte seul en dehors du site (c'est-à-dire sans menu, barre de navigation, etc., par exemple pour l'afficher dans une pop-up) : `http://[host]:[port]/[edition]/fragment_html/[id].html`.
L’ajout du paramètre `?wrap=true` offre une consultation dans une page HTML complète (avec appels aux css et js du site) :