try 使用rehypeRewrite使一个类似#tag
的URL呈现的markdown编辑器MDEditor.以下是我目前所掌握的
const REG = /\B(\#[a-zA-Z]+\b)(?!;)/gi;
<MDEditor
style={{width: "100%", height: "100%"}}
minHeight={500}
value={value}
onChange={(event) => {
setValue(event || '');
}}
previewOptions={{
rehypePlugins: [
[
rehypeRewrite,
{
rewrite: (node : any, index: any, parent: any) => {
if (node.type === "element" && node.tagName === "p") {
let text = getCodeString(node.children);
if (REG.test(text)) {
node.children = [
{
type: 'link',
url: 'https://example.com',
children: [{type: 'text', value: text} ]
}];
}
}}
},
]],
}}
/>
正则表达式正确地匹配文本,但是 node 没有被替换为链接,它只是不呈现任何东西.
任何关于我可能做错什么的指导将不胜感激