fix: fix preview html meta issue.

This commit is contained in:
jaywcjlove 2022-10-30 02:14:38 +08:00
parent 75fece7aab
commit cb704eed88
2 changed files with 19 additions and 10 deletions

View File

@ -53,12 +53,12 @@ export function create(str = '', options = {}) {
});
// 放在 rehypeDocument 前面
dt.unshift(rehypeRaw);
dt.unshift(rehypePreviewHTML);
return dt;
}
return plugins;
},
rewrite: (node, index, parent) => {
rehypePreviewHTML(node, parent);
rehypeTitle(node, options.filename);
homeCardIcons(node, parent, options.isHome);
tooltips(node, index, parent);

View File

@ -1,13 +1,22 @@
import { visit } from 'unist-util-visit';
import { getCodeString } from 'rehype-rewrite';
import { getVNode } from './getSVGNode.mjs';
export function rehypePreviewHTML(node, parent) {
if (node.type === 'element' && node.tagName === 'pre' && node.properties?.className?.includes('language-html')) {
export function rehypePreviewHTML() {
return (tree) => {
visit(tree, (node, index, parent) => {
if (node.type === 'element' && node.tagName === 'pre') {
const child = node.children[0];
if (child?.tagName === 'code' && child.data?.meta === 'preview') {
const code = getCodeString(node.children);
if (
child.properties?.className?.includes('language-html') &&
child?.tagName === 'code' &&
child.data?.meta === 'preview'
) {
const code = getCodeString(child.children);
const vnode = getVNode(code || '');
node.children = vnode;
}
}
});
};
}