@edtr-io/plugin-text
Version:
58 lines (48 loc) • 1.22 kB
text/typescript
import { ValueJSON } from 'slate'
export const paragraphNode = 'paragraph'
export const orderedListNode = 'ordered-list'
export const unorderedListNode = 'unordered-list'
export const listItemNode = 'list-item'
export const listItemChildNode = 'list-item-child'
export const linkNode = '@splish-me/a'
export const colorMark = '@splish-me/color'
export const strongMark = '@splish-me/strong'
export const emphasizeMark = '@splish-me/em'
export const katexInlineNode = '@splish-me/katex-inline'
export const codeMark = 'code'
export const katexBlockNode = '@splish-me/katex-block'
export type HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6
export const createHeadingNode = (level: HeadingLevel) => {
return `@splish-me/h${level}`
}
export const defaultNode = paragraphNode
export const slateSchema = {
inlines: {
[katexInlineNode]: {
isVoid: true,
},
[linkNode]: {
text: /.+/,
},
},
blocks: {
[katexBlockNode]: {
isVoid: true,
},
},
}
export const emptyDocument: ValueJSON = {
document: {
nodes: [
{
object: 'block',
type: defaultNode,
nodes: [
{
object: 'text',
},
],
},
],
},
}