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
			| 
											3 years ago
										 | 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
 |