42 lines
1.6 KiB
JavaScript
42 lines
1.6 KiB
JavaScript
|
/**
|
||
|
* @param {Editor} editor
|
||
|
*/
|
||
|
export function register(editor) {
|
||
|
// Headers
|
||
|
for (let i = 1; i < 5; i++) {
|
||
|
editor.shortcuts.add('meta+' + i, '', ['FormatBlock', false, 'h' + (i+1)]);
|
||
|
}
|
||
|
|
||
|
// Other block shortcuts
|
||
|
editor.shortcuts.add('meta+5', '', ['FormatBlock', false, 'p']);
|
||
|
editor.shortcuts.add('meta+d', '', ['FormatBlock', false, 'p']);
|
||
|
editor.shortcuts.add('meta+6', '', ['FormatBlock', false, 'blockquote']);
|
||
|
editor.shortcuts.add('meta+q', '', ['FormatBlock', false, 'blockquote']);
|
||
|
editor.shortcuts.add('meta+7', '', ['codeeditor', false, 'pre']);
|
||
|
editor.shortcuts.add('meta+e', '', ['codeeditor', false, 'pre']);
|
||
|
editor.shortcuts.add('meta+8', '', ['FormatBlock', false, 'code']);
|
||
|
editor.shortcuts.add('meta+shift+E', '', ['FormatBlock', false, 'code']);
|
||
|
|
||
|
// Save draft shortcut
|
||
|
editor.shortcuts.add('meta+S', '', () => {
|
||
|
window.$events.emit('editor-save-draft');
|
||
|
});
|
||
|
|
||
|
// Save page shortcut
|
||
|
editor.shortcuts.add('meta+13', '', () => {
|
||
|
window.$events.emit('editor-save-page');
|
||
|
});
|
||
|
|
||
|
// Loop through callout styles
|
||
|
editor.shortcuts.add('meta+9', '', function() {
|
||
|
const selectedNode = editor.selection.getNode();
|
||
|
const callout = selectedNode ? selectedNode.closest('.callout') : null;
|
||
|
|
||
|
const formats = ['info', 'success', 'warning', 'danger'];
|
||
|
const currentFormatIndex = formats.findIndex(format => callout && callout.classList.contains(format));
|
||
|
const newFormatIndex = (currentFormatIndex + 1) % formats.length;
|
||
|
const newFormat = formats[newFormatIndex];
|
||
|
|
||
|
editor.formatter.apply('callout' + newFormat);
|
||
|
});
|
||
|
}
|