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/i)) { token = /^(>>>\s)/i; styleClass = 'bq3'; } else if (normLine.match(/>>\s/i)) { token = /^(>>\s)/i; styleClass = 'bq2'; } else if (normLine.match(/>\s/i)) { token = /^(>\s)/i; styleClass = 'bq1'; } else if (normLine.match(/^[*-]\s/i)) { styleClass = 'ul'; } else { styleClass = 'body'; } let elem = document.createElement('div'); elem.classList.add('mdnotes_line'); elem.classList.add(styleClass); normLine = addLink(normLine); normLine = addBold(normLine); normLine = addMono(normLine); if (token != null) { elem.classList.add('hastoken'); normLine = normLine.replace(token, '$1'); } elem.innerHTML = normLine; return elem; } function addMono(line) { line = line.replace(/`(.*?)`/ig, '`$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 };