ウェブサイト検索

javascript - HTMLテキストをレンダリングするのではなく、DOM要素を作成するmarkdown-itの代替


私は現在、ウェブ拡張機能で翻訳可能なチュートリアルや変更履歴を表示するために markdown-it を使用しています。しかし、Mozilla には innerHTML の使用は安全ではないと警告する安全チェックがありました。そこで、HTML テキストをレンダリングするのではなく、DOM 要素を作成する JavaScript(できれば TypeScript)用のマークダウンライブラリがあるかどうか気になっています。

回答 #1

evalを使わずに動作する問題の回避策を見つけました:

// This was the old code:
container.innerHTML = md.render(value);

// This is the new code:
const domParser = new DOMParser();
const doc = domParser.parseFromString(md.render(value), 'text/html');
removeAllChildren(container);
for(let i=0; i<doc.body.childNodes.length; i++)
    container.appendChild(doc.body.childNodes[i]);