| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- import { Block, Document, Text, Value } from 'slate';
- const SCHEMA = {
- blocks: {
- paragraph: 'paragraph',
- codeblock: 'code_block',
- codeline: 'code_line',
- },
- inlines: {},
- marks: {},
- };
- export const makeFragment = (text: string, syntax?: string) => {
- const lines = text.split('\n').map(line =>
- Block.create({
- type: 'code_line',
- nodes: [Text.create(line)],
- })
- );
- const block = Block.create({
- data: {
- syntax,
- },
- type: 'code_block',
- nodes: lines,
- });
- return Document.create({
- nodes: [block],
- });
- };
- export const makeValue = (text: string, syntax?: string) => {
- const fragment = makeFragment(text, syntax);
- return Value.create({
- document: fragment,
- SCHEMA,
- });
- };
|