From d1922ebc1722ed69597f830b51a2d283325f88dd Mon Sep 17 00:00:00 2001 From: "Michael D. Lowis" Date: Wed, 29 Nov 2017 15:57:00 -0500 Subject: [PATCH] Added shortcuts for common tags to editor. --- editor.js | 47 +++++++++++++++++++++++++++++++++-------------- style.css | 13 ++++--------- 2 files changed, 37 insertions(+), 23 deletions(-) diff --git a/editor.js b/editor.js index bbf659c..3a8b767 100644 --- a/editor.js +++ b/editor.js @@ -3,40 +3,59 @@ (() => { const getSelNode = () => { const node = document.getSelection().anchorNode; - return (node.nodeType == 3 ? node.parentNode : node); - } + return (node.nodeType === 3 ? node.parentNode : node); + }; - const ctrlKey = (evnt, cmd) => { + const ctrlKey = (evnt, cmd, arg) => { + console.log(evnt.ctrlKey); if (evnt.ctrlKey) { - document.execCommand(cmd,false) + document.execCommand(cmd,false,arg); return false; } return true; - } + }; + + const ctrlShiftKey = (evnt, cmd, arg) => { + console.log(evnt.ctrlKey); + if (evnt.ctrlKey && evnt.shiftKey) { + document.execCommand(cmd,false,arg); + return false; + } + return true; + }; const keys = { - "b": (evnt) => (ctrlKey("bold")), - "i": (evnt) => (ctrlKey("italic")), - "u": (evnt) => (ctrlKey("underline")), + "b": (evnt) => (ctrlKey(evnt,"bold")), + "i": (evnt) => (ctrlKey(evnt,"italic")), + "u": (evnt) => (ctrlKey(evnt,"underline")), + ";": (evnt) => (ctrlKey(evnt,"insertHTML", "\r\n")), + "'": (evnt) => (ctrlKey(evnt,"formatBlock", "
")), + "0": (evnt) => (ctrlKey(evnt,"formatBlock", "

")), + "1": (evnt) => (ctrlKey(evnt,"formatBlock", "

")), + "2": (evnt) => (ctrlKey(evnt,"formatBlock", "

")), + "3": (evnt) => (ctrlKey(evnt,"formatBlock", "

")), + "4": (evnt) => (ctrlKey(evnt,"formatBlock", "

")), + "5": (evnt) => (ctrlKey(evnt,"formatBlock", "

")), + "6": (evnt) => (ctrlKey(evnt,"formatBlock", "
")), + "#": (evnt) => (ctrlShiftKey(evnt,"insertOrderedList")), + "*": (evnt) => (ctrlShiftKey(evnt,"insertUnorderedList")), "Enter": () => { if (getSelNode().nodeName === "CODE") document.execCommand("insertHTML",false,"\n"); else - document.execCommand("insertParagraph",false) + document.execCommand("insertParagraph",false); return false; }, "Tab": (evnt) => { if (getSelNode().nodeName === "CODE") - document.execCommand("insertHTML",false," "); - else if (evnt.shiftKey) - document.execCommand("outdent",false) + document.execCommand("insertHTML",false,"\t"); else - document.execCommand("indent",false) + document.execCommand((evnt.shiftKey ? "out" : "in")+"dent",false); return false; }, - } + }; content.onkeydown = (evnt) => { console.log(evnt); diff --git a/style.css b/style.css index 781fd35..52721ed 100644 --- a/style.css +++ b/style.css @@ -18,6 +18,7 @@ h3 { font-size: 1.17rem; } h4 { font-size: 1.0rem; } h5 { font-size: 0.83rem; } h6 { font-size: 0.67rem; } +a { color: deepskyblue; } /* table styling: Github or skeleton table style */ table { @@ -29,12 +30,6 @@ table { } /* code blocks */ -pre > code { - display: block; - padding: 1rem 1.5rem; - white-space: pre; -} - code { display: block; padding: 1rem 1.5rem; @@ -43,6 +38,9 @@ code { background: #F1F1F1; border: 1px solid #E1E1E1; border-radius: 4px; + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; } /* code blocks */ @@ -54,9 +52,6 @@ blockquote { margin-right: 0px; } -/* link styling */ -a { color: deepskyblue; } - /* table formatting */ table { width: 100%; -- 2.49.0