欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

在react中使用highlight.js将页面上的代码高亮的方法

程序员文章站 2022-03-04 14:50:21
通过 highlight.js 库实现对文章正文 html 中的代码元素自动添加语法高亮,highlight.js官方文档下载highlight.jsnpm i highlight.js导入highl...

通过 highlight.js 库实现对文章正文 html 中的代码元素自动添加语法高亮,highlight.js官方文档

下载highlight.js

npm i highlight.js

导入highlight.js

import hljs from 'highlight.js'
import 'highlight.js/styles/vs2015.css'
 
用highlight.js
  useeffect(() => {
    // 配置 highlight.js
    hljs.configure({
      // 忽略未经转义的 html 字符
      ignoreunescapedhtml: true
    })
    // 获取到内容中所有的code标签
    const codes = document.queryselectorall('pre code')
    codes.foreach((el) => {
      // 让code进行高亮
      hljs.highlightelement(el as htmlelement)
    })
  }, [])

实例代码

import hljs from 'highlight.js'
import 'highlight.js/styles/vs2015.css'
import { useeffect } from 'react'
export default function question () {
  useeffect(() => {
    // 配置 highlight.js
    hljs.configure({
      // 忽略未经转义的 html 字符
      ignoreunescapedhtml: true
    })
    // 获取到内容中所有的code标签
    const codes = document.queryselectorall('.dg-html pre code')
    codes.foreach((el) => {
      // 让code进行高亮
      hljs.highlightelement(el as htmlelement)
    })
  }, [])
  const content = `
    <pre>
      <code>console.log(abc)</code>
      <code>console.log(abc)</code>
    </pre>
    <h3>nihoa</h3>
    <pre>
      <code>console.log(abc);xxx.foreach(item=>{console.log(1)})</code>
    </pre>
    `

  return (
    <div classname="dg-html">
      question
      <div dangerouslysetinnerhtml={{ __html: content }} />
    </div>
  )
}

到此这篇关于在react中使用highlight.js将页面上的代码高亮的方法的文章就介绍到这了,更多相关react highlight.js代码高亮内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!