Bloggerのエディターの代わりにStackEditを使う続編

このエントリーをはてなブックマークに追加

前回の続き

前回はコードブロックに空行があるとタグ崩壊して非常につらいとこで終わったので今回はタグをescapeして回避したいと思います

function replaceCodeTagCallback(match, language, code) {
    return  `\`\`\`${language}\n${code}\`\`\``;
}
  
function escapeCodeTag(string) {
    if (typeof string !==  'string') {
        return string;
    }
    return string.replace(/<pre><code class="prism language-(.+?)">((.|\n)+?)<\/code><\/pre>/gm, replaceCodeTagCallback);
}

こちらを例のごとくcontentScript.jsのdecorateTextareaよりの行に挿入して

stackedit.openFile({
    name: location.hostname,
    content: {
        text: escapeCodeTag(el.value),
        properties: preset,
    },
});

stackedit.openFile内のtext: 以降を書き換えてください。

眠くてやっつけ感ありますが以上となります。 あと既知のバグとしてコードタグ内にタグがあるとStackEditのコード認識がバグるようです()