.link : l'arbre de navigation ou l'arborescence de l'information
l'arbre de navigation décrit la manière dont vous voulez que les visiteurs perçoivent la hiérarchie de votre site. Pour chaque page, vous pouvez définir un parent, une page précédente ou une page suivante. Pour obtenir une idée visuelle de ce qu'est un arbre de navigation, vous pouvez consulter la section correspondante.
Dans un fichier .link, vous décrivez l'organisation relative des fichiers présents dans le même répertoire que le fichier .link. ManyPage produit à partir de cette description des valeurs pour les objets de type 'BACK', 'UP' et 'NEXT'. Vous pouvez ainsi utiliser ces valeurs pour construire un menu de navigation, pour permettre aux utilisateurs de votre site de feuilleter les pages d'une page à la suivante ou vers la table des matières (UP).
Notez qu'un fichier .link ne s'applique qu'aux fichiers contenus dans le répertoire (et non les sous répertoire comme pour les autres fichiers) ou le fichier .link est placé. On verra que l'on peut être amené à pointer des fichiers en dehors de ce répertoire, mais il s'agit alors de préciser une relation. Ce fichier pointé ne sera pas lui même influencé : il n'y a pas d'effet de bord.
Dans un fichier .link, l'arbre (tel qu'il est représenté dans le chapitre sur la navigation) repose sur la gauche, le fichier parent (la page d'accueil) est à gauche et l'on descend dans les profondeurs du site web vers la droite. La relation de fraternité est placée verticalement (les premières page sur le dessus). La délimitation entre chaque niveau de la hiérarchie est constitué de la séquence "tabulation plus deux point (:)"
Voici un extrait de fichier link qui décrit une partie du modèle du chapitre sur la navigation, en imaginant que tous les fichiers concernés sont dans le même répertoire.
subject2.+ : page1.+ : page2.+ : page3.+ : page4.+
Nom des fichiers : .+ => .en.html ou .fr.html ou ..
Comme dans la définition des objets, quand l'on traite avec un site multilingue, on décrit une seule arborescence de fichiers en suffixant le nom de ces fichiers par .+ à la place de .en.html ou .fr.html. Suivant le fichier qu'il serra en train de traiter, ManyPage saura quel suffixe utiliser et rajouter.
Arbre de navigation / arborescence des répertoires
Il est possible d'avoir des fichiers ascendants ou descendants qui situés dans des répertoires différents. Il suffit alors de les nommer avec la nomenclature classique des chemins d'accès de type Unix ("../" pour remonter d'un répertoire et "nomDeRertoire/" pour descendre dans le répertoire NomDeRepertoire). Il faut se souvenir que puisque les fichiers .link ne présentent pas d'effet de bord, les liens ne seront pas modifiés pour ces fichier en dehors du répertoire de travail. Pour agir sur ces fichiers, il faut aussi éditer un fichier .link dans les répertoires qui les accueillent.
Imaginons que nous ayons un fichier "index" à la racine de notre site web (en réalité, il y a un fichier index.fr.html et un fichier index.en.html), ainsi qu'un répertoire "Chapter2". Par ailleurs, on trouve dans "Chapter2" les pages "page1", "page5" et "page51" ainsi que les sous répertoires "Sub1" et "Sub2". Enfin l'on trouve respectivement dans "Sub1" : "page2", "page3" et "page4", et dans "Sub2", simplement "page52".
Vous aurez deviné que dans cette exemple, les pages 1, 2, 3, 4, 5 sont des frères successifs d'un même niveau dont le sommaire est la page index et que 51 et 52 sont les deux fils de la page 5. Bien sur, ce n'est pas la meilleur manière de ranger ces fichiers, mais dans notre cas, c'est un bon cas d'école :-).
Voici comment nous pourrions décrire l'arborescence des répertoires et fichiers.
/ /index.fr.html /index.en..... /Chapter2/ /Chapter2/page1... /Chapter2/page5 /Chapter2/page51 /Chapter2/Sub1/ /Chapter2/Sub1/page2 /Chapter2/Sub1/page3 /Chapter2/Sub1/page4 /Chapter2/Sub2/ /Chapter2/Sub2/page52
Et voici trois fichiers .link qui pourraient décrire l'arbre de navigation
.link de Chapter2 :
../index.+ : page1.+ : Sub1/page2 : Sub1/page3 : Sub1/page4 : page5.+ : : page51.+ : : Sub2/page52.+
On peut aussi proposer et utiliser la version suivante, mieux construite, mais faisant appel à une option non encore expliquée. Les deux versions sont également valides.
page1.+ <UP>../index.+</UP> Sub1/page2 Sub1/page3 Sub1/page4 page5.+ : page51.+ : Sub2/page52.+
.link de Sub1 :
../page1.+ <UP>../../index.+</UP> page2.+ page3.+ page4.+ ../page5.+
.link de Sub2 :
../page51.+ <UP>../page5.+</UP> page52.+
Vous remarquerez dans ces exemples que tous les noms de fichiers sont toujours relatifs au répertoire dans lequel est définit le fichier .link. Voici par ailleurs quelques explications sur les tags optionnels utilisables dans ces fichiers .link.
<UP>
<UP> propose un parent pour le fichier sur la ligne duquel il s'applique, ainsi que pour l'ensemble des fichiers frères suivants. Avec ManyPage, un fils a uniquement un parent. C'est pourquoi tous les fichiers frères devraient avoir le même (c'est beaucoup plus simple que dans le modèle humain, n'est-ce pas ?). En fait, si vous avez bien suivit le principe jusque dans les derniers exemples, vous avez peut-être découvert que vous pouviez tricher avec des descriptions .link différentes dans différents répertoires, mais ce ne serait pas une bonne idée car cela ne ferai que troubler vous utilisateurs
<SEP>
Si nous continuons dans le mode "Si vous avez bien compris le concept", vous avez peut être noté que la ligne suivante n'est pas vraiment nécessaire dans le .link du répertoire Chapitre2 :
Sub1/page3
En fait, si nous omettons de rédiger le .link du répertoire Sub1, ManyPage ne saura rien de la place de page3 dans la hiérarchie, car il a déjà été dit plusieurs fois, un fichier .link n'a d'effet que sur les fichiers du répertoire dans lequel il se trouve. La ligne en question est juste présente pour éviter d'introduire des erreurs de compréhension comme "page4" est la page suivante "page2"... Pour éviter ce genre de situation, il est possible d'utiliser le tag de séparation : <SEP>. Ce rôle de ce tags est d'isoler différents groupes de fichiers frères au sein d'un même répertoire, et ceci, parfois avec des parents différents...
Ainsi le .link de Chapter2 pourrait s'écrire comme suit (ce concept est en particulier utile quand il y a toute une série de pages à la place de la seule page3).
page1.+ <UP>../index.+</UP> Sub1/page2 <SEP> Sub1/page4 <UP>../index.+</UP> page5.+ : page51.+ : Sub2/page52.+
<TWIN>
Vous pouvez avoir construit tout votre site avec l'hypothèse de la page 'index.fr.html' comme la page d'accueil par défaut et puis découvrir que votre hébergeur a préféré retenir 'home.html' ou encore vous n'avez pas envie de vous embêter à créer des page par défaut pour chacun de vos sou, sous, sous répertoires... Vous pouvez alors utiliser le tag <TWIN> qui fait une copie du fichier pointé vers un autre endroit et modifie tous les liens de la copie pour conserver leur validité.
Dans l'exemple suivant, j'ai supposé que toutes les précédentes page (de 1 à 51 en passant par index) ont été ramenées dans le répertoire racine. J'ai rajouté un fichier 'default' qui sera copié par ManyPage dans les répertoires "Sub1" et "Sub2" (eux aussi ramenés à la racine). Par ailleurs, il serra aussi demandé à ManyPage de copier index.fr.html vers le fichier home.html (Rem : si vous préférez copier index.en.html, alors il vous faut inverser l'ordre de déclaration des langues à l'intérieur du tag PM.LANGAGE).
index.+ <TWIN>home.html</TWIN> page1.+ page2.+ page3.+ page4.+ page5.+ : page51.+ : page52.+ <SEP> default.+ <UP>index.+</UP> <TWIN>Sub1/home.html</TWIN> <TWIN>Sub2/home.html</TWIN>