On jeu 05 janvier, Marc Chantreux wrote:
Bruno Bonfils wrote:
Si je peux me permettre, tu es taré
tu peux ... tu peux aussi me dire pourquoi !
Euh, parce que m4 c'est quand même super relou pour le peu que ca fais ? (enfin c'est mon impression, je peux me tromper oui, tu dois pouvoir faire des choses supers puissantes en lisant la ... les sources de m4 et des outils sendmail :/)
Je cherche a utiliser la coloration syntaxique de vim pour mes topos, La macro suivante sera :
SLIDE(En pratique, PAR(maintenant, passons a la pratique) CODE( Mon exemple , perl , ` $a = 12; $b = \$a; print "$b : $$b\n" '))
Au final, j'ai une page HTML avec un titre un paragraphe et du code coloré!
ah :)
define(`LISTITEM', `ifelse($1,`',,`<li>$1</li> LISTITEM(shift($*))')')dnl define(UL,`<ul> LISTITEM($*)</ul>')
Le problème est que la chaine `m4, avec qq problèmes'
pourquoi shift ?
et bien ... J'affiche le premier element : `<li>$1</li>
et je le retire des elements a traiter : LISTITEM(shift($*))
C'est récursif, quoi ... si tu ne shift pas, la récursion ne peut finir.
ah oui au temps pour moi, j'avais oublié le "liste d'argument"
hmm voici comment je déclare ma fonction :
define(`slice', `$1'`$2')dnl define(`add_slice', add_slice_sub(`primary_disk', $*))dnl define(`add_slice_sub', `filesys 'slice(`$1', $2) $3 $4)
Et mon appel :
define(`primary_disk', `c1t0d0') add_slice(s0,2048,/) add_slice(s1,2048,swap) add_slice(s2,all ,overlap)
Bon ... je suis en train d'essayer de comprendre pourquoi tu fais aussi long alors que j'ai l'impression que tout pourrait etre écrit dans add_slice ...
Alors euh, la raison, déjà, c'est que sans passer par la fonction slice, je n'arrive pas à coller $1 et $2 par exemple : define(`add_slice', `filesys '`primary_disk'`$1'`$2' $3 $4)dnl me donne : filesys primary_disks02048 / alors que define(`add_slice', `filesys '(`primary_disk')$1 `$2' $3 $4)dnl me donne bien filesys (c1t0d0)s2 all overlap mais je veux pas les () et je n'ai pas reussi sans passer par une sub fonction, enfin bon, après 2 jours, je me suis dis que c'est peut être sympa m4, mais si c'est pour perdre pas mal de temps pour un truc qui est vraiment peu usité (quoi d'autre a part le sendmail.mc ?)
Pour ma part, je voulais faire ca en m4 (pour les non "libristes", c'est pour générer un profile jumpstart)
J'ai beau etre libriste, je ne sais pas ce qu'est un profil jumpstart :)
Ben justement, c'est parce que tu l'es :P
galère, d'une part pour la documentation, d'autre part, ce n'est pas très souple.
regarde du coté de TT2 : http://template-toolkit.org. j'utilise m4 aussi parceque je veux apprendre a utiliser la chose.
Ben euh j'allais justement te proposer quelque chose du genre, pourquoi tu fais pas du perl ? (enfin ton modeur de rendu), ton fichier source tu peux le faire de la meme forme qu'en m4 je pense.
Tu as regardé MGP sinon ?
Si tu parles de magicpoint, c'est pas bon : je dois faire ca en html pour conserver le syn on de vim dans le code.
Oué ok je vois, enfin le html généré par vim je trouve qu'il est vraiment pas terrible :/ (redefinition de la couleur a chaque utilisation, etc.. )