Journal Préprocesseur HTML statique

Posté par  .
Étiquettes : aucune
0
16
avr.
2004
Cher journal,

Je m'attèle depuis peu à créer et entretenir un petit site perso tout con :
- messages pour les copains,
- galerie de photos,
- conneries en tous genres...

J'aimerais trouver un outil pour maitenir ce site sans trop me casser la tête. En gros, j'ai juste besoin de pouvoir faire un include (pour les entêtes et pieds de pages), récrire des expressions régulières et faire des boucles (typiquement pour générer la galerie de photos).

Je souhaite générer tout ça de temps en temps et exporter le tout sur le site. Pas de PHP ni d'autre machin dynamique, donc — de toute façon, mon hébergeur ne m'en propose pas.

Pour l'instant je fais ça avec un Makefile et des scripts shell faits main, mais je me suis dit qu'il devait exister des outils « exprès pour » (idoines, en français) au moins pour remplacer les scripts. En navigant un peu, j'ai trouvé que m4 pouvait être mon ami.

Avant de faire le premier pas, j'aimerais bien avoir quelques retours d'expériences sur l'utilisation de m4 dans ce cadre, ou alors des suggestions pour d'autres outils.

Merci, cher journal, de me prêter ton oreille attentive et muette (comme beaucoup d'oreilles).
  • # Re: Préprocesseur HTML statique

    Posté par  (site Web personnel) . Évalué à 2.

    Je dirais que perl est ton ami :

    - adapté à la manipulation de texte
    - gère les expressions régulières et les boucles
    - tu pourras aisément faire du remplacement avec un petit script, en cherchant un peu sur le net, tu n'auras même pas à l'écrire

    J'ai déjà essayé cette méthode, et pour moi ça a marché nickel...
    My 2 cents...
  • # Re: Préprocesseur HTML statique

    Posté par  (site Web personnel) . Évalué à 1.

    Il y a un dossier sur le XML dans le Linux Magazine France 51. Ca explique comment générer des pages (X)HTML en utilisant du XML et des feuilles de styles (!= CSS). Evidemment j'ai pas le magazine sous la main mais si qqun d'autre l'a, il peut surement te filer plein de liens intéressants.

    pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

  • # Re: Préprocesseur HTML statique

    Posté par  . É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
    • [^] # Re: Préprocesseur HTML statique

      Posté par  . Évalué à 1.

      "clair" je sais pas, mais "complet" colle assez à ton pavé ;)
    • [^] # Re: Préprocesseur HTML statique

      Posté par  (site Web personnel) . Évalué à 1.

      Oui, c'est très bon le couple xml + xsl. C'est ce que j'utilise pour plusieurs sites.

      Dans le temps, j'avais un script perl qui appellait xalan pour chaque page et générait ainsi le site. C'est très rapide à mettre en place. C'est très souple aussi.
      http://xml.apache.org/xalan-c/index.html(...)

      J'ai fait un module apache qui fait la même chose, il y a un moment. Mais aujourd'hui, je ne m'héberge plus moi-même, donc j'ai fais un script qui appelle wget sur chaque page (et le module génère les pages).

      Le plus simple pour toi reste xalan en solo.
  • # Re: Préprocesseur HTML statique

    Posté par  (site Web personnel) . Évalué à 2.

    Ça ne t'intéresse surement pas, mais tu peux très bien utiliser php en local et mettre les pages html produites en ligne (un petit wget pour avoir le html par exemple, puis un petit ftp pour le mettre en ligne).
  • # Re: Préprocesseur HTML statique

    Posté par  . Évalué à 2.

    Il y a WML qui correspond exactement à ça ( http://www.thewml.org/(...) ). Tu crées un squelette, quelques inclusions et hop on compile le tout pour obtenir un site HTML statique. C'est ce qui est utilisé par Debian pour leur site.
  • # Re: Préprocesseur HTML statique

    Posté par  (site Web personnel) . Évalué à 2.

  • # Re: Préprocesseur HTML statique

    Posté par  . Évalué à 1.

    Effectivement, m4 marche très bien, j'ai fait mon site comme ça et j'ai décris la manière dont je l'avais fait. En esperant que ça t'inspirera:

    http://yusei.ragondux.com/informatique_documentation_automatiser_m4(...)
  • # Re: Préprocesseur HTML statique

    Posté par  . Évalué à 2.

    Bonjour tout le monde,

    "En navigant un peu, j'ai trouvé que m4 pouvait être mon ami."
    Il peut l'être effectivement
    Automatiser son site avec m4 et make
    http://yusei.ragondux.com/informatique_documentation_automatiser_m4(...)

    "Avant de faire le premier pas, j'aimerais bien avoir quelques retours d'expériences sur l'utilisation de m4 dans ce cadre..."
    yusei (http://linuxfr.org/~yusei/(...)) est l'auteur de cet article. Son site étant conçu à l'aide de cette moulinette, il pourra sans aucun doute te faire part de son expérience.

    N'étant pas informaticien, je ne sais pas si ce document correspondra exactement à tes attentes. En ce qui me concerne, je trouve son article très interéssant et profite de l'occasion pour l'en remercier.

    Fabrice.
  • # Re: Préprocesseur HTML statique

    Posté par  . Évalué à 2.

    [mode pub]
    Ma solution à ce problème :
    http://www.nongnu.org/achille/(...)

    Il s'agit d'un outil permettant à l'origine de traiter les documents Docbook pour construire un site. Il génère les index, transforme les XML en HTML, ... et progresse très lentement :)

    A l'origine fondé sur des scripts Bash Sed et Awk, le CVS contient maintenant une nouvelle version en Python, normalement utilisable, mais avec une documentation majoritairement périmée.
    [mode pub off]
  • # Re: Préprocesseur HTML statique

    Posté par  . Évalué à 1.

    Merci, cher journal, tu as répondu à mes attentes par des solutions diverses et variées mais toutes dignes d'intérêt.

    Il fait bon vivre dans le monde du libre, là où tout problème admet 42 solutions.

    Je ne sais pas encore vers laquelle je vais me tourner, mais je dispose maintenant des éléments nécessaires pour choisir.

    Et ma foi, puisque j'y suis, je crois que je vais tout essayer, juste pour voir.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.