mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-01-28 07:03:17 +08:00
47 lines
1.2 KiB
JavaScript
47 lines
1.2 KiB
JavaScript
function decodeHTMLEntities (str) {
|
|
if(str && typeof str === 'string') {
|
|
// strip script/html tags
|
|
var element = document.querySelector('.editor');
|
|
|
|
str = str.replace(/<script[^>]*>([\S\s]*?)<\/script>/gmi, '');
|
|
str = str.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gmi, '');
|
|
element.innerHTML = str;
|
|
str = element.textContent;
|
|
element.textContent = '';
|
|
}
|
|
|
|
return str;
|
|
}
|
|
|
|
var mermaidEditor = {
|
|
$ : document.querySelector,
|
|
textField : '',
|
|
submit : '',
|
|
graph : '',
|
|
|
|
init: function () {
|
|
|
|
document.querySelector('.button').addEventListener('click', function () {
|
|
mermaidEditor.update();
|
|
}.bind(this));
|
|
},
|
|
|
|
update: function () {
|
|
var txt = document.querySelector('.editor').value;
|
|
txt = txt.replace(/>/g,'>');
|
|
txt = txt.replace(/</g,'<');
|
|
txt = decodeHTMLEntities(txt).trim();
|
|
|
|
document.querySelector('.mermaid').innerHTML = txt;
|
|
global.mermaid.init();
|
|
document.querySelector('.editor').value = txt;
|
|
}
|
|
};
|
|
|
|
document.addEventListener('DOMContentLoaded', function () {
|
|
|
|
mermaidEditor.init();
|
|
|
|
}, false);
|
|
|
|
exports = mermaidEditor; |