• [^] # Re: Jamstack ?

    Posté par (site web personnel) . En réponse au journal Générateur de site web statique. Évalué à 2. Dernière modification le 09 juillet 2019 à 13:43.

    Et imaginons qu'on veuille avoir un lien sur tous les titres ? Pourquoi devoir les faire à la main quand on pourrait les générer à la main ? Idem, si on avoir un bête index.
    (...) [code C++ de 280 lignes...] (...)

    Pour ma part j'insère le code suivant dans mes pages pour générer automatiquement la numérotation / table des matières

    <div id="toc">
    <script> // Génère le sommaire et la numérotation automatiquement à partir des balises h1...h9
    window.onload = function () {
     var toc = "";
     var level = 0;
     var levels = [];
     document.body.innerHTML = document.body.innerHTML.replace( /<h([\d])>([^<]+)<\/h([\d])>/gi,
     function (str, openLevel, titleText, closeLevel) {
     if (openLevel != closeLevel) { return str; }
     if (openLevel > level) {
     toc += (new Array(openLevel - level + 1)).join("<ul>");
     } else if (openLevel < level) {
     toc += (new Array(level - openLevel + 1)).join("</ul>");
     levels.splice(openLevel,9);
     }
     level = parseInt(openLevel);
     levels[level-1] = isNaN(levels[level-1]) ? 1 : levels[level-1]+1;
     var levelstr = levels.slice(0,level).join('.') + ') '
     var anchor = titleText.replace(/ /g, "_");
     toc += "<li><a href=\"#" + anchor + "\">" + levelstr + titleText + "</a></li>";
     return "<h" + openLevel + "><a name=\"" + anchor + "\">" + levelstr + titleText + "</a></h" + closeLevel + ">";
     }
     );
     if (level) { toc += (new Array(level + 1)).join("</ul>"); }
     document.getElementById("toc").innerHTML += toc;
    };
    </script>
    <br><p style="font-size: 300%;"><b>Sommaire</b></p><br>
    </div>