From e78492983a134714416320cdb5dc82b3bce126ff Mon Sep 17 00:00:00 2001 From: asmsuechan Date: Wed, 22 Feb 2017 01:51:02 +0900 Subject: [PATCH 1/4] Add a shortcut for supporting to input bold --- browser/components/MarkdownEditor.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/browser/components/MarkdownEditor.js b/browser/components/MarkdownEditor.js index a00a87bf..1014ff52 100644 --- a/browser/components/MarkdownEditor.js +++ b/browser/components/MarkdownEditor.js @@ -11,6 +11,8 @@ class MarkdownEditor extends React.Component { this.escapeFromEditor = ['Control', 'w'] + this.supportBold = ['Control', 'b'] + this.state = { status: 'PREVIEW', renderValue: props.value, @@ -166,6 +168,16 @@ class MarkdownEditor extends React.Component { if (!this.state.isLocked && this.state.status === 'CODE' && this.escapeFromEditor.every(isNoteHandlerKey)) { document.activeElement.blur() } + if (this.state.status === 'CODE' && this.supportBold.every(isNoteHandlerKey)) { + this.addMdAndMoveCaretToCenter('****') + } + } + + addMdAndMoveCaretToCenter (md) { + const currentCaret = this.refs.code.editor.getCursor() + const cmDoc = this.refs.code.editor.getDoc() + cmDoc.replaceRange(md, currentCaret) + this.refs.code.editor.setCursor({line: currentCaret.line, ch: currentCaret.ch + md.length/2}) } handleKeyUp (e) { From c3e92b3b81c7c17c412b5adc8e53612328a145bc Mon Sep 17 00:00:00 2001 From: asmsuechan Date: Sun, 12 Mar 2017 16:04:00 -0700 Subject: [PATCH 2/4] Fix if clauses --- browser/components/MarkdownEditor.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/browser/components/MarkdownEditor.js b/browser/components/MarkdownEditor.js index 1014ff52..2172db99 100644 --- a/browser/components/MarkdownEditor.js +++ b/browser/components/MarkdownEditor.js @@ -160,6 +160,7 @@ class MarkdownEditor extends React.Component { } handleKeyDown(e) { + if (this.state.status !== 'CODE') return false const keyPressed = Object.assign(this.state.keyPressed, { [e.key]: true }) @@ -168,7 +169,7 @@ class MarkdownEditor extends React.Component { if (!this.state.isLocked && this.state.status === 'CODE' && this.escapeFromEditor.every(isNoteHandlerKey)) { document.activeElement.blur() } - if (this.state.status === 'CODE' && this.supportBold.every(isNoteHandlerKey)) { + if (this.supportBold.every(isNoteHandlerKey)) { this.addMdAndMoveCaretToCenter('****') } } From 49a4ec5e167670820dd65793cadec0c5677b0de0 Mon Sep 17 00:00:00 2001 From: asmsuechan Date: Wed, 22 Feb 2017 03:33:42 +0900 Subject: [PATCH 3/4] Enable CTRL + B in a word to make it bold --- browser/components/MarkdownEditor.js | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/browser/components/MarkdownEditor.js b/browser/components/MarkdownEditor.js index 2172db99..aeed5e08 100644 --- a/browser/components/MarkdownEditor.js +++ b/browser/components/MarkdownEditor.js @@ -11,7 +11,9 @@ class MarkdownEditor extends React.Component { this.escapeFromEditor = ['Control', 'w'] - this.supportBold = ['Control', 'b'] + this.supportMdBold = ['Control', 'b'] + + this.supportMdWordBold = ['Control', ':'] this.state = { status: 'PREVIEW', @@ -169,9 +171,12 @@ class MarkdownEditor extends React.Component { if (!this.state.isLocked && this.state.status === 'CODE' && this.escapeFromEditor.every(isNoteHandlerKey)) { document.activeElement.blur() } - if (this.supportBold.every(isNoteHandlerKey)) { + if (this.supportMdBold.every(isNoteHandlerKey)) { this.addMdAndMoveCaretToCenter('****') } + if (this.supportMdWordBold.every(isNoteHandlerKey)) { + this.addMdBetweenWord('**') + } } addMdAndMoveCaretToCenter (md) { @@ -181,6 +186,14 @@ class MarkdownEditor extends React.Component { this.refs.code.editor.setCursor({line: currentCaret.line, ch: currentCaret.ch + md.length/2}) } + addMdBetweenWord (md) { + const currentCaret = this.refs.code.editor.getCursor() + const word = this.refs.code.editor.findWordAt(currentCaret) + const cmDoc = this.refs.code.editor.getDoc() + cmDoc.replaceRange(md, word.anchor) + cmDoc.replaceRange(md, { line: word.head.line, ch: word.head.ch + md.length }) + } + handleKeyUp (e) { const keyPressed = Object.assign(this.state.keyPressed, { [e.key]: false From 48514d102084ac17cef804e690532f3758ae5bd7 Mon Sep 17 00:00:00 2001 From: asmsuechan Date: Sun, 12 Mar 2017 16:07:40 -0700 Subject: [PATCH 4/4] Change an arg name md to mdElement --- browser/components/MarkdownEditor.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/browser/components/MarkdownEditor.js b/browser/components/MarkdownEditor.js index aeed5e08..b8e44939 100644 --- a/browser/components/MarkdownEditor.js +++ b/browser/components/MarkdownEditor.js @@ -179,19 +179,19 @@ class MarkdownEditor extends React.Component { } } - addMdAndMoveCaretToCenter (md) { + addMdAndMoveCaretToCenter (mdElement) { const currentCaret = this.refs.code.editor.getCursor() const cmDoc = this.refs.code.editor.getDoc() - cmDoc.replaceRange(md, currentCaret) - this.refs.code.editor.setCursor({line: currentCaret.line, ch: currentCaret.ch + md.length/2}) + cmDoc.replaceRange(mdElement, currentCaret) + this.refs.code.editor.setCursor({line: currentCaret.line, ch: currentCaret.ch + mdElement.length/2}) } - addMdBetweenWord (md) { + addMdBetweenWord (mdElement) { const currentCaret = this.refs.code.editor.getCursor() const word = this.refs.code.editor.findWordAt(currentCaret) const cmDoc = this.refs.code.editor.getDoc() - cmDoc.replaceRange(md, word.anchor) - cmDoc.replaceRange(md, { line: word.head.line, ch: word.head.ch + md.length }) + cmDoc.replaceRange(mdElement, word.anchor) + cmDoc.replaceRange(mdElement, { line: word.head.line, ch: word.head.ch + mdElement.length }) } handleKeyUp (e) {