From 3d69fb50e5ff0ae682c65792e806a93169081953 Mon Sep 17 00:00:00 2001 From: Matthew Harrison-Jones Date: Tue, 20 Aug 2013 12:44:47 +0100 Subject: [PATCH] Improved the keyboard shortcuts for lists and when no text is selected. The cursor will now be placed in the middle of the inserted Markdown when no text is selected. Lists keep tabbed format. --- ghost/admin/markdown-actions.js | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/ghost/admin/markdown-actions.js b/ghost/admin/markdown-actions.js index 3823024109..f76d826983 100644 --- a/ghost/admin/markdown-actions.js +++ b/ghost/admin/markdown-actions.js @@ -15,7 +15,7 @@ self.replace(); }, replace: function () { - var text = this.elem.getSelection(), pass = true, md, cursor, line, word, converter; + var text = this.elem.getSelection(), pass = true, md, cursor, line, word, letterCount, converter; switch (this.style) { case "h1": cursor = this.elem.getCursor(); @@ -93,13 +93,18 @@ break; case "copyHTML": converter = new Showdown.converter(); - md = converter.makeHtml(text); + if (text) { + md = converter.makeHtml(text); + } else { + md = converter.makeHtml(this.elem.getValue()); + } + $(".modal-copyToHTML-content").text(md).selectText(); $(".js-modal").center(); pass = false; break; case "list": - md = text.replace(/^/gm, "* "); + md = text.replace(/^(\s*)(\w\W*)/gm, "$1* $2"); this.elem.replaceSelection(md, "end"); pass = false; break; @@ -113,6 +118,11 @@ } if (pass && md) { this.elem.replaceSelection(md, "end"); + if (!text) { + letterCount = md.length; + cursor = this.elem.getCursor(); + this.elem.setCursor({line: cursor.line, ch: cursor.ch - (letterCount / 2)}); + } } } };