mirror of
				https://github.com/TriliumNext/Notes.git
				synced 2025-11-01 05:21:32 +08:00 
			
		
		
		
	chore(ckeditor5-math): integrate source code
This commit is contained in:
		
							parent
							
								
									ee6e111a85
								
							
						
					
					
						commit
						5d42b942ba
					
				| @ -1,37 +0,0 @@ | |||||||
| import Math from './math'; |  | ||||||
| import MathCommand from './mathcommand'; |  | ||||||
| import MathEditing from './mathediting'; |  | ||||||
| import MathUI from './mathui'; |  | ||||||
| import type { KatexOptions } from './typings-external'; |  | ||||||
| 
 |  | ||||||
| declare module '@ckeditor/ckeditor5-core' { |  | ||||||
| 
 |  | ||||||
| 	interface PluginsMap { |  | ||||||
| 		[ Math.pluginName ]: Math; |  | ||||||
| 		[ MathEditing.pluginName ]: MathEditing; |  | ||||||
| 		[ MathUI.pluginName ]: MathUI; |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	interface CommandsMap { |  | ||||||
| 		math: MathCommand; |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	interface EditorConfig { |  | ||||||
| 		math?: { |  | ||||||
| 			engine?: |  | ||||||
| 				| 'mathjax' |  | ||||||
| 				| 'katex' |  | ||||||
| 				| ( ( equation: string, element: HTMLElement, display: boolean ) => void ) |  | ||||||
| 				| undefined; |  | ||||||
| 			lazyLoad?: undefined | ( () => Promise<void> ); |  | ||||||
| 			outputType?: 'script' | 'span' | undefined; |  | ||||||
| 			className?: string | undefined; |  | ||||||
| 			forceOutputType?: boolean | undefined; |  | ||||||
| 			enablePreview?: boolean | undefined; |  | ||||||
| 			previewClassName?: Array<string> | undefined; |  | ||||||
| 			popupClassName?: Array<string> | undefined; |  | ||||||
| 			katexRenderOptions?: Partial<KatexOptions> | undefined; |  | ||||||
| 		}; |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| @ -1,8 +0,0 @@ | |||||||
| /** |  | ||||||
|  * @module math |  | ||||||
|  */ |  | ||||||
| 
 |  | ||||||
| export { default as Math } from './math'; |  | ||||||
| export { default as AutoformatMath } from './autoformatmath'; |  | ||||||
| 
 |  | ||||||
| import "./augmentation.js"; |  | ||||||
| @ -1,16 +0,0 @@ | |||||||
| import { Plugin } from 'ckeditor5/src/core'; |  | ||||||
| import { Widget } from 'ckeditor5/src/widget'; |  | ||||||
| 
 |  | ||||||
| import MathUI from './mathui'; |  | ||||||
| import MathEditing from './mathediting'; |  | ||||||
| import AutoMath from './automath'; |  | ||||||
| 
 |  | ||||||
| export default class Math extends Plugin { |  | ||||||
| 	public static get requires() { |  | ||||||
| 		return [ MathEditing, MathUI, AutoMath, Widget ] as const; |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	public static get pluginName() { |  | ||||||
| 		return 'Math' as const; |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
							
								
								
									
										4
									
								
								_regroup/ckeditor5-math/typings/svg.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								_regroup/ckeditor5-math/typings/svg.d.ts
									
									
									
									
										vendored
									
									
								
							| @ -1,4 +0,0 @@ | |||||||
| declare module '*.svg' { |  | ||||||
| 	const src: string; |  | ||||||
| 	export default src; |  | ||||||
| } |  | ||||||
| @ -1,7 +1,35 @@ | |||||||
| import type { Math } from './index.js'; | import type Math from './math.js'; | ||||||
|  | import MathCommand from './mathcommand.js'; | ||||||
|  | import MathEditing from './mathediting.js'; | ||||||
|  | import MathUI from './mathui.js'; | ||||||
|  | import { KatexOptions } from './typings-external.js'; | ||||||
| 
 | 
 | ||||||
| declare module 'ckeditor5' { | declare module 'ckeditor5' { | ||||||
| 	interface PluginsMap { | 	interface PluginsMap { | ||||||
| 		[ Math.pluginName ]: Math; | 		[ Math.pluginName ]: Math; | ||||||
|  | 		[ MathEditing.pluginName ]: MathEditing; | ||||||
|  | 		[ MathUI.pluginName ]: MathUI; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	interface CommandsMap { | ||||||
|  | 		math: MathCommand; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	interface EditorConfig { | ||||||
|  | 		math?: { | ||||||
|  | 			engine?: | ||||||
|  | 				| 'mathjax' | ||||||
|  | 				| 'katex' | ||||||
|  | 				| ( ( equation: string, element: HTMLElement, display: boolean ) => void ) | ||||||
|  | 				| undefined; | ||||||
|  | 			lazyLoad?: undefined | ( () => Promise<void> ); | ||||||
|  | 			outputType?: 'script' | 'span' | undefined; | ||||||
|  | 			className?: string | undefined; | ||||||
|  | 			forceOutputType?: boolean | undefined; | ||||||
|  | 			enablePreview?: boolean | undefined; | ||||||
|  | 			previewClassName?: Array<string> | undefined; | ||||||
|  | 			popupClassName?: Array<string> | undefined; | ||||||
|  | 			katexRenderOptions?: Partial<KatexOptions> | undefined; | ||||||
|  | 		}; | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,10 +1,8 @@ | |||||||
| import { Plugin } from 'ckeditor5/src/core'; | import { Plugin, logWarning, blockAutoformatEditing } from 'ckeditor5'; | ||||||
| import { global, logWarning } from 'ckeditor5/src/utils'; |  | ||||||
| // eslint-disable-next-line ckeditor5-rules/allow-imports-only-from-main-package-entry-point
 | // eslint-disable-next-line ckeditor5-rules/allow-imports-only-from-main-package-entry-point
 | ||||||
| import blockAutoformatEditing from '@ckeditor/ckeditor5-autoformat/src/blockautoformatediting'; | import Math from './math.js'; | ||||||
| import Math from './math'; | import MathCommand from './mathcommand.js'; | ||||||
| import MathCommand from './mathcommand'; | import MathUI from './mathui.js'; | ||||||
| import MathUI from './mathui'; |  | ||||||
| 
 | 
 | ||||||
| export default class AutoformatMath extends Plugin { | export default class AutoformatMath extends Plugin { | ||||||
| 	public static get requires() { | 	public static get requires() { | ||||||
| @ -1,9 +1,5 @@ | |||||||
| import { Clipboard } from 'ckeditor5/src/clipboard'; | import { Clipboard, Plugin, type Editor, LivePosition, LiveRange, Undo } from 'ckeditor5'; | ||||||
| import { Plugin, type Editor } from 'ckeditor5/src/core'; | import { extractDelimiters, hasDelimiters, delimitersCounts } from './utils.js'; | ||||||
| import { LivePosition, LiveRange } from 'ckeditor5/src/engine'; |  | ||||||
| import { Undo } from 'ckeditor5/src/undo'; |  | ||||||
| import { global } from 'ckeditor5/src/utils'; |  | ||||||
| import { extractDelimiters, hasDelimiters, delimitersCounts } from './utils'; |  | ||||||
| 
 | 
 | ||||||
| export default class AutoMath extends Plugin { | export default class AutoMath extends Plugin { | ||||||
| 	public static get requires() { | 	public static get requires() { | ||||||
| @ -73,7 +69,7 @@ export default class AutoMath extends Plugin { | |||||||
| 		const editor = this.editor; | 		const editor = this.editor; | ||||||
| 
 | 
 | ||||||
| 		// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
 | 		// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
 | ||||||
| 		const mathConfig = this.editor.config.get( 'math' )!; | 		const mathConfig = this.editor.config.get( 'math' ); | ||||||
| 
 | 
 | ||||||
| 		const equationRange = new LiveRange( leftPosition, rightPosition ); | 		const equationRange = new LiveRange( leftPosition, rightPosition ); | ||||||
| 		const walker = equationRange.getWalker( { ignoreElementEnd: true } ); | 		const walker = equationRange.getWalker( { ignoreElementEnd: true } ); | ||||||
| @ -119,7 +115,7 @@ export default class AutoMath extends Plugin { | |||||||
| 
 | 
 | ||||||
| 				editor.model.change( innerWriter => { | 				editor.model.change( innerWriter => { | ||||||
| 					const params = Object.assign( extractDelimiters( text ), { | 					const params = Object.assign( extractDelimiters( text ), { | ||||||
| 						type: mathConfig.outputType | 						type: mathConfig?.outputType | ||||||
| 					} ); | 					} ); | ||||||
| 					const mathElement = innerWriter.createElement( params.display ? 'mathtex-display' : 'mathtex-inline', params | 					const mathElement = innerWriter.createElement( params.display ? 'mathtex-display' : 'mathtex-inline', params | ||||||
| 					); | 					); | ||||||
| @ -1,7 +1,9 @@ | |||||||
| import ckeditor from './../theme/icons/ckeditor.svg'; | import ckeditor from './../theme/icons/ckeditor.svg'; | ||||||
| import './augmentation.js'; | import './augmentation.js'; | ||||||
|  | import "../theme/mathform.css"; | ||||||
| 
 | 
 | ||||||
| export { default as Math } from './math.js'; | export { default as Math } from './math.js'; | ||||||
|  | export { default as AutoformatMath } from './autoformatmath.js'; | ||||||
| 
 | 
 | ||||||
| export const icons = { | export const icons = { | ||||||
| 	ckeditor | 	ckeditor | ||||||
|  | |||||||
| @ -1,39 +1,14 @@ | |||||||
| import { Plugin, ButtonView } from 'ckeditor5'; | import { Plugin, Widget } from 'ckeditor5'; | ||||||
| 
 | import MathEditing from './mathediting.js'; | ||||||
| import ckeditor5Icon from '../theme/icons/ckeditor.svg'; | import MathUI from './mathui.js'; | ||||||
|  | import AutoMath from './automath.js'; | ||||||
| 
 | 
 | ||||||
| export default class Math extends Plugin { | export default class Math extends Plugin { | ||||||
|  | 	public static get requires() { | ||||||
|  | 		return [ MathEditing, MathUI, AutoMath, Widget ] as const; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	public static get pluginName() { | 	public static get pluginName() { | ||||||
| 		return 'Math' as const; | 		return 'Math' as const; | ||||||
| 	} | 	} | ||||||
| 
 |  | ||||||
| 	public init(): void { |  | ||||||
| 		const editor = this.editor; |  | ||||||
| 		const t = editor.t; |  | ||||||
| 		const model = editor.model; |  | ||||||
| 
 |  | ||||||
| 		// Register the "math" button, so it can be displayed in the toolbar.
 |  | ||||||
| 		editor.ui.componentFactory.add( 'math', locale => { |  | ||||||
| 			const view = new ButtonView( locale ); |  | ||||||
| 
 |  | ||||||
| 			view.set( { |  | ||||||
| 				label: t( 'Math' ), |  | ||||||
| 				icon: ckeditor5Icon, |  | ||||||
| 				tooltip: true |  | ||||||
| 			} ); |  | ||||||
| 
 |  | ||||||
| 			// Insert a text into the editor after clicking the button.
 |  | ||||||
| 			this.listenTo( view, 'execute', () => { |  | ||||||
| 				model.change( writer => { |  | ||||||
| 					const textNode = writer.createText( 'Hello CKEditor 5!' ); |  | ||||||
| 
 |  | ||||||
| 					model.insertContent( textNode ); |  | ||||||
| 				} ); |  | ||||||
| 
 |  | ||||||
| 				editor.editing.view.focus(); |  | ||||||
| 			} ); |  | ||||||
| 
 |  | ||||||
| 			return view; |  | ||||||
| 		} ); |  | ||||||
| 	} |  | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,5 +1,5 @@ | |||||||
| import { Command } from 'ckeditor5/src/core'; | import { Command } from 'ckeditor5'; | ||||||
| import { getSelectedMathModelWidget } from './utils'; | import { getSelectedMathModelWidget } from './utils.js'; | ||||||
| 
 | 
 | ||||||
| export default class MathCommand extends Command { | export default class MathCommand extends Command { | ||||||
| 	public override value: string | null = null; | 	public override value: string | null = null; | ||||||
| @ -1,13 +1,6 @@ | |||||||
| import MathCommand from './mathcommand'; | import MathCommand from './mathcommand.js'; | ||||||
| import { type Editor, Plugin } from 'ckeditor5/src/core'; | import { type Editor, Plugin, toWidget, Widget, viewToModelPositionOutsideModelElement, type DowncastWriter, type Element, CKEditorError, uid } from 'ckeditor5'; | ||||||
| import { | import { renderEquation, extractDelimiters } from './utils.js'; | ||||||
| 	toWidget, |  | ||||||
| 	Widget, |  | ||||||
| 	viewToModelPositionOutsideModelElement |  | ||||||
| } from 'ckeditor5/src/widget'; |  | ||||||
| import { renderEquation, extractDelimiters } from './utils'; |  | ||||||
| import type { DowncastWriter, Element } from 'ckeditor5/src/engine'; |  | ||||||
| import { CKEditorError, uid } from 'ckeditor5/src/utils'; |  | ||||||
| 
 | 
 | ||||||
| export default class MathEditing extends Plugin { | export default class MathEditing extends Plugin { | ||||||
| 	public static get requires() { | 	public static get requires() { | ||||||
| @ -1,16 +1,9 @@ | |||||||
| import MathEditing from './mathediting'; | import MathEditing from './mathediting.js'; | ||||||
| import MainFormView from './ui/mainformview'; | import MainFormView from './ui/mainformview.js'; | ||||||
| import mathIcon from '../theme/icons/math.svg'; | import mathIcon from '../theme/icons/math.svg'; | ||||||
| import { Plugin } from 'ckeditor5/src/core'; | import { Plugin, ClickObserver, ButtonView, ContextualBalloon, clickOutsideHandler, CKEditorError, uid } from 'ckeditor5'; | ||||||
| import { ClickObserver } from 'ckeditor5/src/engine'; | import { getBalloonPositionData } from './utils.js'; | ||||||
| import { | import MathCommand from './mathcommand.js'; | ||||||
| 	ButtonView, |  | ||||||
| 	ContextualBalloon, |  | ||||||
| 	clickOutsideHandler |  | ||||||
| } from 'ckeditor5/src/ui'; |  | ||||||
| import { CKEditorError, global, uid } from 'ckeditor5/src/utils'; |  | ||||||
| import { getBalloonPositionData } from './utils'; |  | ||||||
| import MathCommand from './mathcommand'; |  | ||||||
| 
 | 
 | ||||||
| const mathKeystroke = 'Ctrl+M'; | const mathKeystroke = 'Ctrl+M'; | ||||||
| 
 | 
 | ||||||
| @ -1,22 +1,8 @@ | |||||||
| import { icons } from 'ckeditor5/src/core'; | import { icons, ButtonView, createLabeledInputText, FocusCycler, LabelView, LabeledFieldView, submitHandler, SwitchButtonView, View, ViewCollection, type InputTextView, type FocusableView, Locale, FocusTracker, KeystrokeHandler } from 'ckeditor5'; | ||||||
| import { | import { extractDelimiters, hasDelimiters } from '../utils.js'; | ||||||
| 	ButtonView, | import MathView from './mathview.js'; | ||||||
| 	createLabeledInputText, |  | ||||||
| 	FocusCycler, |  | ||||||
| 	LabelView, |  | ||||||
| 	LabeledFieldView, |  | ||||||
| 	submitHandler, |  | ||||||
| 	SwitchButtonView, |  | ||||||
| 	View, |  | ||||||
| 	ViewCollection, |  | ||||||
| 	type InputTextView, |  | ||||||
| 	type FocusableView |  | ||||||
| } from 'ckeditor5/src/ui'; |  | ||||||
| import { Locale, FocusTracker, KeystrokeHandler } from 'ckeditor5/src/utils'; |  | ||||||
| import { extractDelimiters, hasDelimiters } from '../utils'; |  | ||||||
| import MathView from './mathview'; |  | ||||||
| import '../../theme/mathform.css'; | import '../../theme/mathform.css'; | ||||||
| import type { KatexOptions } from '../typings-external'; | import type { KatexOptions } from '../typings-external.js'; | ||||||
| 
 | 
 | ||||||
| const { check: checkIcon, cancel: cancelIcon } = icons; | const { check: checkIcon, cancel: cancelIcon } = icons; | ||||||
| 
 | 
 | ||||||
| @ -1,7 +1,6 @@ | |||||||
| import { View } from 'ckeditor5/src/ui'; | import { View, type Locale } from 'ckeditor5'; | ||||||
| import type { KatexOptions } from '../typings-external'; | import type { KatexOptions } from '../typings-external.js'; | ||||||
| import { renderEquation } from '../utils'; | import { renderEquation } from '../utils.js'; | ||||||
| import type { Locale } from 'ckeditor5/src/utils'; |  | ||||||
| 
 | 
 | ||||||
| export default class MathView extends View { | export default class MathView extends View { | ||||||
| 	public declare value: string; | 	public declare value: string; | ||||||
| @ -1,11 +1,6 @@ | |||||||
| import type { Editor } from 'ckeditor5/src/core'; | import type { Editor, Element as CKElement, DocumentSelection, PositioningFunction } from 'ckeditor5'; | ||||||
| import type { | import { BalloonPanelView, CKEditorError } from 'ckeditor5'; | ||||||
| 	Element as CKElement, | import type { KatexOptions, MathJax2, MathJax3 } from './typings-external.js'; | ||||||
| 	DocumentSelection |  | ||||||
| } from 'ckeditor5/src/engine'; |  | ||||||
| import { BalloonPanelView } from 'ckeditor5/src/ui'; |  | ||||||
| import { CKEditorError, type PositioningFunction } from 'ckeditor5/src/utils'; |  | ||||||
| import type { KatexOptions, MathJax2, MathJax3 } from './typings-external'; |  | ||||||
| 
 | 
 | ||||||
| export function getSelectedMathModelWidget( | export function getSelectedMathModelWidget( | ||||||
| 	selection: DocumentSelection | 	selection: DocumentSelection | ||||||
| @ -1 +0,0 @@ | |||||||
| <svg width='68' height='64' viewBox='0 0 68 64' xmlns='http://www.w3.org/2000/svg'><g fill='none' fill-rule='evenodd'><path d='M43.71 11.025a11.508 11.508 0 0 0-1.213 5.159c0 6.42 5.244 11.625 11.713 11.625.083 0 .167 0 .25-.002v16.282a5.464 5.464 0 0 1-2.756 4.739L30.986 60.7a5.548 5.548 0 0 1-5.512 0L4.756 48.828A5.464 5.464 0 0 1 2 44.089V20.344c0-1.955 1.05-3.76 2.756-4.738L25.474 3.733a5.548 5.548 0 0 1 5.512 0l12.724 7.292z' fill='#FFF'/><path d='M45.684 8.79a12.604 12.604 0 0 0-1.329 5.65c0 7.032 5.744 12.733 12.829 12.733.091 0 .183-.001.274-.003v17.834a5.987 5.987 0 0 1-3.019 5.19L31.747 63.196a6.076 6.076 0 0 1-6.037 0L3.02 50.193A5.984 5.984 0 0 1 0 45.003V18.997c0-2.14 1.15-4.119 3.019-5.19L25.71.804a6.076 6.076 0 0 1 6.037 0L45.684 8.79zm-29.44 11.89c-.834 0-1.51.671-1.51 1.498v.715c0 .828.676 1.498 1.51 1.498h25.489c.833 0 1.51-.67 1.51-1.498v-.715c0-.827-.677-1.498-1.51-1.498h-25.49.001zm0 9.227c-.834 0-1.51.671-1.51 1.498v.715c0 .828.676 1.498 1.51 1.498h18.479c.833 0 1.509-.67 1.509-1.498v-.715c0-.827-.676-1.498-1.51-1.498H16.244zm0 9.227c-.834 0-1.51.671-1.51 1.498v.715c0 .828.676 1.498 1.51 1.498h25.489c.833 0 1.51-.67 1.51-1.498v-.715c0-.827-.677-1.498-1.51-1.498h-25.49.001zm41.191-14.459c-5.835 0-10.565-4.695-10.565-10.486 0-5.792 4.73-10.487 10.565-10.487C63.27 3.703 68 8.398 68 14.19c0 5.791-4.73 10.486-10.565 10.486v-.001z' fill='#1EBC61' fill-rule='nonzero'/><path d='M60.857 15.995c0-.467-.084-.875-.251-1.225a2.547 2.547 0 0 0-.686-.88 2.888 2.888 0 0 0-1.026-.531 4.418 4.418 0 0 0-1.259-.175c-.134 0-.283.006-.447.018-.15.01-.3.034-.446.07l.075-1.4h3.587v-1.8h-5.462l-.214 5.06c.319-.116.682-.21 1.089-.28.406-.071.77-.107 1.088-.107.218 0 .437.021.655.063.218.041.413.114.585.218s.313.244.422.419c.109.175.163.391.163.65 0 .424-.132.745-.396.961a1.434 1.434 0 0 1-.938.325c-.352 0-.656-.1-.912-.3-.256-.2-.43-.453-.523-.762l-1.925.588c.1.35.258.664.472.943.214.279.47.514.767.706.298.191.63.339.995.443.365.104.749.156 1.151.156.437 0 .86-.064 1.272-.193.41-.13.778-.323 1.1-.581a2.8 2.8 0 0 0 .775-.981c.193-.396.29-.864.29-1.405h-.001z' fill='#FFF' fill-rule='nonzero'/></g></svg> |  | ||||||
| Before Width: | Height: | Size: 2.1 KiB | 
| Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB | 
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Elian Doran
						Elian Doran