エスケープ不要でコードをHTMLに書く

コメント内にコードを書く

コードをエスケープせずにHTMLに書きたい。コードをコメント内に記述して、JavaScriptで変換してしまおうという方法。
コードはpre内のコメントに記述します。

コードにコメント終端タグは記述できないので2バイト文字でエスケープしてください。

var pre = document.querySelectorAll("pre");
for(var i = 0; i < pre.length; i++){
    var inner = pre[i].innerHTML;
    var posS = inner.indexOf("<!--");
    var posE = inner.lastIndexOf("-->");

    if(posS == -1 || posE == -1){ continue; }

    var before = inner.substring(0, posS);
    var sourse = inner.substring(posS+4, posE);
    var after  = inner.substring(posE+3);
    
    sourse = sourse.replace(/ーー>/g, "-->");
    sourse = sourse.replace(/&/g, "&amp;");
    sourse = sourse.replace(/</g, "&lt;");
    sourse = sourse.replace(/>/g, "&gt;");
    sourse = sourse.replace(/"/g, "&quot;");
    if(!before){ sourse = sourse.replace(/^\r?\n/, ""); }
    
    pre[i].innerHTML = before + sourse + after;
}