mirror of
				https://github.com/BookStackApp/BookStack.git
				synced 2025-10-31 03:50:27 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			59 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			2.3 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']);
 | |
|     editor.shortcuts.add('meta+o', '', 'InsertOrderedList');
 | |
|     editor.shortcuts.add('meta+p', '', 'InsertUnorderedList');
 | |
| 
 | |
|     // 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);
 | |
|     });
 | |
| 
 | |
|     // Link selector shortcut
 | |
|     editor.shortcuts.add('meta+shift+K', '', function() {
 | |
|         window.EntitySelectorPopup.show(function(entity) {
 | |
| 
 | |
|             if (editor.selection.isCollapsed()) {
 | |
|                 editor.insertContent(editor.dom.createHTML('a', {href: entity.link}, editor.dom.encode(entity.name)));
 | |
|             } else {
 | |
|                 editor.formatter.apply('link', {href: entity.link});
 | |
|             }
 | |
| 
 | |
|             editor.selection.collapse(false);
 | |
|             editor.focus();
 | |
|         })
 | |
|     });
 | |
| } |