|
|
|
@ -28,7 +28,17 @@ function onlinkin(e) {
|
|
|
|
function onlink(e) {
|
|
|
|
function onlink(e) {
|
|
|
|
let mdnotes = document.getElementById('mdnotes');
|
|
|
|
let mdnotes = document.getElementById('mdnotes');
|
|
|
|
if (mdnotes.contentEditable == 'false') {
|
|
|
|
if (mdnotes.contentEditable == 'false') {
|
|
|
|
|
|
|
|
e.preventDefault();
|
|
|
|
mdnotes.contentEditable = true;
|
|
|
|
mdnotes.contentEditable = true;
|
|
|
|
|
|
|
|
let link = e.currentTarget;
|
|
|
|
|
|
|
|
if (link.host !== document.location.host) {
|
|
|
|
|
|
|
|
open(link.href);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
open(link.href, '_self');
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -41,37 +51,54 @@ function onlinkout(e) {
|
|
|
|
|
|
|
|
|
|
|
|
function formatLine(line) {
|
|
|
|
function formatLine(line) {
|
|
|
|
let normLine = line.trimStart();
|
|
|
|
let normLine = line.trimStart();
|
|
|
|
let styleClass = null;
|
|
|
|
|
|
|
|
let token = null;
|
|
|
|
let token = null;
|
|
|
|
|
|
|
|
let elem = document.createElement('div');
|
|
|
|
if (normLine.match(/^####\s/i)) {
|
|
|
|
if (normLine.match(/^####\s/i)) {
|
|
|
|
token = /^(####\s)/i;
|
|
|
|
token = /^(####\s)/i;
|
|
|
|
styleClass = 'h4';
|
|
|
|
elem.classList.add('h4');
|
|
|
|
} else if (normLine.match(/^###\s/i)) {
|
|
|
|
} else if (normLine.match(/^###\s/i)) {
|
|
|
|
token = /^(###\s)/i;
|
|
|
|
token = /^(###\s)/i;
|
|
|
|
styleClass = 'h3';
|
|
|
|
elem.classList.add('h3');
|
|
|
|
} else if (normLine.match(/^##\s/)) {
|
|
|
|
} else if (normLine.match(/^##\s/)) {
|
|
|
|
token = /^(##\s)/i;
|
|
|
|
token = /^(##\s)/i;
|
|
|
|
styleClass = 'h2';
|
|
|
|
elem.classList.add('h2');
|
|
|
|
} else if (normLine.match(/^#\s/i)) {
|
|
|
|
} else if (normLine.match(/^#\s/i)) {
|
|
|
|
token = /^(#\s)/i;
|
|
|
|
token = /^(#\s)/i;
|
|
|
|
styleClass = 'h1';
|
|
|
|
elem.classList.add('h1');
|
|
|
|
} else if (normLine.match(/^>>>\s/i)) {
|
|
|
|
} else if (normLine.match(/^>\s*>\s*>\s/i)) {
|
|
|
|
token = /^(>>>\s)/i;
|
|
|
|
token = /^(>\s*>\s*>\s)/i;
|
|
|
|
styleClass = 'bq3';
|
|
|
|
elem.classList.add('bq3');
|
|
|
|
} else if (normLine.match(/^>>\s/i)) {
|
|
|
|
elem.classList.add('bq');
|
|
|
|
token = /^(>>\s)/i;
|
|
|
|
} else if (normLine.match(/^>\s*>\s/i)) {
|
|
|
|
styleClass = 'bq2';
|
|
|
|
token = /^(>\s*>\s)/i;
|
|
|
|
|
|
|
|
elem.classList.add('bq2');
|
|
|
|
|
|
|
|
elem.classList.add('bq');
|
|
|
|
} else if (normLine.match(/^>\s/i)) {
|
|
|
|
} else if (normLine.match(/^>\s/i)) {
|
|
|
|
token = /^(>\s)/i;
|
|
|
|
token = /^(>\s)/i;
|
|
|
|
styleClass = 'bq1';
|
|
|
|
elem.classList.add('bq1');
|
|
|
|
} else if (normLine.match(/^[*-]\s/i)) {
|
|
|
|
elem.classList.add('bq');
|
|
|
|
styleClass = 'ul';
|
|
|
|
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
styleClass = 'body';
|
|
|
|
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');
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
let elem = document.createElement('div');
|
|
|
|
|
|
|
|
elem.classList.add('mdnotes_line');
|
|
|
|
elem.classList.add('mdnotes_line');
|
|
|
|
elem.classList.add(styleClass);
|
|
|
|
|
|
|
|
normLine = addLink(normLine);
|
|
|
|
normLine = addLink(normLine);
|
|
|
|
normLine = addBold(normLine);
|
|
|
|
normLine = addBold(normLine);
|
|
|
|
normLine = addMono(normLine);
|
|
|
|
normLine = addMono(normLine);
|
|
|
|
@ -83,9 +110,6 @@ function formatLine(line) {
|
|
|
|
let links = elem.getElementsByClassName('link');
|
|
|
|
let links = elem.getElementsByClassName('link');
|
|
|
|
for (let i=0; i<links.length; i++) {
|
|
|
|
for (let i=0; i<links.length; i++) {
|
|
|
|
let link = links[i];
|
|
|
|
let link = links[i];
|
|
|
|
if (link.host !== document.location.host) {
|
|
|
|
|
|
|
|
link.target = '_blank';
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
link.addEventListener('mouseover', onlinkin);
|
|
|
|
link.addEventListener('mouseover', onlinkin);
|
|
|
|
link.addEventListener('click', onlink);
|
|
|
|
link.addEventListener('click', onlink);
|
|
|
|
link.addEventListener('mouseout', onlinkout);
|
|
|
|
link.addEventListener('mouseout', onlinkout);
|
|
|
|
|