javascript - אלטרנטיבה ל-markdown-it שיוצרת אלמנטים של DOM במקום להציג טקסט HTML


אני כרגע משתמש ב-markdown-it עבור הרחבות הרשת שלי להצגת מדריכים ושינויים שניתן לתרגם. אבל למוזילה יש בדיקות בטיחות שאומרות לי שהשימוש ב-innerHTML אינו בטוח. אז אני תוהה אם קיימת ספריית markdown ב-JavaScript (רצוי TypeScript) שיוצרת אלמנטים של DOM במקום להציג טקסט HTML?

תשובה #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]);