前回の続き
前回はコードブロックに空行があるとタグ崩壊して非常につらいとこで終わったので今回はタグを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のコード認識がバグるようです()