bonjour à tous, Premier post de l'année : bonne année à tous! Je suis en train de me faire un petit outils pour faire rapidement des présentations HTML. J'utilise m4 et le but est d'obtenir une syntaxe du genre : SLIDE( Technos utilisées, UL( sed, awk, `m4, avec qq problèmes' ))dnl Voilà donc ma tentative : 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' est vu comme 2 arguments au lieu d'un... (qq soit le nombre de quotes). Comment puis-je protéger mon texte ? Au passage, je suis preneur d'une FAQ ou autre documentation didactique sur m4. cordialement, mc
On jeu 05 janvier, Marc Chantreux wrote:
bonjour à tous,
Premier post de l'année : bonne année à tous!
Je suis en train de me faire un petit outils pour faire rapidement des présentations HTML. J'utilise m4 et le but est d'obtenir une syntaxe du genre :
Si je peux me permettre, tu es taré
SLIDE( Technos utilisées, UL( sed, awk, `m4, avec qq problèmes' ))dnl
Voilà donc ma tentative :
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 ?
est vu comme 2 arguments au lieu d'un... (qq soit le nombre de quotes). Comment puis-je protéger mon texte ? Au passage, je suis preneur d'une FAQ ou autre documentation didactique sur m4.
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) Pour ma part, je voulais faire ca en m4 (pour les non "libristes", c'est pour générer un profile jumpstart) mais au final j'ai trouvé ca super galère, d'une part pour la documentation, d'autre part, ce n'est pas très souple. Tu as regardé MGP sinon ? -- http://asyd.net/home/
Bruno Bonfils wrote:
Si je peux me permettre, tu es taré
tu peux ... tu peux aussi me dire pourquoi ! 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é!
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.
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 ...
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 :)
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.
Tu as regardé MGP sinon ?
mgptunning.free.fr ? ;) 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. mc
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.. )
Bruno Bonfils wrote:
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 ?
t'as mieux?
(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 :/)
ah ... tu vois !
Au final, j'ai une page HTML avec un titre un paragraphe et du code coloré! ah :)
enfin ... je voudrais ...
Alors euh, la raison, déjà, c'est que sans passer par la fonction slice, je n'arrive pas à coller $1 et $2
define(PDISK,c1t0d0)dnl define(`SLICE', `filesys 'PDISK`$1 $2 $3 $4')dnl SLICE(s0,2048,/) SLICE(s1,2048,swap) SLICE(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 ?)
auto{conf,make,header}, m4sh , ...
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
grmbl ... solaris :P
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.
- Bazooka contre mouche - Curiosité intellectuelle
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.. )
:let html_use_css='yes' ++
On jeu 05 janvier, Marc Chantreux wrote:
define(PDISK,c1t0d0)dnl define(`SLICE', `filesys 'PDISK`$1 $2 $3 $4')dnl SLICE(s0,2048,/) SLICE(s1,2048,swap) SLICE(s2,all ,overlap)
ben nous sommes bien d'accord, je dois passer par un define PDISK je peux pas faire une simple fonction SLICE
auto{conf,make,header}, m4sh , ...
ah oui, c'est vrai, m4sh j'ose pas demander ce que c'est
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.
- Bazooka contre mouche
moué, alors là... bazooka contre mouche en terme de surcharge je suis d'accord, en terme d'écriture je suis moins d'accord
- Curiosité intellectuelle
ah ca...
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.. )
:let html_use_css='yes'
ah oh merci -- Groupe d'utilisateur du système d'exploitation Solaris http://guses.solaris-fr.org/home/ info@solaris-fr.org
Bruno Bonfils wrote:
On jeu 05 janvier, Marc Chantreux wrote:
define(PDISK,c1t0d0)dnl define(`SLICE', `filesys 'PDISK`$1 $2 $3 $4')dnl SLICE(s0,2048,/) SLICE(s1,2048,swap) SLICE(s2,all ,overlap)
ben nous sommes bien d'accord, je dois passer par un define PDISK je peux pas faire une simple fonction SLICE
define(`SLICE2', `filesys c1t0d0$1 $2 $3 $4')dnl SLICE2(s2,all ,overlap) ?
auto{conf,make,header}, m4sh , ...
ah oui, c'est vrai, m4sh j'ose pas demander ce que c'est
c'est un processeur de script shells, je crois. ca permet de generer un script shell compatible avec ton OS.
- Bazooka contre mouche
moué, alors là... bazooka contre mouche en terme de surcharge je suis d'accord, en terme d'écriture je suis moins d'accord
c'est pe juste parcequ'on a pas l'habitude ... quand je relis mes premiers scripts perl, je me rend compte que j'ai usé mon clavier pour pas grand chose.
ah oh merci
np ... par contre, je n'ai tjrs pas de soluc. a mon pb. je me suis abonné a la liste m4.
On jeu 05 janvier, Marc Chantreux wrote:
je peux pas faire une simple fonction SLICE
define(`SLICE2', `filesys c1t0d0$1 $2 $3 $4')dnl SLICE2(s2,all ,overlap)
ah oui mais non tu triches la :) tu met le device en dur :P, bref c'est toi qu'on doit aider à la base :)
ah oh merci
np ... par contre, je n'ai tjrs pas de soluc. a mon pb. je me suis abonné a la liste m4.
tiens (moi) nous au courant tiens par hasard, tu es fort en vim toi je suis sur ? -- http://asyd.net/home/
Bruno Bonfils a écrit :
On jeu 05 janvier, Marc Chantreux wrote:
je peux pas faire une simple fonction SLICE
define(`SLICE2', `filesys c1t0d0$1 $2 $3 $4')dnl SLICE2(s2,all ,overlap)
ah oui mais non tu triches la :) tu met le device en dur :P, bref c'est toi qu'on doit aider à la base :)
ben non ... il me semblait répondre à : http://lists.asyd.net/pipermail/shell/2006-January/000103.html
/ ben nous sommes bien d'accord, je dois passer par un define PDISK />/ je peux pas faire une simple fonction SLICE
SLICE se suffit a lui-meme, slice passe par 2 fonctions intermédiaires. /
tiens (moi) nous au courant
ok
tiens par hasard, tu es fort en vim toi je suis sur ?
heuu ... tout est tjrs relatif mais je sens qu'une question suit ...
On 2006-01-05 16:54:38 +0100, Marc Chantreux wrote:
Bruno Bonfils wrote:
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 ?
Je suis d'accord.
t'as mieux?
Si c'est pour transformer ou générer du HTML (ou tout autre fichier XML): XSLT. -- Vincent Lefèvre <vincent@vinc17.org> - Web: <http://www.vinc17.org/> 100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/> Work: CR INRIA - computer arithmetic / SPACES project at LORIA
Vincent Lefevre a écrit :
Euh, parce que m4 c'est quand même super relou pour le peu que ca fais ?
Je suis d'accord.
once again : - c'est pedagogique et fun - ca devrait etre simple a utiliser une fois terminé - ca devrait etre tellement plus leger qu'en perl - je ne connais pas de processeur aussi puisant qui ne soit pas écrit dans un langage de script.
t'as mieux?
Si c'est pour transformer ou générer du HTML (ou tout autre fichier XML): XSLT.
non : - je ne veux pas d'une syntaxe boulourde a la xml pour l'entrée - mon résultat nécessite d'inclure des bouts d'html (avec plusieur racines dans le meme fichier, un parseur XML va raller). La facon la plus simple et rapide d'y arriver est d'ecrire un filtre Text::WikiFormat pour TT2, ce qui donnerait une syntaxe finale du genre; [% slide 'Mon beau slide' %] * point 1 * point 2 [% code lang='awk' titre='exemple 1' %] [% END %] [% END %] [% slide 'conclusion' %] * point 1 * point 2 [% END %] mais j'aimerais quand meme reussir a croire qu'on peut faire des choses bien avec m4. cordialement mc
le 05/01/2006, Vincent Lefevre nous écrivait :
Euh, parce que m4 c'est quand même super relou pour le peu que ca fais ?
Je suis d'accord.
bon ... j'avoue : c'est tout pourri m4! vous m'aviez prévenu mais rien ne vaut une volée pour bien comprendre ... coridialement, mc
On jeu 02 février, Marc Chantreux wrote:
le 05/01/2006, Vincent Lefevre nous écrivait :
Euh, parce que m4 c'est quand même super relou pour le peu que ca fais ?
Je suis d'accord.
bon ... j'avoue : c'est tout pourri m4!
/me sifflote
vous m'aviez prévenu mais rien ne vaut une volée pour bien comprendre ...
orties et gros sel :) Tu as fais comment du coup ? Perl ? -- http://asyd.net/home/
Bruno Bonfils wrote:
/me sifflote
:)
Tu as fais comment du coup ? Perl ?
Vim (je me suis fais pas mal de scripts pour l'édition xml/html au cours de ces dernières années) et S5. http://www.meyerweb.com/eric/tools/s5/ cordialement mc
participants (3)
-
Bruno Bonfils
-
Marc Chantreux
-
Vincent Lefevre