snapshot of https://github.com/ueberdosis/tiptap.git (main, 2026-09-15; blobs > 131072B omitted)
Some checks failed
Verify / Install node dependencies (push) Failing after 2s
Verify / Build packages (push) Has been skipped
Verify / Check linting & formatting (push) Has been skipped
Verify / Run unit tests (push) Has been skipped
Verify / Run e2e tests (shard 1/4) (push) Has been skipped
Verify / Run e2e tests (shard 2/4) (push) Has been skipped
Verify / Run e2e tests (shard 3/4) (push) Has been skipped
Verify / Run e2e tests (shard 4/4) (push) Has been skipped
Publish / Resolve publish config (push) Failing after 2s
Publish / Send notification to Slack (push) Has been skipped
Publish / Send failure notification to Slack (push) Failing after 8s
Verify / Merge e2e reports (push) Has been skipped
Publish / Build (push) Has been skipped
Publish / Bump Versions OR Release to Registry (push) Has been skipped
Some checks failed
Verify / Install node dependencies (push) Failing after 2s
Verify / Build packages (push) Has been skipped
Verify / Check linting & formatting (push) Has been skipped
Verify / Run unit tests (push) Has been skipped
Verify / Run e2e tests (shard 1/4) (push) Has been skipped
Verify / Run e2e tests (shard 2/4) (push) Has been skipped
Verify / Run e2e tests (shard 3/4) (push) Has been skipped
Verify / Run e2e tests (shard 4/4) (push) Has been skipped
Publish / Resolve publish config (push) Failing after 2s
Publish / Send notification to Slack (push) Has been skipped
Publish / Send failure notification to Slack (push) Failing after 8s
Verify / Merge e2e reports (push) Has been skipped
Publish / Build (push) Has been skipped
Publish / Bump Versions OR Release to Registry (push) Has been skipped
This commit is contained in:
77
packages/extension-mathematics/src/mathematics.ts
Normal file
77
packages/extension-mathematics/src/mathematics.ts
Normal file
@@ -0,0 +1,77 @@
|
||||
import { Extension } from '@tiptap/core'
|
||||
|
||||
import { BlockMath, InlineMath } from './extensions/index.js'
|
||||
import type { MathematicsOptions } from './types.js'
|
||||
|
||||
/**
|
||||
* Mathematics extension for Tiptap that provides both inline and block math support using KaTeX.
|
||||
* This extension combines the InlineMath and BlockMath extensions to provide a complete
|
||||
* mathematical expression solution for rich text editing. It supports LaTeX syntax,
|
||||
* custom rendering options, and interactive math nodes.
|
||||
*
|
||||
* @example
|
||||
* ```typescript
|
||||
* import { Editor } from '@tiptap/core'
|
||||
* import { Mathematics } from '@tiptap/extension-mathematics'
|
||||
* import { migrateMathStrings } from '@tiptap/extension-mathematics/utils'
|
||||
*
|
||||
* const editor = new Editor({
|
||||
* extensions: [
|
||||
* Mathematics.configure({
|
||||
* inlineOptions: {
|
||||
* onClick: (node, pos) => {
|
||||
* console.log('Inline math clicked:', node.attrs.latex)
|
||||
* }
|
||||
* },
|
||||
* blockOptions: {
|
||||
* onClick: (node, pos) => {
|
||||
* console.log('Block math clicked:', node.attrs.latex)
|
||||
* }
|
||||
* },
|
||||
* katexOptions: {
|
||||
* displayMode: false,
|
||||
* throwOnError: false,
|
||||
* macros: {
|
||||
* '\\RR': '\\mathbb{R}',
|
||||
* '\\ZZ': '\\mathbb{Z}'
|
||||
* }
|
||||
* }
|
||||
* })
|
||||
* ],
|
||||
* content: `
|
||||
* <p>Inline math: $E = mc^2$</p>
|
||||
* <div data-type="block-math" data-latex="\\sum_{i=1}^{n} x_i = X"></div>
|
||||
* `,
|
||||
* onCreate({ editor }) {
|
||||
* // Optional: Migrate existing math strings to math nodes
|
||||
* migrateMathStrings(editor)
|
||||
* }
|
||||
* })
|
||||
* ```
|
||||
*/
|
||||
export const Mathematics = Extension.create<MathematicsOptions>({
|
||||
name: 'Mathematics',
|
||||
|
||||
addOptions() {
|
||||
return {
|
||||
inlineOptions: undefined,
|
||||
blockOptions: undefined,
|
||||
katexOptions: undefined,
|
||||
}
|
||||
},
|
||||
|
||||
addExtensions() {
|
||||
return [
|
||||
BlockMath.configure({
|
||||
...this.options.blockOptions,
|
||||
katexOptions: this.options.katexOptions,
|
||||
}),
|
||||
InlineMath.configure({
|
||||
...this.options.inlineOptions,
|
||||
katexOptions: this.options.katexOptions,
|
||||
}),
|
||||
]
|
||||
},
|
||||
})
|
||||
|
||||
export default Mathematics
|
||||
Reference in New Issue
Block a user