feat: use keyCode for markdown shortcuts

This commit is contained in:
mdashlw 2024-07-21 19:08:38 -07:00
parent 9ca1a50a0a
commit b442d983b0
No known key found for this signature in database
GPG key ID: 0887AF18569DED32

View file

@ -7,19 +7,19 @@ import { $, $$ } from './utils/dom';
const markdownSyntax = { const markdownSyntax = {
bold: { bold: {
action: wrapSelection, action: wrapSelection,
options: { prefix: '**', shortcutKey: 'b' }, options: { prefix: '**', shortcutKeyCode: 66 },
}, },
italics: { italics: {
action: wrapSelection, action: wrapSelection,
options: { prefix: '*', shortcutKey: 'i' }, options: { prefix: '*', shortcutKeyCode: 73 },
}, },
under: { under: {
action: wrapSelection, action: wrapSelection,
options: { prefix: '__', shortcutKey: 'u' }, options: { prefix: '__', shortcutKeyCode: 85 },
}, },
spoiler: { spoiler: {
action: wrapSelection, action: wrapSelection,
options: { prefix: '||', shortcutKey: 's' }, options: { prefix: '||', shortcutKeyCode: 83 },
}, },
code: { code: {
action: wrapSelectionOrLines, action: wrapSelectionOrLines,
@ -29,7 +29,7 @@ const markdownSyntax = {
prefixMultiline: '```\n', prefixMultiline: '```\n',
suffixMultiline: '\n```', suffixMultiline: '\n```',
singleWrap: true, singleWrap: true,
shortcutKey: 'e', shortcutKeyCode: 69,
}, },
}, },
strike: { strike: {
@ -50,11 +50,11 @@ const markdownSyntax = {
}, },
link: { link: {
action: insertLink, action: insertLink,
options: { shortcutKey: 'l' }, options: { shortcutKeyCode: 76 },
}, },
image: { image: {
action: insertLink, action: insertLink,
options: { image: true, shortcutKey: 'k' }, options: { image: true, shortcutKeyCode: 75 },
}, },
escape: { escape: {
action: escapeSelection, action: escapeSelection,
@ -257,10 +257,10 @@ function shortcutHandler(event) {
} }
const textarea = event.target, const textarea = event.target,
key = event.key.toLowerCase(); keyCode = event.keyCode;
for (const id in markdownSyntax) { for (const id in markdownSyntax) {
if (key === markdownSyntax[id].options.shortcutKey) { if (keyCode === markdownSyntax[id].options.shortcutKeyCode) {
markdownSyntax[id].action(textarea, markdownSyntax[id].options); markdownSyntax[id].action(textarea, markdownSyntax[id].options);
event.preventDefault(); event.preventDefault();
} }