如何使用@milkdown/preset-gfm 解析和序列化 nodejs 中的降价代码

问题描述 投票:0回答:0

我正在使用 yjs 和 milkdown 构建一个协作式 markdown 编辑器,我想将文档存储在磁盘上,而不是像 yjs-websocket 那样存储在数据库中。我可以用通用标记来做,但语法有限。

我的最终目标是拥有这样的东西

import remarkGFM from 'remark-gfm';
import { ParserState, SerializerState } from '@milkdown/transformer';
import { schema, gfm } from '@milkdown/preset-gfm';
import * as Y from 'yjs';
import { prosemirrorToYDoc, yDocToProsemirror } from 'y-prosemirror';
import { Schema } from '@milkdown/prose/model';

/** Build Schema?? */
const S = new Schema({
 nodes: {},
 marks: {}
});

const remark = remarkGFM() as import('unified').Transformer<
 import('mdast').Root,
 import('mdast').Root
>;
/** Build a processor?? */
const parser = ParserState.create(S, remark);
const serializer = SerializerState.create(schema, remark);

export function CommonMarkToString(doc: Y.Doc) {
 const str = serializer(yDocToProsemirror(schema, doc));
 return str;
}

export function CommonMarkToDoc(value: string) {
 return prosemirrorToYDoc(parser(value));
}

但是很明显,上面的代码是错误的。我不知道我这样做是否正确。

markdown github-flavored-markdown prose-mirror
© www.soinside.com 2019 - 2024. All rights reserved.