Mercurial > hgrepos > hgweb.cgi > s4
changeset 847:a9e147e355fd
Do not file helper when no pattern matches
author | HIROSE Yuuji <yuuji@gentei.org> |
---|---|
date | Fri, 26 Jun 2020 22:28:59 +0900 |
parents | 9c4e16c173db |
children | 770f2eed24a1 |
files | s4-main.js |
diffstat | 1 files changed, 22 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/s4-main.js Fri Jun 26 19:55:14 2020 +0900 +++ b/s4-main.js Fri Jun 26 22:28:59 2020 +0900 @@ -75,27 +75,39 @@ function helpMarkdown(e) { //alert(e.keyCode); if (e.keyCode == 13) { - e.preventDefault(); var area = e.target; var pos = area.selectionStart, text = area.value; + if (pos==0) return; var last = text.lastIndexOf("\n", pos-1); + var rest = text.substring(pos); var line = last ? text.substring(last+1) : text; - var tail = text.substring(pos-2, pos); - var add = "", offset = 0; + var tail = text.substring(pos-2, pos), br = (tail==" "); + var add = "", offset = 1; if (line.startsWith("* ")) { - add = (tail==" ") ? " " : "* "; + add = "* "; + offset += add.length; + if (br) { + add = " " + "\n" + add; + } } else if (line.match(/^([1-9][0-9]*)\. /)) { ln = parseInt(RegExp.$1); - add = (tail==" ") ? " ".repeat(RegExp.$1.length+2) - : (ln+1)+". "; + add = (ln+1)+". "; + offset += add.length; + if (br) { + add = " ".repeat(RegExp.$1.length+2) + "\n" + add; + } } else if (line.match(/^\|( *).+\|/)) { + alert("table"); add = "|" + RegExp.$1 + " |"; - offset = -2; + offset += add.length-2; + } else { + return; } - area.value = text.substring(0, pos) + "\n" + add; + e.preventDefault(); + area.value = text.substring(0, pos) + "\n" + add + rest; //area.setSelectionRange(pos+length(add)); - area.selectionStart=area.selectionEnd - = (area.selectionStart + offset); + area.selectionStart=area.selectionEnd = (pos + offset); + } } /* Init event listeners */