语法高亮
Hugo使用Chroma作为其代码高亮器;它是用Go构建的,速度非常快。
配置语法高亮器
请参见 配置高亮。
生成语法高亮器CSS
如果您在站点配置中设置了 markup.highlight.noClasses=false
,则需要一个样式表。
您可以使用Hugo生成一个样式表:
hugo gen chromastyles --style=monokai > syntax.css
运行 hugo gen chromastyles -h
查看更多选项。请访问 https://xyproto.github.io/splash/docs/ 查看可用样式的图库。
高亮shortcode
高亮通过内置的 highlight
shortcode 来实现。它需要一个必需的参数来指定要高亮的编程语言,并且需要一个结束shortcode。
选项:
linenos
:配置行号。有效值为true
、false
、table
或inline
。如果在站点配置中已配置为开启状态,则false
将关闭行号显示。table
选项将生成适合复制粘贴的代码块。hl_lines
:指定要高亮的一组行号或行号范围。linenostart=199
:从编号 199 开始计数行号。anchorlinenos
:对行号设置锚点。有效值为true
或false
。lineanchors
:为行号设置锚点的前缀。将会在后面加上-
,例如,使用选项lineanchors=prefix
来链接到行号 1,将添加锚点prefix-1
到页面中。hl_inline
:在<code>
(内联HTML元素)标签内部进行高亮。有效值为true
或false
。code
标签将获得一个名为code-inline
的类名。
示例:高亮shortcode
{{< highlight go "linenos=table,hl_lines=8 15-17,linenostart=199" >}}
// ... 代码
{{< / highlight >}}
输出结果:
|
|
高亮Hugo/Go模板代码
要在页面中高亮Hugo/Go模板代码,请在双花括号的起始位置后添加 /*
,在闭合花括号的前面添加 */
。
{{</* myshortcode */>}}
输出结果:
{{< myshortcode >}}
高亮模板函数
请参见 Highlight。
代码区块中的高亮
代码区块中的高亮默认已启用。
```go {linenos=table,hl_lines=[8,"15-17"],linenostart=199}
// ... 代码
```
输出结果:
|
|
选项与 高亮shortcode 中的选项相同,包括 linenos=false
,不过请注意略有不同的Markdown属性语法。
Chroma支持的高亮语言列表
以下是Chroma支持的所有语言和它们的别名(在highlight
模板函数中使用的标识符或在代码区块中进行高亮时使用):
- ABAP
- abap
- ABNF
- abnf
- ActionScript
- as, actionscript
- ActionScript 3
- as3, actionscript3
- Ada
- ada, ada95, ada2005
- AL
- al
- Angular2
- ng2
- ANTLR
- antlr
- ApacheConf
- apacheconf, aconf, apache
- APL
- apl
- AppleScript
- applescript
- ArangoDB AQL
- aql
- Arduino
- arduino
- ArmAsm
- armasm
- AutoHotkey
- autohotkey, ahk
- AutoIt
- autoit
- Awk
- awk, gawk, mawk, nawk
- Ballerina
- ballerina
- Bash
- bash, sh, ksh, zsh, shell
- Bash Session
- bash-session, console, shell-session
- Batchfile
- bat, batch, dosbatch, winbatch
- BibTeX
- bib, bibtex
- Bicep
- bicep
- BlitzBasic
- blitzbasic, b3d, bplus
- BNF
- bnf
- BQN
- bqn
- Brainfuck
- brainfuck, bf
- C
- c
- C#
- csharp, c#
- C++
- cpp, c++
- Caddyfile
- caddyfile, caddy
- Caddyfile Directives
- caddyfile-directives, caddyfile-d, caddy-d
- Cap'n Proto
- capnp
- Cassandra CQL
- cassandra, cql
- Ceylon
- ceylon
- CFEngine3
- cfengine3, cf3
- cfstatement
- cfs
- ChaiScript
- chai, chaiscript
- Chapel
- chapel, chpl
- Cheetah
- cheetah, spitfire
- Clojure
- clojure, clj, edn
- CMake
- cmake
- COBOL
- cobol
- CoffeeScript
- coffee-script, coffeescript, coffee
- Common Lisp
- common-lisp, cl, lisp
- Coq
- coq
- Crystal
- cr, crystal
- CSS
- css
- CUE
- cue
- Cython
- cython, pyx, pyrex
- D
- d
- Dart
- dart
- Diff
- diff, udiff
- Django/Jinja
- django, jinja
- dns
- zone, bind
- Docker
- docker, dockerfile
- DTD
- dtd
- Dylan
- dylan
- EBNF
- ebnf
- Elixir
- elixir, ex, exs
- Elm
- elm
- EmacsLisp
- emacs, elisp, emacs-lisp
- Erlang
- erlang
- Factor
- factor
- Fennel
- fennel, fnl
- Fish
- fish, fishshell
- Forth
- forth
- Fortran
- fortran, f90
- FortranFixed
- fortranfixed
- FSharp
- fsharp
- GAS
- gas, asm
- GDScript
- gdscript, gd
- GDScript3
- gdscript3, gd3
- Genshi
- genshi, kid, xml+genshi, xml+kid
- Genshi HTML
- html+genshi, html+kid
- Genshi Text
- genshitext
- Gherkin
- cucumber, Cucumber, gherkin, Gherkin
- GLSL
- glsl
- Gnuplot
- gnuplot
- Go
- go, golang
- Go HTML Template
- go-html-template
- Go Template
- go-template
- Go Text Template
- go-text-template
- GraphQL
- graphql, graphqls, gql
- Groff
- groff, nroff, man
- Groovy
- groovy
- Handlebars
- handlebars, hbs
- Haskell
- haskell, hs
- Haxe
- hx, haxe, hxsl
- HCL
- hcl
- Hexdump
- hexdump
- HLB
- hlb
- HLSL
- hlsl
- HolyC
- holyc
- HTML
- html
- HTTP
- http
- Hy
- hylang
- Idris
- idris, idr
- Igor
- igor, igorpro
- INI
- ini, cfg, dosini
- Io
- io
- ISCdhcpd
- iscdhcpd
- J
- j
- Java
- java
- JavaScript
- js, javascript
- JSON
- json
- Julia
- julia, jl
- Jungle
- jungle
- Kotlin
- kotlin
- Lighttpd configuration file
- lighty, lighttpd
- LLVM
- llvm
- Lua
- lua
- Makefile
- make, makefile, mf, bsdmake
- Mako
- mako
- markdown
- md, mkd
- Mason
- mason
- Mathematica
- mathematica, mma, nb
- Matlab
- matlab
- mcfunction
- mcfunction
- Meson
- meson, meson.build
- Metal
- metal
- MiniZinc
- minizinc, MZN, mzn
- MLIR
- mlir
- Modula-2
- modula2, m2
- MonkeyC
- monkeyc
- MorrowindScript
- morrowind, mwscript
- Myghty
- myghty
- MySQL
- mysql, mariadb
- NASM
- nasm
- Natural
- natural
- Newspeak
- newspeak
- Nginx configuration file
- nginx
- Nim
- nim, nimrod
- Nix
- nixos, nix
- Objective-C
- objective-c, objectivec, obj-c, objc
- OCaml
- ocaml
- Octave
- octave
- Odin
- odin
- OnesEnterprise
- ones, onesenterprise, 1S, 1S:Enterprise
- OpenEdge ABL
- openedge, abl, progress, openedgeabl
- OpenSCAD
- openscad
- Org Mode
- org, orgmode
- PacmanConf
- pacmanconf
- Perl
- perl, pl
- PHP
- php, php3, php4, php5
- PHTML
- phtml
- Pig
- pig
- PkgConfig
- pkgconfig
- PL/pgSQL
- plpgsql
- plaintext
- text, plain, no-highlight
- Plutus Core
- plutus-core, plc
- Pony
- pony
- PostgreSQL SQL dialect
- postgresql, postgres
- PostScript
- postscript, postscr
- POVRay
- pov
- PowerQuery
- powerquery, pq
- PowerShell
- powershell, posh, ps1, psm1, psd1, pwsh
- Prolog
- prolog
- PromQL
- promql
- properties
- java-properties
- Protocol Buffer
- protobuf, proto
- PRQL
- prql
- PSL
- psl
- Puppet
- puppet
- Python
- python, py, sage, python3, py3
- Python 2
- python2, py2
- QBasic
- qbasic, basic
- QML
- qml, qbs
- R
- splus, s, r
- Racket
- racket, rkt
- Ragel
- ragel
- Raku
- perl6, pl6, raku
- react
- jsx, react
- ReasonML
- reason, reasonml
- reg
- registry
- reStructuredText
- rst, rest, restructuredtext
- Rexx
- rexx, arexx
- Ruby
- rb, ruby, duby
- Rust
- rust, rs
- SAS
- sas
- Sass
- sass
- Scala
- scala
- Scheme
- scheme, scm
- Scilab
- scilab
- SCSS
- scss
- Sed
- sed, gsed, ssed
- Sieve
- sieve
- Smali
- smali
- Smalltalk
- smalltalk, squeak, st
- Smarty
- smarty
- Snobol
- snobol
- Solidity
- sol, solidity
- SourcePawn
- sp
- SPARQL
- sparql
- SQL
- sql
- SquidConf
- squidconf, squid.conf, squid
- Standard ML
- sml
- stas
- Stylus
- stylus
- Svelte
- svelte
- Swift
- swift
- SYSTEMD
- systemd
- systemverilog
- systemverilog, sv
- TableGen
- tablegen
- Tal
- tal, uxntal
- TASM
- tasm
- Tcl
- tcl
- Tcsh
- tcsh, csh
- Termcap
- termcap
- Terminfo
- terminfo
- Terraform
- terraform, tf
- TeX
- tex, latex
- Thrift
- thrift
- TOML
- toml
- TradingView
- tradingview, tv
- Transact-SQL
- tsql, t-sql
- Turing
- turing
- Turtle
- turtle
- Twig
- twig
- TypeScript
- ts, tsx, typescript
- TypoScript
- typoscript
- TypoScriptCssData
- typoscriptcssdata
- TypoScriptHtmlData
- typoscripthtmldata
- V
- v, vlang
- V shell
- vsh, vshell
- Vala
- vala, vapi
- VB.net
- vb.net, vbnet
- verilog
- verilog, v
- VHDL
- vhdl
- VHS
- vhs, tape, cassette
- VimL
- vim
- vue
- vue, vuejs
- WDTE
- WebGPU Shading Language
- wgsl
- Whiley
- whiley
- XML
- xml
- Xorg
- xorg.conf
- YAML
- yaml
- YANG
- yang
- Z80 Assembly
- z80
- Zed
- zed
- Zig
- zig