在react中使用highlight.js將頁面上的代碼高亮的方法
更新時間:2022年01月06日 16:28:22 作者:留著鼻涕敲代碼
本文通過 highlight.js 庫實現(xiàn)對文章正文 HTML 中的代碼元素自動添加語法高亮,具有一定的參考價值,感興趣的可以了解一下
通過 highlight.js 庫實現(xiàn)對文章正文 HTML 中的代碼元素自動添加語法高亮,highlight.js官方文檔
下載highlight.js
npm i highlight.js
導(dǎo)入highlight.js
import hljs from 'highlight.js'
import 'highlight.js/styles/vs2015.css'
?
用highlight.js
? useEffect(() => {
? ? // 配置 highlight.js
? ? hljs.configure({
? ? ? // 忽略未經(jīng)轉(zhuǎn)義的 HTML 字符
? ? ? ignoreUnescapedHTML: true
? ? })
? ? // 獲取到內(nèi)容中所有的code標(biāo)簽
? ? 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({
? ? ? // 忽略未經(jīng)轉(zhuǎn)義的 HTML 字符
? ? ? ignoreUnescapedHTML: true
? ? })
? ? // 獲取到內(nèi)容中所有的code標(biāo)簽
? ? 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>
? )
}到此這篇關(guān)于在react中使用highlight.js將頁面上的代碼高亮的方法的文章就介紹到這了,更多相關(guān)react highlight.js代碼高亮內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
React數(shù)據(jù)傳遞之組件內(nèi)部通信的方法
這篇文章主要介紹了React數(shù)據(jù)傳遞之組件內(nèi)部通信的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12
React報錯信息之Expected?an?assignment?or?function?call?and?
這篇文章主要介紹了React報錯之Expected?an?assignment?or?function?call?and?instead?saw?an?expression,下面有兩個示例來展示錯誤是如何產(chǎn)生的,需要的朋友可以參考下2022-08-08

