Loading...
Files
components/demo.tsx
'use client';
import * as React from 'react';
import { Plate, usePlateEditor } from 'platejs/react';
import { EditorKit } from '@/components/editor/editor-kit';
import { Editor, EditorContainer } from '@/components/ui/editor';
import { DEMO_VALUES } from './values/demo-values';
export default function Demo({ id }: { id: string }) {
const editor = usePlateEditor({
plugins: EditorKit,
value: DEMO_VALUES[id],
});
return (
<Plate editor={editor}>
<EditorContainer variant="demo">
<Editor />
</EditorContainer>
</Plate>
);
}
Kit Usage
Installation
The fastest way to add equation functionality is with the MathKit
, which includes pre-configured EquationPlugin
and InlineEquationPlugin
with Plate UI components.
'use client';
import { EquationPlugin, InlineEquationPlugin } from '@platejs/math/react';
import {
EquationElement,
InlineEquationElement,
} from '@/components/ui/equation-node';
export const MathKit = [
InlineEquationPlugin.withComponent(InlineEquationElement),
EquationPlugin.withComponent(EquationElement),
];
EquationElement
: Renders block equation elements.InlineEquationElement
: Renders inline equation elements.
Add Kit
Add the kit to your plugins:
import { createPlateEditor } from 'platejs/react';
import { MathKit } from '@/components/editor/plugins/math-kit';
const editor = createPlateEditor({
plugins: [
// ...otherPlugins,
...MathKit,
],
});
Manual Usage
Installation
pnpm add @platejs/math
Add Plugins
Include the equation plugins in your Plate plugins array when creating the editor.
import { EquationPlugin, InlineEquationPlugin } from '@platejs/math/react';
import { createPlateEditor } from 'platejs/react';
const editor = createPlateEditor({
plugins: [
// ...otherPlugins,
EquationPlugin,
InlineEquationPlugin,
],
});
Configure Plugins
Configure the plugins with custom components to render equation elements.
import { EquationPlugin, InlineEquationPlugin } from '@platejs/math/react';
import { createPlateEditor } from 'platejs/react';
import { EquationElement, InlineEquationElement } from '@/components/ui/equation-node';
const editor = createPlateEditor({
plugins: [
// ...otherPlugins,
EquationPlugin.withComponent(EquationElement),
InlineEquationPlugin.withComponent(InlineEquationElement),
],
});
withComponent
: AssignsEquationElement
to render block equations andInlineEquationElement
to render inline equations.
Add Toolbar Button
You can add EquationToolbarButton
to your Toolbar to insert equations.
Plate Plus
- Mark text as equation from the toolbar
- Insert equation from slash command
- Beautifully crafted UI
Plugins
EquationPlugin
Plugin for block equation elements.
InlineEquationPlugin
Plugin for inline equation elements.
Transforms
tf.insert.equation
tf.insert.inlineEquation
Inserts an inline equation.
Types
TEquationElement
interface TEquationElement extends TElement {
texExpression: string;
}