function load(textarea, div) { div.innerHTML = ''; let lines = textarea.value.split('\n'); for (let i = 0; i < lines.length; i++) { let line = lines[i]; let elem = formatLine(line); elem.id = 'mdnotes_' + i; div.append(elem); } } function save(textarea, div) { let lines = div.children; let text = ''; for (let i=0; i\s*>\s*>\s/i)) { token = /^(>\s*>\s*>\s)/i; elem.classList.add('bq3'); elem.classList.add('bq'); } else if (normLine.match(/^>\s*>\s/i)) { token = /^(>\s*>\s)/i; elem.classList.add('bq2'); elem.classList.add('bq'); } else if (normLine.match(/^>\s/i)) { token = /^(>\s)/i; elem.classList.add('bq1'); elem.classList.add('bq'); } else { elem.classList.add('body'); } if (elem.classList.contains('bq') || elem.classList.contains('body')) { if (normLine.match(/^((>\s*){0,3}\s)?([\*\-+]\s*){3}\s/i)) { token = /^((>\s*){0,3}([\*\-+]\s*){2})/i; elem.classList.add('ul3'); elem.classList.remove('body'); } else if (normLine.match(/^((>\s*){0,3}\s)?([\*\-+]\s*){2}\s/i)) { token = /^((>\s*){0,3}[\*\-+]\s*)/i; elem.classList.add('ul2'); elem.classList.remove('body'); } else if (normLine.match(/^((>\s*){0,3}\s)?[\*\-+]\s/i)) { token = /^((>\s*){1,3})/; if (token == '') { token = null; } elem.classList.add('ul1'); elem.classList.remove('body'); } else if (normLine.match(/^((>\s*){0,3}\s)?([0-9]+\.){3}\s/i)) { token = /^((>\s*){1,3})/; if (token == '') { token = null; } elem.classList.add('ul3'); elem.classList.remove('body'); } else if (normLine.match(/^((>\s*){0,3}\s)?([0-9]+\.){2}\s/i)) { token = /^((>\s*){1,3})/; if (token == '') { token = null; } elem.classList.add('ul2'); elem.classList.remove('body'); } else if (normLine.match(/^((>\s*){0,3}\s)?[0-9]+\.\s/i)) { token = /^((>\s*){1,3})/; if (token == '') { token = null; } elem.classList.add('ul1'); elem.classList.remove('body'); } } elem.classList.add('mdnotes_line'); normLine = addLink(normLine); normLine = addBold(normLine); normLine = addMono(normLine); if (token != null) { normLine = normLine.replace(token, '$1'); } elem.innerHTML = normLine; let links = elem.getElementsByClassName('link'); for (let i=0; i`$1`'); return line; } function addLink(line) { line = line.replace(/(\[(.*?)\]\((.*?)\))/ig, '[$2]($3)'); return line; } function addBold(line) { line = line.replace(/\*\*([^\s].*?)\*\*/ig, '**$1**'); line = line.replace(/__([^\s].*?)__/ig, '__$1__'); return line; } export { load, save, formatLine };