bq et ul imbriqués

pull/1/head
Nicolas Sanchez 3 years ago
parent 3d73894397
commit 3cfb7cf6dc

@ -77,9 +77,21 @@ div#mdnotes div.bq3 {
border-left: .9rem solid #6688bb;
}
div#mdnotes div.ul {
padding-left: 1rem;
}
div#mdnotes div.ul1 { padding-left: 2.2rem; }
div#mdnotes div.ul1.bq1 { padding-left: 1.9rem; }
div#mdnotes div.ul1.bq2 { padding-left: 1.6rem; }
div#mdnotes div.ul1.bq3 { padding-left: 1.3rem; }
div#mdnotes div.ul2 { padding-left: 2.7rem; }
div#mdnotes div.ul2.bq1 { padding-left: 2.4rem; }
div#mdnotes div.ul2.bq2 { padding-left: 2.1rem; }
div#mdnotes div.ul2.bq3 { padding-left: 1.8rem; }
div#mdnotes div.ul3 { padding-left: 3.2rem; }
div#mdnotes div.ul3.bq1 { padding-left: 2.9rem; }
div#mdnotes div.ul3.bq2 { padding-left: 2.6rem; }
div#mdnotes div.ul3.bq3 { padding-left: 2.3rem; }
div#mdnotes div.mdnotes_line span.token {
font-weight: 1;

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

@ -33,9 +33,18 @@ function onedit(e) {
setStartPositionInLine(newline, position);
}
function onkeyup(e) {
if (e.key == 'Escape') {
e.preventDefault();
document.getElementById('mdnotes').blur();
return false;
}
}
function init() {
let mdnotesdiv = document.getElementById('mdnotes');
mdnotesdiv.addEventListener('input', onedit);
mdnotesdiv.addEventListener('keyup', onkeyup);
let saveButton = document.getElementById('saveButton');
saveButton.addEventListener('click', onsave);
loadButton.addEventListener('click', onload);

Loading…
Cancel
Save