通过 marked 渲染 markdown 为富文本格式,并设置样式、代码高亮

最近,将博客的文章编辑器从富文本改为了 markdown 编辑器,为了最终渲染的效果,需完成富文本的转化。

前端渲染

我们可以通过 marked 和 markdown-it 等库,把markdown 为 html 文本。

如使用 marked 转换 markdown 为 html:

const renderer = new marked.Renderer()

const value = '某段markdown文本'

var renderer = new marked.Renderer()
var htmlStr = marked(value, {
  breaks: true,
  headerIds: false,
  renderer: renderer,
})

富文本样式配置

通过以上方式,虽然解析了 markdown 为富文本,但没有配套样式。可以在一些文档项目中把 css 部分拿来使用。

博客之前用的是 quill 这个富文本编辑器,所以沿用了 quill 的样式。

<div class="post-content ql-snow">
    <div class="ql-editor">
        <!-- 渲染富文本 html 代码 -->
    </div>
</div>

代码高亮

使用 highlight 进行代码高亮。比如在 marked 的 highlight 属性传入函数,处理需要高亮的富文本代码即可。

marked.parse(post.content, {
    breaks: true,
    headerIds: false,
    highlight(code, lang) {
        return hljs.highlight(code, { language: lang }).value;
    },
    renderer: renderer,
  });
};
本文收录于专栏
一些博客建设的记录
收集一些好用的前端开源库,主要是 npm 包