JavaScript之Highlight.js语法高亮显示神器集成说明

31 篇文章 0 订阅
23 篇文章 0 订阅

JavaScript之Highlight.js语法高亮显示神器集成说明

1. highlight.js

1. 官网

官网: highlight.js (highlightjs.org)

npmjs: highlight.js - npm (npmjs.com)

2. what is highlight.js?

Highlight.js是一个用JavaScript编写的语法高亮器。它在浏览器和服务器上都能工作。它几乎可以处理任何标记,不依赖于任何框架,并且具有自动语言检测功能。

截止到2024-03-07,最新版本为: 11.9.0,且具有以下特性

  • 192种语言和496个主题

  • 自动语言检测

  • 适用于任何HTML标记

  • 零依赖项

  • 兼容任何JS框架

  • 支持Node.js和Deno

2. 基本使用

highlight.js可以以不同的方式使用,例如使用 CDN、自己托管捆绑包、作为 Vue 插件,作为 ES6 模块,带有 Node.js 和 Web Worker。

有关详细信息,请参阅我们在 GitHub 上的自述文件

1. 作为一个模块使用

Highlight.js可以与服务器上的 Node 一起使用。第一步是从 npm 安装包:

npm install highlight.js
# or
yarn add highlight.js

现在,可以使用 or 来使用该库。默认情况下,当您导入 主包,所有 192 种语言将自动加载。require``import

// Using require
const hljs = require('highlight.js');

// Using ES6 import syntax
import hljs from 'highlight.js';

但是,导入我们所有的语言会增加捆绑包的大小。如果您只需要几种语言, 您可以单独导入它们:

// Using require
const hljs = require('highlight.js/lib/core');

// Load any languages you need
hljs.registerLanguage('javascript', require('highlight.js/lib/languages/javascript'));
// Using ES6 import syntax
import hljs from 'highlight.js/lib/core';
import javascript from 'highlight.js/lib/languages/javascript';

// Then register the languages you need
hljs.registerLanguage('javascript', javascript);

最后,无论以何种方式导入库,都可以使用 or 函数突出显示代码:highlight``highlightAuto

const highlightedCode = hljs.highlight(
  '<span>Hello World!</span>',
  { language: 'xml' }
).value

有关详细信息,请参阅自述文件的“导入库”部分

2. 作为HTML标签使用

1. cdnjs

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>

<!-- and it's easy to individually load additional languages -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/go.min.js"></script>

<script>hljs.highlightAll();</script>

2. jsdelivr

<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.9.0/build/styles/default.min.css">
<script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.9.0/build/highlight.min.js"></script>

<!-- and it's easy to individually load additional languages -->
<script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.9.0/build/languages/go.min.js"></script>

<script>hljs.highlightAll();</script>

3. unpkg

<link rel="stylesheet" href="https://unpkg.com/@highlightjs/cdn-assets@11.9.0/styles/default.min.css">
<script src="https://unpkg.com/@highlightjs/cdn-assets@11.9.0/highlight.min.js"></script>

<!-- and it's easy to individually load additional languages -->
<script src="https://unpkg.com/@highlightjs/cdn-assets@11.9.0/languages/go.min.js"></script>

<script>hljs.highlightAll();</script>

4. Self hosted(自主管理)

<link rel="stylesheet" href="/path/to/styles/default.css">
<script src="/path/to/highlight.min.js"></script>

<script>hljs.highlightAll();</script>

这将查找并突出显示标签内的代码;它尝试检测语言 自然而然。如果自动检测不适合您,则可以在类中指定语言 属性:<pre><code>

<pre><code class="language-html">...</code></pre>

3. 支持的语言(190+)

github: highlight.js/SUPPORTED_LANGUAGES.md at main · highlightjs/highlight.js (github.com)

下表显示了 Highlight.js 支持的语言(以及相应的类/别名)的完整列表。下面列出的语言是第三方语言,未与核心库捆绑在一起。您可以通过以下链接找到他们的存储库。

**注意:**可用的语言将取决于你构建库的方式或将库包含在应用中的方式。例如,我们默认的缩小 Web 构建仅包括 ~40 种流行语言。有关如何加载其他/特定语言的示例,请参阅自述文件中的获取库导入库

Language(语言)Aliases(别名)Package(包)
1C1c
4D4dhighlightjs-4d
ABAPsap-abap, abaphighlight-sap-abap
ABNFabnf
Access logsaccesslog
Adaada
Apexapexhighlightjs-apex
Arduino (C++ w/Arduino libs)arduino, ino
ARM assemblerarmasm, arm
AVR assembleravrasm
ActionScriptactionscript, as
Alan IFalan, ihighlightjs-alan
Alanlnhighlightjs-alan
AngelScriptangelscript, asc
Apacheapache, apacheconf
AppleScriptapplescript, osascript
Arcadearcade
AsciiDocasciidoc, adoc
AspectJaspectj
AutoHotkeyautohotkey
AutoItautoit
Awkawk, mawk, nawk, gawk
Ballerinaballerina, balhighlightjs-ballerina
Bashbash, sh, zsh
Basicbasic
BBCodebbcodehighlightjs-bbcode
Blade (Laravel)bladehighlightjs-blade
BNFbnf
BQNbqnhighlightjs-bqn
Brainfuckbrainfuck, bf
C#csharp, cs
Cc, h
C++cpp, hpp, cc, hh, c++, h++, cxx, hxx
C/ALcal
C3c3highlightjs-c3
Cache Object Scriptcos, cls
Candidcandid, didhighlightjs-motoko
CMakecmake, cmake.in
COBOLcobol, standard-cobolhighlightjs-cobol
CODEOWNERScodeownershighlightjs-codeowners
Coqcoq
CSPcsp
CSScss
Cap’n Protocapnproto, capnp
Chaoschaos, kaoshighlightjs-chaos
Chapelchapel, chplhighlightjs-chapel
Cisco CLIciscohighlightjs-cisco-cli
Clojureclojure, clj
CoffeeScriptcoffeescript, coffee, cson, iced
CpcdosC+cpchighlightjs-cpcdos
Crmshcrmsh, crm, pcmk
Crystalcrystal, cr
cURLcurlhighlightjs-curl
Cypher (Neo4j)cypherhighlightjs-cypher
Dd
Dafnydafnyhighlightjs-dafny
Dartdart
Delphidpr, dfm, pas, pascal
Diffdiff, patch
Djangodjango, jinja
DNS Zone filedns, zone, bind
Dockerfiledockerfile, docker
DOSdos, bat, cmd
dsconfigdsconfig
DTS (Device Tree)dts
Dustdust, dst
Dylandylanhighlightjs-dylan
EBNFebnf
Elixirelixir
Elmelm
Erlangerlang, erl
Excelexcel, xls, xlsx
Extemporeextempore, xtlang, xtmhighlightjs-xtlang
F#fsharp, fs, fsx, fsi, fsscript
FIXfix
Flixflixhighlightjs-flix
Fortranfortran, f90, f95
FunCfunchighlightjs-func
G-Codegcode, nc
Gamsgams, gms
GAUSSgauss, gss
GDScriptgodot, gdscripthighlightjs-gdscript
Gherkingherkin
Glimmer and EmberJShbs, glimmer, html.hbs, html.handlebars, htmlbarshighlightjs-glimmer
GN for Ninjagn, gnihighlightjs-GN
Gogo, golang
Grammatical Frameworkgfhighlightjs-gf
Gologolo, gololang
Gradlegradle
GraphQLgraphql
Groovygroovy
GSQLgsqlhighlightjs-gsql
HTML, XMLxml, html, xhtml, rss, atom, xjb, xsd, xsl, plist, svg
HTTPhttp, https
Hamlhaml
Handlebarshandlebars, hbs, html.hbs, html.handlebars
Haskellhaskell, hs
Haxehaxe, hx
High-level shader languagehlslhighlightjs-hlsl
Hyhy, hylang
Ini, TOMLini, toml
Inform7inform7, i7
IRPF90irpf90
Iptablesiptableshighlightjs-iptables
JSONjson
Javajava, jsp
JavaScriptjavascript, js, jsx
Joliejolie, iol, olhighlightjs-jolie
Juliajulia, jl
Julia REPLjulia-repl
Kotlinkotlin, kt
Langhighlightjs-lang
LaTeXtex
Leafleaf
Leanleanhighlightjs-lean
Lassolasso, ls, lassoscript
Lessless
LDIFldif
Lisplisp
LiveCode Serverlivecodeserver
LiveScriptlivescript, ls
LookMLlookmlhighlightjs-lookml
Lualua
Luauluauhighlightjs-luau
Macaulay2macaulay2highlightjs-macaulay2
Makefilemakefile, mk, mak, make
Markdownmarkdown, md, mkdown, mkd
Mathematicamathematica, mma, wl
Matlabmatlab
Maximamaxima
Maya Embedded Languagemel
Mercurymercury
MIPS Assemblermips, mipsasm
Mintminthighlightjs-mint
mIRC Scripting Languagemirc, mrchighlightjs-mirc
Mizarmizar
MKBmkbhighlightjs-mkb
MLIRmlirhighlightjs-mlir
Mojoliciousmojolicious
Monkeymonkey
Moonscriptmoonscript, moon
Motokomotoko, mohighlightjs-motoko
N1QLn1ql
NSISnsis
Neverneverhighlightjs-never
Nginxnginx, nginxconf
Nimnim, nimrod
Nixnix
Oakoakhighlightjs-oak
Object Constraint Languageoclhighlightjs-ocl
OCamlocaml, ml
Objective Cobjectivec, mm, objc, obj-c, obj-c++, objective-c++
OpenGL Shading Languageglsl
OpenSCADopenscad, scad
Oracle Rules Languageruleslanguage
Oxygeneoxygene
PFpf, pf.conf
PHPphp
Papyruspapyrus, pschighlightjs-papyrus
Parser3parser3
Perlperl, pl, pm
Pine Scriptpine, pinescripthighlightjs-pine
Plaintextplaintext, txt, text
Ponypony
PostgreSQL & PL/pgSQLpgsql, postgres, postgresql
PowerShellpowershell, ps, ps1
Processingprocessing
Prologprolog
Propertiesproperties
Protocol Buffersproto, protobuf
Puppetpuppet, pp
Pythonpython, py, gyp
Python profiler resultsprofile
Python REPLpython-repl, pycon
Q#qsharphighlightjs-qsharp
Qk, kdb
QMLqml
Rr
Razor CSHTMLcshtml, razor, razor-cshtmlhighlightjs-cshtml-razor
ReasonMLreasonml, re
Rebol & Redredbol, rebol, red, red-systemhighlightjs-redbol
RenderMan RIBrib
RenderMan RSLrsl
ReScriptrescript, reshighlightjs-rescript
RiScriptrisc, riscripthighlightjs-riscript
RISC-V Assemblyriscv, riscvasmhighlightjs-riscvasm
Roboconfgraph, instances
Robot Frameworkrobot, rfhighlightjs-robot
RPM spec filesrpm-specfile, rpm, spec, rpm-spec, specfilehighlightjs-rpm-specfile
Rubyruby, rb, gemspec, podspec, thor, irb
Rustrust, rs
RVT Scriptrvt, rvt-scripthighlightjs-rvt-script
SASSAS, sas
SCSSscss
SQLsql
STEP Part 21p21, step, stp
Scalascala
Schemescheme
Scilabscilab, sci
SFZsfzhighlightjs-sfz
Shape Expressionsshexchighlightjs-shexc
Shellshell, console
Smalismali
Smalltalksmalltalk, st
SMLsml, ml
Soliditysolidity, solhighlightjs-solidity
Splunk SPLsplhighlightjs-spl
Stanstan, stanfuncs
Statastata
Structured Textiecst, scl, stl, structured-texthighlightjs-structured-text
Stylusstylus, styl
SubUnitsubunit
Supercollidersupercollider, schighlightjs-supercollider
Sveltesveltehighlightjs-svelte
Swiftswift
Tcltcl, tk
Terraform (HCL)terraform, tf, hclhighlightjs-terraform
Test Anything Protocoltap
Thriftthrift
Toittoittoit-highlight
TPtp
Transact-SQLtsqlhighlightjs-tsql
Twigtwig, craftcms
TypeScripttypescript, ts, tsx, mts, cts
Unicorn Rails logunicorn-rails-loghighlightjs-unicorn-rails-log
VB.Netvbnet, vb
VBAvbahighlightjs-vba
VBScriptvbscript, vbs
VHDLvhdl
Valavala
Verilogverilog, v
Vim Scriptvim
WGSLwgslhighlightjs-wgsl
X#xsharp, xs, prghighlightjs-xsharp
X++axapta, x++
x86 Assemblyx86asm
x86 Assembly (AT&T)x86asmatthighlightjs-x86asmatt
XLxl, tao
XQueryxquery, xpath, xq, xqm
YAMLyml, yaml
ZenScriptzenscript, zshighlightjs-zenscript
Zephirzephir, zep
Zigzighighlightjs-zig

Alias Overlap(别名重叠)

如果您同时使用这些语言中的任何一种,请务必 使用全名而不是别名以避免任何歧义。

LanguageOverlap()
SMLml
OCamlml
Lassols
  • 21
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: highlight.js 是一个用于网页中代码高亮显示的库。如果您认为默认样式不好看,您可以通过自定义 CSS 来更改样式。您还可以在 highlight.js 的官网上下载其他预定义样式进行使用。 ### 回答2: highlight.js是一个用于在网页中实现代码高亮的工具,它提供了很多内置的代码样式,但是有些人可能认为它提供的样式不够好看。高亮代码样式好不好看,可能是因为个人审美差异或特定需求的差异而有所不同。 首先,highlight.js提供了很多内置的代码样式,覆盖了多种编程语言和主题。每个样式都经过精心设计,以凸显代码的关键部分。然而,这些样式可能不符合某些人的审美标准。某些人可能喜欢更加简洁和现代化的样式,而highlight.js提供的样式可能更注重功能而不是外观。 其次,代码高亮旨在提高代码的可读性和理解度,而不仅仅是外观上的吸引力。因此,一些样式可能更加注重强调代码关键部分的可用性,而不是注重外观的美观性。这可能解释了为什么有些人可能认为highlight.js提供的样式不那么好看。 最后,虽然highlight.js提供了很多内置的样式,但用户也可以自定义样式,以满足个人或特定需求。用户可以通过修改CSS文件或使用定制的样式生成器来改变代码高亮的外观。这使得highlight.js具有很大的灵活性和可定制性,可以满足用户对代码样式的不同审美偏好。 总结来说,highlight.js高亮代码样式好不好看,是主观而个人化的问题。虽然一些人可能认为其提供的样式不够好看,但高亮代码样式的评价应该更注重其在提高代码可读性和理解上的效果。同时,highlight.js也提供了自定义样式的功能,使用户可以根据自己的偏好进行调整。 ### 回答3: highlight.js 是一个用于给网页中的代码进行语法高亮的开源工具。它支持多种编程语言高亮显示,包括但不限于JavaScript、HTML、CSS、Python等。 不过,有些人认为 highlight.js 的代码样式不够好看。他们可能认为高亮的颜色不够鲜艳,或者文本字体不够清晰。这样的评价是主观的,因为每个人对美观的定义都有所不同。 如果你使用 highlight.js,而又不满意其默认样式,你可以自定义代码的外观。highlight.js 提供了灵活的API,允许你修改颜色、字体、背景等,以使代码更符合你的审美标准。 另外,如果你对 highlight.js 的默认样式不满意,也可以选择其他类似的代码高亮工具,比如 Prism、Prettify 等。它们提供了更多样式可选,满足了不同用户的需求。 总之,每个人对于代码样式的喜好都不同。对于那些认为 highlight.js高亮样式不好看的人来说,他们可以通过自定义代码的外观或选择其他工具来解决他们的问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值