• # Re: Préprocesseur HTML statique

    Posté par . En réponse au journal Préprocesseur HTML statique. Évalué à 2.

    J'ai utilisé un truc du genre pour le site de l'UFR STAPS de Dijon (regardez pas, il est tres vilain visuellement - faillait garder l'ancienne maquette - , mais il est propre interieurement)

    En fait, j'utlise une feuille de style XSLT et un ensemble de fichiers XML qui sont en fait des documents XHTML tout simples, ou presque, puisqu'ils contienent l'instruction [?xml-stylesheet ...] au début.

    La feuille de style se contente d'ajouter les entetes, menus, pied de pages là ou il faut, d'importer le head>title dans son title (comme ca elle le préfixe par le nom du site), inserer la feuille de style par défaut et ajouter en plus les autres balises qu'ils peuvent se trouver en plus dans le head. Enfin, elle recopie le contenu du [body] dans le [div id="contenu"].

    Ensuite, un script python d'un trentaine de lignes parcoure toute l'arborescence à la recherche des fichiers .xml, et génere les fichiers.html qui vont bien dans le meme repertoire que le fichiers xml, en utilisant la feuille de style précisée dans l'entete.

    L'avantage de cette méthode, c'est que tu peux avoir une prévisualisation de ce que donne ta page avec Mozilla, en appellant directement la page xml, et Moz se charge de la transfo XSLT pour toi. Enfin, tu mouline avec le script que lorsque tu veux exporter le bordel. Pour les url il faut dans cas ne pas donner l'extension du fichier dans les balises [a], et le Content-Negociation du serveur Apache doit te donner tout seul le .xml.

    L'inconvénient, c'est que si tu as des url relatives à mettre dans le fichier XSLT, elle seront relatives au fichier XML qui appelle la feuille de style, donc si c'est dans un sous repertoire, ca fout le bazar. J'ai utilsé du coup la balise [base] dans le [head] afin de contourner ça, mais j'aime pas trop. On pourrait passer en parametre de la feuille de style lors du moulinage Python le chemin pour retourner dans le repertoire parent à coup de "../../", mais le probleme c'est que via Mozilla, tu ne peux pas passer de parametres à la feuille de style, donc ça ne marcherai que pour l'export...

    L'amélioration à faire dans le script que j'avais fait, ca serai de faire un repertoire séparé pour la génération du site, avec recopie (ou liens symboliques) du contenu non xml vers la cible. En effet, la présence d'un fichier xml et html dans le meme repertoire fout la merde avec le ContentNegociation, et a tous les coups c'est le xml qui est donné au lieu du fichier html lors que tu demande le nom de fichier sans extension... hors on peut difficilement faire confiance au navigateur à l'heure actuelle pour les transfos XSLT.

    Enfin, y a des trucs tout fait pour Eclipse pour faire ce genre de choses avec une approche plus ou moins différente dans les détails, je pense à StyloPlume http://negrej.free.fr/styloplume/(...) ou encore XM http://www.ananas.org/xm/index.html(...) qui n'est pas mal non plus.

    Voila, je sais pas si j'ai été clair... j