From e21bde39e14a90179d31481e0f82be4497f261b2 Mon Sep 17 00:00:00 2001 From: Kevin Ansfield Date: Wed, 8 Dec 2021 15:17:28 +0000 Subject: [PATCH] Updated `CTRL+Q` blockquote keyboard shortcut to cycle through alt style refs https://github.com/TryGhost/Team/issues/1239 - updates keyboard shortcut behavior to match the quote icon behavior where it cycles through blockquote->aside->p --- .../addon/options/key-commands.js | 40 +++++++++++++------ 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/ghost/admin/lib/koenig-editor/addon/options/key-commands.js b/ghost/admin/lib/koenig-editor/addon/options/key-commands.js index 0d227be087..d44628370e 100644 --- a/ghost/admin/lib/koenig-editor/addon/options/key-commands.js +++ b/ghost/admin/lib/koenig-editor/addon/options/key-commands.js @@ -47,6 +47,32 @@ const cycleHeaderLevel = function cycleHeaderLevel(editor, koenig) { setHeader(headerTag, editor, koenig); }; +const cycleQuoteStyle = function cycleQuoteStyle(editor, koenig) { + if (!editor.activeSection.isMarkerable) { + return; + } + + const range = editor.range; + const canKeepRange = !editor.activeSection.isListItem; + + let sectionName = 'blockquote'; + + if (editor.activeSection.tagName === 'blockquote') { + sectionName = 'aside'; + } + if (editor.activeSection.tagName === 'aside') { + sectionName = 'p'; + } + + editor.run((postEditor) => { + koenig.send('toggleSection', sectionName, postEditor); + + if (canKeepRange) { + postEditor.setRange(range); + } + }); +}; + export const DEFAULT_KEY_COMMANDS = [{ str: 'ENTER', run(editor, koenig) { @@ -358,19 +384,7 @@ export const DEFAULT_KEY_COMMANDS = [{ }, { str: 'CTRL+Q', run(editor, koenig) { - if (!editor.activeSection.isMarkerable) { - return; - } - - let range = editor.range; - let canKeepRange = !editor.activeSection.isListItem; - - editor.run((postEditor) => { - koenig.send('toggleSection', 'blockquote', postEditor); - if (canKeepRange) { - postEditor.setRange(range); - } - }); + return cycleQuoteStyle(editor, koenig); } }, { str: 'CTRL+L',