渲染 Markdown 文档

渲染 Markdown 文档

1. marked

  • 安装

    npm install marked --save
  • 使用

    import marked from 'marked';
    var html = marked('# h1');

    这时候 html 不能直接用在 React 组件中:

    <div>
        {html}
    </div>

    但可以:

    document.getElementById('content').innerHTML = marked('<h1>dasda</h1>');

    如果想在 React 中使用,需要使用 dangerouslySetInnerHTML 属性。

    const Md = ({ string }) => {
        return (
            <div
                dangerouslySetInnerHTML={{
                    __html: marked('<h1>string</h1>')
                }}
            >
            </div>
        )
    }

    上面的步骤只是把 Markdown 文档解析为了 HTML,并将其插入了 DOM。但这样并不够,我们还需要为其添加样式。

  • 样式

    • hightlight.js

      npm install hightlight.js --save

      导入并使用高亮插件:

      import hljs frorm 'hightlight.js';
      marked.setOptions({
      renderer: new marked.Renderer(),
      gfm: true,
      tables: true,
      breaks: false,
      pedantic: false,
      sanitize: false,
      smartLists: true,
      smartypants: false,
      xhtml: false,
      highlight: (code) =>  hljs.highlightAuto(code).value // 这段代码
      });

      这一步 highlight.js 插件会自动检测编程语言,然后给它们加上不同的 class。剩下的一步就是将 CSS 文件引入,可以使用 CDN 或者其他。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值