防止标题被吞
背景
在Vuepress中,若一篇Markdown文章中有多个 # h1
标题,则第一个标题会消失,即使已经指定了文章标题
解决办法
通过Markdown it插件解决,在文章开头加入分割线 但是因为存在frontmatter(yaml)这种东西,处理原始内容不太方便。 所以,反向思考,因为要处理的是 h1
的问题,所以在 h1
前面加入分割线就行。
但是用
---
的话会和yaml冲突,所以用***
代码
export default (md) => {
const originalRender = md.render;
md.render = function (src, env) {
const regex = /^(# .+)/m;
const processedSrc = src.replace(regex, (match) => {
return `\n***\n${match}`;
});
return originalRender.call(md, processedSrc, env);
};
};