html语言怎么用(highlight.js的使用)
基本用法
在浏览器中使用
在网页上使用highlight.js的最小限度是链接到一个主题库并调用highlightAll:
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/default.min.css"> <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/highlight.min.js"></script> <script> hljs.highlightAll(); </script>自动检测语言找到并高亮显示<pre><code>标签内的代码 。如果自动检测不到 ,或者你更喜欢直接的 ,你可以在class属性中手动指定语言:
<pre><code class="language-html">...</code></pre>纯文本
使用plaintext来处理纯文本:
<pre><code class="language-plaintext">...</code></pre>忽略高亮
使用nohighlight来跳过代码高亮:
<pre><code class="nohighlight">...</code></pre>在Node.js中使用
// load the library and ALL languages const hljs = require(highlight.js); const html = hljs.highlightAuto(<h1>Hello World!</h1>).value一般只需要加载通用语言处理即可:
const hljs = require(highlight.js/lib/common);要使用特定语言高亮显示代码 ,请使用 highlight:
const html = hljs.highlight(<h1>Hello World!</h1>, {language: xml}).value更多使用请参考 API文档 。
语言支持
Highlight.js 支持 180 多种语言 。您可以在 SUPPORTED_LANGUAGES 中找到支持的语言 。
自定义
如果您需要对 Highlight.js 的初始化进行更多控制 ,可以使用 highlightElement 和 configure 函数 。这使您可以更好地控制要高亮显示的内容 。例如:
document.addEventListener(DOMContentLoaded, (event) => { document.querySelectorAll(pre code).forEach((el) => { hljs.highlightElement(el); }); });更多配置选项 。
自定义HTML
强烈建议 <pre><code> 对代码块进行包装 。因为这非常语义化 ,开箱即用 ,零污染 。也可以使用其他 HTML 元素 ,但您可能需要特别注意保留换行符 。
假设使用div进行包装:
<div class=code>...</div>那么其高亮脚本就需要如下处理:
// first, find all the div.code blocks document.querySelectorAll(div.code).forEach(el => { // then highlight each hljs.highlightElement(el); });在不使用<pre>的情况下 ,通过CSS中的white-space: pre也可以实现代码换行 ,如下:
div.code { white-space: pre; }在Vue.js中使用
下载 highlightjs/vue-plugin ,这是用 highlight.js 封装好的 vue 插件
<template> <highlightjs language="js" code="console.log(Hello World);" /> </template> <script> import highlight.js/lib/common; import hljsVuePlugin from "@highlightjs/vue-plugin"; export default { components: { highlightjs: hljsVuePlugin.component } } </script>在 Web Worker 中使用
如果要高亮显示的代码内容非常多 ,您可以使用 Web Worker 来处理
window.addEventListener(load, () => { const code = document.querySelector(#code); const worker = new Worker(worker.js); worker.onmessage = (event) => { code.innerHTML = event.data; } worker.postMessage(code.textContent); });在 worker.js 中:
worker.onmessage = (event) => { importScripts(<path>/highlight.min.js); const result = self.hljs.highlightAuto(event.data); postMessage(result.value); };加载highlight.js
首先 ,您可能会通过 npm 或 yarn 来获取 highlight.js 。
Node.js / require
// require the highlight.js library, including all languages const hljs = require(./highlight.js); const highlightedCode = hljs.highlightAuto(<span>Hello World!</span>).value一般只需要加载公用语言处理即可 。
const hljs = require(highlight.js/lib/common);当然也可以按需加载指定语言:
const hljs = require(highlight.js/lib/core); hljs.registerLanguage(xml, require(highlight.js/lib/languages/xml)); const highlightedCode = hljs.highlight(<span>Hello World!</span>, {language: xml}).valueES6 模块 / import
注意
您也可以直接从完全静态的 URL 引入,例如: ES6 模块 CDN 资源。
默认引入将加载全部语言:
import hljs from highlight.js;按需要引入指定语言:
import hljs from highlight.js/lib/core; import javascript from highlight.js/lib/languages/javascript; hljs.registerLanguage(javascript, javascript);指定引入 CSS 主题样式:
import hljs from highlight.js; import highlight.js/styles/github.css;获取highlight.js
highlight.js支持AMD和CommonJS规范 ,开箱即用 ,像通过RequireJS 或 Browserify获取,不需要做任何其他操作 ,当然您也可以使用r.js来构建:
r.js -o name=hljs paths.hljs=/path/to/highlight out=highlight.js通过 CDN 获取
cdnjs
普通JS
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/default.min.css"> <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/highlight.min.js"></script> <!-- and its easy to individually load additional languages --> <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/languages/go.min.js"></script>ES6 模块
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/dark.min.css"> <script type="module"> import hljs from https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/es/highlight.min.js; // and its easy to individually load additional languages import go from https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/es/languages/go.min.js; hljs.registerLanguage(go, go); </script>jsdelivr
普通JS
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.6.0/build/styles/default.min.css"> <script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.6.0/build/highlight.min.js"></script> <!-- and its easy to individually load additional languages --> <script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.6.0/build/languages/go.min.js"></script>ES6 模块
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.6.0/build/styles/default.min.css"> <script type="module"> import hljs from https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.6.0/build/es/highlight.min.js; // and its easy to individually load additional languages import go from https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.6.0/build/es/languages/go.min.js; hljs.registerLanguage(go, go); </script>unpkg
普通JS
<link rel="stylesheet" href="https://unpkg.com/@highlightjs/cdn-assets@11.6.0/styles/default.min.css"> <script src="https://unpkg.com/@highlightjs/cdn-assets@11.6.0/highlight.min.js"></script> <!-- and its easy to individually load additional languages --> <script src="https://unpkg.com/@highlightjs/cdn-assets@11.6.0/languages/go.min.js"></script>ES6 模块
<link rel="stylesheet" href="https://unpkg.com/@highlightjs/cdn-assets@11.6.0/styles/default.min.css"> <script type="module"> import hljs from https://unpkg.com/@highlightjs/cdn-assets@11.6.0/es/highlight.min.js; // and its easy to individually load & register additional languages import go from https://unpkg.com/@highlightjs/cdn-assets@11.6.0/es/languages/go.min.js; hljs.registerLanguage(go, go); </script>注意
CDN 托管的 highlight.min.js 可能不是最新版本 ,以致不能包含到所有语言
官网下载
下载地址:Getting highlight.js
下载页面可以快速生成自定义的单文件压缩包 ,其中仅包含您想要的语言 。
通过 NPM 安装
使用 NPM 或 Yarn 安装:
npm install highlight.js # or yarn add highlight.js或者您可以从源代码构建 NPM 包 。
从源代码构建
node tools/build.js -t node node tools/build.js -t browser :common node tools/build.js -t cdn :common环境要求
Highlight.js 适用于所有现代浏览器和当前支持的 Node.js 版本。
Node.js >= 12.x npm >= 6.x创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!