You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							61 lines
						
					
					
						
							1.6 KiB
						
					
					
				
			
		
		
	
	
							61 lines
						
					
					
						
							1.6 KiB
						
					
					
				| import { Mark, mergeAttributes, markInputRule, markPasteRule } from '@tiptap/core';
 | |
| 
 | |
| const inputRegex = /(?:^|\s)((?:`)((?:[^`]+))(?:`))$/;
 | |
| const pasteRegex = /(?:^|\s)((?:`)((?:[^`]+))(?:`))/g;
 | |
| const Code = Mark.create({
 | |
|     name: 'code',
 | |
|     addOptions() {
 | |
|         return {
 | |
|             HTMLAttributes: {},
 | |
|         };
 | |
|     },
 | |
|     excludes: '_',
 | |
|     code: true,
 | |
|     exitable: true,
 | |
|     parseHTML() {
 | |
|         return [
 | |
|             { tag: 'code' },
 | |
|         ];
 | |
|     },
 | |
|     renderHTML({ HTMLAttributes }) {
 | |
|         return ['code', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
 | |
|     },
 | |
|     addCommands() {
 | |
|         return {
 | |
|             setCode: () => ({ commands }) => {
 | |
|                 return commands.setMark(this.name);
 | |
|             },
 | |
|             toggleCode: () => ({ commands }) => {
 | |
|                 return commands.toggleMark(this.name);
 | |
|             },
 | |
|             unsetCode: () => ({ commands }) => {
 | |
|                 return commands.unsetMark(this.name);
 | |
|             },
 | |
|         };
 | |
|     },
 | |
|     addKeyboardShortcuts() {
 | |
|         return {
 | |
|             'Mod-e': () => this.editor.commands.toggleCode(),
 | |
|         };
 | |
|     },
 | |
|     addInputRules() {
 | |
|         return [
 | |
|             markInputRule({
 | |
|                 find: inputRegex,
 | |
|                 type: this.type,
 | |
|             }),
 | |
|         ];
 | |
|     },
 | |
|     addPasteRules() {
 | |
|         return [
 | |
|             markPasteRule({
 | |
|                 find: pasteRegex,
 | |
|                 type: this.type,
 | |
|             }),
 | |
|         ];
 | |
|     },
 | |
| });
 | |
| 
 | |
| export { Code, Code as default, inputRegex, pasteRegex };
 | |
| //# sourceMappingURL=tiptap-extension-code.esm.js.map
 |