Quel balise html pour boucles de template ?

WRInaute accro
Bonjour

En avant première de mon générateur de template, j'ai fait un traducteur de template en dom.

Le contenu de "html_id" est la traduction du template "template html".


La syntaxe de Mustache me pose problème.

Le boucles commencent par {{#xxxx}} et se terminent par {{/xxxx}}.

Mais le début de boucle précède la balise html ouvrante, alors que la fin de boucle suit la balise html fermante.

Pour produire le dom ( html ), j'aurais besoin de garder la fin de boucle.

Quelle balise html pourrait être auto fermante, de manière à lui accoler la boucle comme attribut ( ou text ) ?

Merci beaucoup.


HTML:
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="style_20240102_01.css" rel="stylesheet">
</head>
<body>

    <div id="html_id">
        <ul>
            <loop_in>{{#families}}</loop_in>
            <li class="class_li">{{surname}}</li>
            <ul>
            </ul>
            <loop_in>{{#members}}</loop_in>
            <li>{{given}}</li>
            <loop_out>{{/members}}</loop_out>
            <loop_out>{{/families}}</loop_out>
        </ul>
    </div>
    <!-- template html //-->
    <script type="template/text" id="id_template">
    <ul>
    {{#families}}
    <li class="class_li">{{surname}}
    <ul>
    {{#members}}
    <li>{{given}}</li>
    {{/members}}
    </ul>
    </li>
    {{/families}}
    </ul>
    </script>

<script src="gene_template.js">

</script>

</body>
 
WRInaute accro
Rebond.

La balise <meta> est une balise "à femeture automatique".

Je vais placer les {{#xxx}} et {{/xxx}} dans des balises meta.

Le dom résultant sera valide et fusionnable avec le json des data.

Dur, dur...
 
WRInaute accro
Problème résolu.

J'ai résolu la récursivité.

Passons à renderTemplate(json, data). ;)


HTML:
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="style_20240102_01.css" rel="stylesheet">
</head>
<body>

    <div id="html_id">
        <ul>
            <meta name="loop_in" content="{{#families}}">
            <li class="class_li">{{surname}}
                <ul>
                    <meta name="loop_in" content="{{#members}}">
                    <li>{{given}}</li>
                    <meta name="loop_out" content="{{/members}}">
                </ul>
            </li>
            <meta name="loop_out" content="{{/families}}">
        </ul>
    </div>
    <!-- template html //-->
    <script type="template/text" id="id_template">
    <ul>
    {{#families}}
    <li class="class_li">{{surname}}
    <ul>
    {{#members}}
    <li>{{given}}</li>
    {{/members}}
    </ul>
    </li>
    {{/families}}
    </ul>
    </script>

<script src="gene_template.js">

</script>

</body>
 
WRInaute accro
Bonjour

Je suis en train de programmer la fonction render( template, data), qui rapprochera les data des template pour produire la page html.

L'algorithme est pratiquement au point, mais j'aurais besoin ( sous Linux Fedora ) d'avoir un logiciel d'édition d'algorithmes.

Celà me faciliterait la mise au point de l'algorithme.

Ce serait super sympa si vous pouviez m'indiquer un éditeur d'algorithmes.

Merci beaucoup.
 
Discussions similaires
Haut