Подсветка синтаксиса
Хьюго использует Chroma в качестве подсветки кода; он построен на Go и действительно очень быстр - и по наиболее важным частям совместим с Pygments, который мы использовали раньше.
Настройка выделения синтаксиса
Смотрите настройка выделения.
Генерация синтаксиса подсветки CSS
Если Вы работаете с pygmentsUseClasses=true
в конфигурации Вашего сайта, Вам понадобится таблица стилей.
Вы можете создать ее с помощью Hugo:
hugo gen chromastyles --style=monokai > syntax.css
Запустите hugo gen chromastyles -h
для получения дополнительных опций. Смотрите https://xyproto.github.io/splash/docs/ для галереи доступных стилей.
Подсветка шорткода
Подсветка осуществляется с помощью встроенного шорткода highlight
. highlight
принимает ровно один обязательный параметр для выделения языка программирования и требует закрывающего шорткода. Обратите внимание, что highlight
не используется для выделения javascript на стороне клиента.
Параметры:
linenos
: настроить номера строк. Допустимые значения:true
,false
,table
илиinline
.false
отключит номера строк, если он настроен для включения в конфигурации сайта.table
предоставит блоки кода, удобные для копирования и вставки.hl_lines
: перечисляет набор номеров строк или диапазонов номеров строк, которые необходимо выделить.linenostart=199
: начинает отсчет номеров строк с 199.anchorlinenos
: Настроить якоря для номеров строк. Допустимые значения:true
илиfalse
;lineanchors
: Настройте префикс для якорей в номерах строк. Будет иметь суффикс-
, поэтому ссылка на строку номер 1 с опциейlineanchors=prefix
добавляет к странице привязкуprefix-1
.
Пример: Подсветка шорткода
{{< highlight go "linenos=table,hl_lines=8 15-17,linenostart=199" >}}
// ... code
{{< / highlight >}}
Дает следующее:
|
|
Подсветка шаблона функции
Смотрите подсветка.
Подсветка в ограничениях кода
По умолчанию выделение в границах кода включено.
```go {linenos=table,hl_lines=[8,"15-17"],linenostart=199}
// ... code
```
Дает следующее:
|
|
Обратите внимание, что только Goldmark поддерживает передачу атрибутов, таких как hl_lines
, и важно, чтобы он не содержал пробелов. Смотрите goldmark-highlighting для получения дополнительной информации.
Параметры такие же, как и в highlighting shortcode, включая linenos=false
, но обратите внимание на немного другой синтаксис атрибута Markdown.
Список языков выделения цветности
Полный список лексеров Chroma и их псевдонимов (который является идентификатором, используемым в функции шаблона highlight
или при выделении в ограждениях кода):
- ABAP
- ABAP, abap
- ABNF
- abnf
- ANTLR
- antlr
- APL
- apl
- ActionScript
- actionscript, as
- ActionScript 3
- actionscript3, as, as3
- Ada
- ada, ada2005, ada95, adb, ads
- Angular2
- ng2
- ApacheConf
- aconf, apache, apacheconf, conf, htaccess
- AppleScript
- applescript
- Arduino
- arduino, ino
- Awk
- awk, gawk, mawk, nawk
- BNF
- bnf
- Ballerina
- bal, ballerina
- Base Makefile
- *, bsdmake, mak, make, makefile, mf, mk
- Bash
- bash, bash_*, bashrc, ebuild, eclass, env, exheres-0, exlib, ksh, sh, shell, zsh, zshrc
- Batchfile
- bat, batch, cmd, dosbatch, winbatch
- BibTeX
- bib, bibtex
- BlitzBasic
- b3d, bb, blitzbasic, bplus, decls
- Brainfuck
- b, bf, brainfuck
- C
- c, h, idc
- C#
- c#, cs, csharp
- C++
- C, CPP, H, c++, cc, cp, cpp, cxx, h++, hh, hpp, hxx
- CFEngine3
- cf, cf3, cfengine3
- CMake
- cmake, txt
- COBOL
- COB, CPY, cob, cobol, cpy
- CSS
- css
- Caddyfile
- caddy, caddyfile
- Caddyfile Directives
- caddy-d, caddyfile-d, caddyfile-directives
- Cap'n Proto
- capnp
- Cassandra CQL
- cassandra, cql
- Ceylon
- ceylon
- ChaiScript
- chai, chaiscript
- Cheetah
- cheetah, spitfire, spt, tmpl
- Clojure
- clj, clojure
- CoffeeScript
- coffee, coffee-script, coffeescript
- Common Lisp
- cl, common-lisp, lisp
- Coq
- coq, v
- Crystal
- cr, crystal
- Cython
- cython, pxd, pxi, pyrex, pyx
- D
- d, di
- DTD
- dtd
- Dart
- dart
- Diff
- diff, patch, udiff
- Django/Jinja
- django, jinja
- Docker
- docker, dockerfile
- EBNF
- ebnf
- Elixir
- elixir, ex, exs
- Elm
- elm
- EmacsLisp
- el, elisp, emacs, emacs-lisp
- Erlang
- erl, erlang, es, escript, hrl
- FSharp
- fs, fsharp, fsi
- Factor
- factor
- Fish
- fish, fishshell, load
- Forth
- forth, frt, fs, fth
- Fortran
- F03, F90, f03, f90, fortran
- GAS
- S, asm, gas, s
- GDScript
- gd, gdscript
- GLSL
- frag, geo, glsl, vert
- Genshi
- genshi, kid, xml+genshi, xml+kid
- Genshi HTML
- html+genshi, html+kid
- Genshi Text
- genshitext
- Gherkin
- Cucumber, FEATURE, Gherkin, cucumber, feature, gherkin
- Gnuplot
- gnuplot, plot, plt
- Go
- go, golang
- Go HTML Template
- go-html-template
- Go Text Template
- go-text-template
- GraphQL
- gql, graphql, graphqls
- Groovy
- gradle, groovy
- HCL
- hcl
- HLB
- hlb
- HTML
- htm, html, xhtml, xslt
- HTTP
- http
- Handlebars
- handlebars
- Haskell
- haskell, hs
- Haxe
- haxe, hx, hxsl
- Hexdump
- hexdump
- Hy
- hy, hylang
- INI
- cfg, dosini, editorconfig, gitconfig, inf, ini
- Idris
- idr, idris
- Igor
- igor, igorpro, ipf
- Io
- io
- J
- ijs, j
- JSON
- json
- Java
- java
- JavaScript
- javascript, js, jsm
- Julia
- jl, julia
- Jungle
- jungle
- Kotlin
- kotlin, kt
- LLVM
- ll, llvm
- Lighttpd configuration file
- lighttpd, lighty
- Lua
- lua, wlua
- MLIR
- mlir
- Mako
- mako, mao
- Mason
- m, mason, mc, mhtml, mi
- Mathematica
- cdf, ma, mathematica, mma, nb, nbp
- Matlab
- m, matlab
- MiniZinc
- MZN, dzn, fzn, minizinc, mzn
- Modula-2
- def, m2, mod, modula2
- MonkeyC
- mc, monkeyc
- MorrowindScript
- morrowind, mwscript
- MySQL
- mysql, sql
- Myghty
- myghty, myt
- NASM
- ASM, asm, nasm
- Newspeak
- newspeak, ns2
- Nginx configuration file
- conf, nginx
- Nim
- nim, nimrod
- Nix
- nix, nixos
- OCaml
- ml, mli, mll, mly, ocaml
- Objective-C
- h, m, obj-c, objc, objective-c, objectivec
- Octave
- m, octave
- OpenSCAD
- openscad, scad
- Org Mode
- org, orgmode
- PHP
- inc, php, php3, php4, php5, php[345]
- PHTML
- phtml
- PL/pgSQL
- plpgsql
- POVRay
- inc, pov
- PacmanConf
- conf, pacmanconf
- Perl
- perl, pl, pm, t
- Pig
- pig
- PkgConfig
- pc, pkgconfig
- Pony
- pony
- PostScript
- eps, postscr, postscript, ps
- PostgreSQL SQL dialect
- postgres, postgresql
- PowerShell
- posh, powershell, ps1, psm1
- Prolog
- ecl, pl, pro, prolog
- PromQL
- promql
- Protocol Buffer
- proto, protobuf
- Puppet
- pp, puppet
- Python
- py, python, pyw, sage, sc, tac
- Python 3
- py3, python3
- QBasic
- BAS, bas, basic, qbasic
- R
- R, Renviron, Rhistory, Rprofile, S, r, s, splus
- Racket
- racket, rkt, rktd, rktl
- Ragel
- ragel
- ReasonML
- re, reason, reasonml, rei
- Rexx
- arexx, rex, rexx, rx
- Ruby
- duby, gemspec, rake, rb, rbw, rbx, ruby
- Rust
- in, rs, rust
- SAS
- SAS, sas
- SCSS
- scss
- SPARQL
- rq, sparql
- SQL
- sql
- SYSTEMD
- service, systemd
- Sass
- sass
- Scala
- scala
- Scheme
- scheme, scm, ss
- Scilab
- sce, sci, scilab, tst
- Smalltalk
- smalltalk, squeak, st
- Smarty
- smarty, tpl
- Snobol
- snobol
- Solidity
- sol, solidity
- SquidConf
- conf, squid, squid.conf, squidconf
- Standard ML
- fun, sig, sml
- Stylus
- styl, stylus
- Swift
- swift
- TASM
- ASM, asm, tasm
- TOML
- toml
- TableGen
- tablegen, td
- Tcl
- rvt, tcl
- Tcsh
- csh, tcsh
- TeX
- aux, latex, tex, toc
- Termcap
- src, termcap
- Terminfo
- src, terminfo
- Terraform
- terraform, tf
- Thrift
- thrift
- TradingView
- tradingview, tv
- Transact-SQL
- t-sql, tsql
- Turing
- tu, turing
- Turtle
- ttl, turtle
- Twig
- twig
- TypeScript
- ts, tsx, typescript
- TypoScript
- ts, typoscript
- TypoScriptCssData
- typoscriptcssdata
- TypoScriptHtmlData
- typoscripthtmldata
- VB.net
- bas, vb, vb.net, vbnet
- VHDL
- vhd, vhdl
- VimL
- exrc, gvimrc, vim, vimrc
- WDTE
- wdte
- XML
- rss, svg, wsdl, wsf, xml, xsd, xsl, xslt
- Xorg
- conf, xorg.conf
- YAML
- yaml, yml
- YANG
- yang
- Zig
- zig
- cfstatement
- cfs
- markdown
- markdown, md, mkd
- plaintext
- no-highlight, plain, text, txt
- reStructuredText
- rest, restructuredtext, rst
- react
- jsx, react
- reg
- reg, registry
- systemverilog
- sv, svh, systemverilog
- verilog
- v, verilog
- vue
- vue, vuejs