Forum Programmation.shell Insérer un contenu dans un modèle

Posté par  .
Étiquettes : aucune
0
3
avr.
2008
Après plusieurs tentatives infructueuses de ma part, je viens quémander votre aide sur un petit script pour un site statique.

Je voudrais automatiser l'inclusion du contenu (juste le corps du texte avec les balises qui vont bien) dans un modèle de page, et en gardant le modèle dans un seul fichier.

Au final, mon fichier source/divers/truc.txt devrait donner la page divers/truc.html. En gros, il y aurait dans le modèle un gros {CONTENU} à remplacer par le contenu effectif des fichiers. Et c'est là que je bloque. J'ai eu beau tripatouiller find et sed, je n'y suis pas arrivé... Un petit coup de pouce pour que je m'améliore ?
  • # txt2tags

    Posté par  . Évalué à 2.

    si tu parles d'un site statique, c'est donc que tu prévois de générer les pages automatiquement pour ce site statique.

    Je fais cela avec txt2tags, qui peut utiliser des macro et un préprocesseur pour générer les fichiers html, et inclure des fichiers extérieurs. Tu peux regarder des exemples ici :
    http://ifiction.free.fr/txt2tags/
    ou sur le site officiel : http://txt2tags.sourceforge.net/

    Par contre le truc c'est que pour notre site on a rajouté un peu de php, mais la plupart de ces pages php sont déjà générées par txt2tags pour avoir un code clair et facile à maintenir.

    Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

    • [^] # Re: txt2tags

      Posté par  . Évalué à 2.

      Je me suis déjà essayé à txt2tags ou autres, c'est la galère dès qu'on veut pousser l'HTML (les classes, les attributs, etc). Je préfère faire le truc le plus minimal possible, sans autre outils qu'un éditeur de texte et qu'un shell.
      • [^] # Re: txt2tags

        Posté par  . Évalué à 2.

        comme tu veux. Le mieux reste d'inclure via des macros des div que l'on habille avec du css. Et sinon txt2tags c'est juste un seul script en python, donc ça reste minimal à ce niveau.

        Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

  • # Site ou site

    Posté par  . Évalué à 3.

    Si ton site est un site web qui tourne sous Apache, il existe un module qui fait cela très bien, c'est mod_include http://httpd.apache.org/docs/2.2/mod/mod_include.html
    Il vient par défaut depuis des lustres, il est beaucoup plus léger que PHP et bien documenté.

    Si tu veux pré-générer les pages; cpp est le préprocesseur C, il est également facile a utiliser et très largement distribué sur de très nombreuses plateformes.
    • [^] # Re: Site ou site

      Posté par  . Évalué à 2.

      Comme je l'ai écrit dans le commentaire plus haut, je souhaite faire le truc le plus minimal et le plus générique possible, qui donne des pages HTML pur jus faciles à gérer, qu'on peut facilement faire servir par un mini-serveur http sur une vieille bécane ou de l'embarqué.

      Accessoirement c'est pour m'améliorer en shell ^^
      • [^] # Re: Site ou site

        Posté par  . Évalué à 3.

        ligne=$(grep -n '{CONTENU}' truc.html | cut -d ':' -f 1)
        renvoie le numéro de la ligne contenant la balise

        head -n $(($ligne - 1)) truc.html > partie1.html
        la première partie

        sed -ne '/{CONTENU}/,$ p' truc.html | tail -n +2 > partie2.html
        la deuxième partie

        les 3 cat pour reconstituer:

        cat partie1.html truc.txt partie2.html > truc.html


        sinon après y'a perl qui est plus à même de faire ça rapidement/facilement...
  • # Via macro M4 ?

    Posté par  . Évalué à 3.

Suivre le flux des commentaires

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