add Forgejo Syntax Highlight

tengel 2024-09-04 10:00:20 -05:00
parent c665fd0a5e
commit cc72a74d52

771
Forgejo_Syntax_Highlight.md Normal file

@ -0,0 +1,771 @@
# Forgejo Syntax Highlight
The Forgejo [codebase](https://codeberg.org/forgejo/forgejo) leverages the Goldmark markdown galango library, which in turn leverages the Chroma syntax highlight golang library, which is based on the lexers of the Pygments python library.
- https://github.com/yuin/goldmark
- https://github.com/alecthomas/chroma
- https://pygments.org/
Fenced code blocks in markdown can indicate which lexer to use for that content.
## Lexers Definitions
The Chroma project stores the definitions in XML format:
- https://github.com/alecthomas/chroma/tree/master/lexers/embedded
The project offers a binary download on the releases page which will generate a list of the lexers in order to avoid having to dig through the XML manually.
## Chroma Lexers
Release **v2.14.0** dated **2024-05-22**:
```bash
$ ./chroma --version
2.14.0-1e983e734d1c03b5d614250822984e0d62d0d654-2024-05-22T18:53:43Z
$ ./chroma --list | grep -v mimetypes
lexers:
ABAP
aliases: abap
filenames: *.abap *.ABAP
ABNF
aliases: abnf
filenames: *.abnf
ActionScript
aliases: as actionscript
filenames: *.as
ActionScript 3
aliases: as3 actionscript3
filenames: *.as
Ada
aliases: ada ada95 ada2005
filenames: *.adb *.ads *.ada
Agda
aliases: agda
filenames: *.agda
AL
aliases: al
filenames: *.al *.dal
Alloy
aliases: alloy
filenames: *.als
Angular2
aliases: ng2
ANTLR
aliases: antlr
ApacheConf
aliases: apacheconf aconf apache
filenames: .htaccess apache.conf apache2.conf
APL
aliases: apl
filenames: *.apl
AppleScript
aliases: applescript
filenames: *.applescript
ArangoDB AQL
aliases: aql
filenames: *.aql
Arduino
aliases: arduino
filenames: *.ino
ArmAsm
aliases: armasm
filenames: *.s *.S
AutoHotkey
aliases: autohotkey ahk
filenames: *.ahk *.ahkl
AutoIt
aliases: autoit
filenames: *.au3
Awk
aliases: awk gawk mawk nawk
filenames: *.awk
Ballerina
aliases: ballerina
filenames: *.bal
Bash
aliases: bash sh ksh zsh shell
filenames: *.sh *.ksh *.bash *.ebuild *.eclass .env *.env *.exheres-0 *.exlib *.zsh *.zshrc .bashrc bashrc .bash_* bash_* zshrc .zshrc PKGBUILD
Bash Session
aliases: bash-session console shell-session
filenames: *.sh-session
Batchfile
aliases: bat batch dosbatch winbatch
filenames: *.bat *.cmd
BibTeX
aliases: bib bibtex
filenames: *.bib
Bicep
aliases: bicep
filenames: *.bicep
BlitzBasic
aliases: blitzbasic b3d bplus
filenames: *.bb *.decls
BNF
aliases: bnf
filenames: *.bnf
BQN
aliases: bqn
filenames: *.bqn
Brainfuck
aliases: brainfuck bf
filenames: *.bf *.b
C
aliases: c
filenames: *.c *.h *.idc *.x[bp]m
C#
aliases: csharp c#
filenames: *.cs
C++
aliases: cpp c++
filenames: *.cpp *.hpp *.c++ *.h++ *.cc *.hh *.cxx *.hxx *.C *.H *.cp *.CPP *.tpp
Caddyfile
aliases: caddyfile caddy
filenames: Caddyfile*
Caddyfile Directives
aliases: caddyfile-directives caddyfile-d caddy-d
Cap'n Proto
aliases: capnp
filenames: *.capnp
Cassandra CQL
aliases: cassandra cql
filenames: *.cql
Ceylon
aliases: ceylon
filenames: *.ceylon
CFEngine3
aliases: cfengine3 cf3
filenames: *.cf
cfstatement
aliases: cfs
ChaiScript
aliases: chai chaiscript
filenames: *.chai
Chapel
aliases: chapel chpl
filenames: *.chpl
Cheetah
aliases: cheetah spitfire
filenames: *.tmpl *.spt
Clojure
aliases: clojure clj edn
filenames: *.clj *.edn
CMake
aliases: cmake
filenames: *.cmake CMakeLists.txt
COBOL
aliases: cobol
filenames: *.cob *.COB *.cpy *.CPY
CoffeeScript
aliases: coffee-script coffeescript coffee
filenames: *.coffee
Common Lisp
aliases: common-lisp cl lisp
filenames: *.cl *.lisp
Coq
aliases: coq
filenames: *.v
Crystal
aliases: cr crystal
filenames: *.cr
CSS
aliases: css
filenames: *.css
CUE
aliases: cue
filenames: *.cue
Cython
aliases: cython pyx pyrex
filenames: *.pyx *.pxd *.pxi
D
aliases: d
filenames: *.d *.di
Dart
aliases: dart
filenames: *.dart
Dax
aliases: dax
filenames: *.dax
Desktop file
aliases: desktop desktop_entry
filenames: *.desktop
Diff
aliases: diff udiff
filenames: *.diff *.patch
Django/Jinja
aliases: django jinja
dns
aliases: zone bind
filenames: *.zone
Docker
aliases: docker dockerfile
filenames: Dockerfile Dockerfile.* *.Dockerfile *.docker
DTD
aliases: dtd
filenames: *.dtd
Dylan
aliases: dylan
filenames: *.dylan *.dyl *.intr
EBNF
aliases: ebnf
filenames: *.ebnf
Elixir
aliases: elixir ex exs
filenames: *.ex *.eex *.exs
Elm
aliases: elm
filenames: *.elm
EmacsLisp
aliases: emacs elisp emacs-lisp
filenames: *.el
Erlang
aliases: erlang
filenames: *.erl *.hrl *.es *.escript
Factor
aliases: factor
filenames: *.factor
Fennel
aliases: fennel fnl
filenames: *.fennel
Fish
aliases: fish fishshell
filenames: *.fish *.load
Forth
aliases: forth
filenames: *.frt *.fth *.fs
Fortran
aliases: fortran f90
filenames: *.f03 *.f90 *.f95 *.F03 *.F90 *.F95
FortranFixed
aliases: fortranfixed
filenames: *.f *.F
FSharp
aliases: fsharp
filenames: *.fs *.fsi
GAS
aliases: gas asm
filenames: *.s *.S
GDScript
aliases: gdscript gd
filenames: *.gd
GDScript3
aliases: gdscript3 gd3
filenames: *.gd
Genshi
aliases: genshi kid xml+genshi xml+kid
filenames: *.kid
Genshi HTML
aliases: html+genshi html+kid
Genshi Text
aliases: genshitext
Gherkin
aliases: cucumber Cucumber gherkin Gherkin
filenames: *.feature *.FEATURE
Gleam
aliases: gleam>
filenames: *.gleam
GLSL
aliases: glsl
filenames: *.vert *.frag *.geo
Gnuplot
aliases: gnuplot
filenames: *.plot *.plt
Go
aliases: go golang
filenames: *.go
Go HTML Template
aliases: go-html-template
Go Template
aliases: go-template
filenames: *.gotmpl *.go.tmpl
Go Text Template
aliases: go-text-template
GraphQL
aliases: graphql graphqls gql
filenames: *.graphql *.graphqls
Groff
aliases: groff nroff man
filenames: *.[1-9] *.1p *.3pm *.man
Groovy
aliases: groovy
filenames: *.groovy *.gradle
Handlebars
aliases: handlebars hbs
filenames: *.handlebars *.hbs
Hare
aliases: hare
filenames: *.ha
Haskell
aliases: haskell hs
filenames: *.hs
Haxe
aliases: hx haxe hxsl
filenames: *.hx *.hxsl
HCL
aliases: hcl
filenames: *.hcl
Hexdump
aliases: hexdump
HLB
aliases: hlb
filenames: *.hlb
HLSL
aliases: hlsl
filenames: *.hlsl *.hlsli *.cginc *.fx *.fxh
HolyC
aliases: holyc
filenames: *.HC *.hc *.HH *.hh *.hc.z *.HC.Z
HTML
aliases: html
filenames: *.html *.htm *.xhtml *.xslt
HTTP
aliases: http
Hy
aliases: hylang
filenames: *.hy
Idris
aliases: idris idr
filenames: *.idr
Igor
aliases: igor igorpro
filenames: *.ipf
INI
aliases: ini cfg dosini
filenames: *.ini *.cfg *.inf *.service *.socket .gitconfig .editorconfig pylintrc .pylintrc
Io
aliases: io
filenames: *.io
ISCdhcpd
aliases: iscdhcpd
filenames: dhcpd.conf
J
aliases: j
filenames: *.ijs
Java
aliases: java
filenames: *.java
JavaScript
aliases: js javascript
filenames: *.js *.jsm *.mjs *.cjs
JSON
aliases: json
filenames: *.json *.avsc
Julia
aliases: julia jl
filenames: *.jl
Jungle
aliases: jungle
filenames: *.jungle
Kotlin
aliases: kotlin
filenames: *.kt
Lighttpd configuration file
aliases: lighty lighttpd
LLVM
aliases: llvm
filenames: *.ll
Lua
aliases: lua
filenames: *.lua *.wlua
Makefile
aliases: make makefile mf bsdmake
filenames: *.mak *.mk Makefile makefile Makefile.* GNUmakefile BSDmakefile Justfile justfile .justfile
Mako
aliases: mako
filenames: *.mao
markdown
aliases: md mkd
filenames: *.md *.mkd *.markdown
Mason
aliases: mason
filenames: *.m *.mhtml *.mc *.mi autohandler dhandler
Materialize SQL dialect
aliases: materialize mzsql
Mathematica
aliases: mathematica mma nb
filenames: *.cdf *.m *.ma *.mt *.mx *.nb *.nbp *.wl
Matlab
aliases: matlab
filenames: *.m
mcfunction
aliases: mcfunction
filenames: *.mcfunction
Meson
aliases: meson meson.build
filenames: meson.build meson_options.txt
Metal
aliases: metal
filenames: *.metal
MiniZinc
aliases: minizinc MZN mzn
filenames: *.mzn *.dzn *.fzn
MLIR
aliases: mlir
filenames: *.mlir
Modula-2
aliases: modula2 m2
filenames: *.def *.mod
MonkeyC
aliases: monkeyc
filenames: *.mc
MorrowindScript
aliases: morrowind mwscript
Myghty
aliases: myghty
filenames: *.myt autodelegate
MySQL
aliases: mysql mariadb
filenames: *.sql
NASM
aliases: nasm
filenames: *.asm *.ASM *.nasm
Natural
aliases: natural
filenames: *.NSN *.NSP *.NSS *.NSH *.NSG *.NSL *.NSA *.NSM *.NSC *.NS7
NDISASM
aliases: ndisasm
Newspeak
aliases: newspeak
filenames: *.ns2
Nginx configuration file
aliases: nginx
filenames: nginx.conf
Nim
aliases: nim nimrod
filenames: *.nim *.nimrod
Nix
aliases: nixos nix
filenames: *.nix
Objective-C
aliases: objective-c objectivec obj-c objc
filenames: *.m *.h
ObjectPascal
aliases: objectpascal
filenames: *.pas *.pp *.inc *.dpr *.dpk *.lpr *.lpk
OCaml
aliases: ocaml
filenames: *.ml *.mli *.mll *.mly
Octave
aliases: octave
filenames: *.m
Odin
aliases: odin
filenames: *.odin
OnesEnterprise
aliases: ones onesenterprise 1S 1S:Enterprise
filenames: *.EPF *.epf *.ERF *.erf
OpenEdge ABL
aliases: openedge abl progress openedgeabl
filenames: *.p *.cls *.w *.i
OpenSCAD
aliases: openscad
filenames: *.scad
Org Mode
aliases: org orgmode
filenames: *.org
PacmanConf
aliases: pacmanconf
filenames: pacman.conf
Perl
aliases: perl pl
filenames: *.pl *.pm *.t
PHP
aliases: php php3 php4 php5
filenames: *.php *.php[345] *.inc
PHTML
aliases: phtml
filenames: *.phtml *.php *.php[345] *.inc
Pig
aliases: pig
filenames: *.pig
PkgConfig
aliases: pkgconfig
filenames: *.pc
PL/pgSQL
aliases: plpgsql
plaintext
aliases: text plain no-highlight
filenames: *.txt
Plutus Core
aliases: plutus-core plc
filenames: *.plc
Pony
aliases: pony
filenames: *.pony
PostgreSQL SQL dialect
aliases: postgresql postgres
PostScript
aliases: postscript postscr
filenames: *.ps *.eps
POVRay
aliases: pov
filenames: *.pov *.inc
PowerQuery
aliases: powerquery pq
filenames: *.pq
PowerShell
aliases: powershell posh ps1 psm1 psd1 pwsh
filenames: *.ps1 *.psm1 *.psd1
Prolog
aliases: prolog
filenames: *.ecl *.prolog *.pro *.pl
Promela
aliases: promela
filenames: *.pml *.prom *.prm *.promela *.pr *.pm
PromQL
aliases: promql
filenames: *.promql
properties
aliases: java-properties
filenames: *.properties
Protocol Buffer
aliases: protobuf proto
filenames: *.proto
PRQL
aliases: prql
filenames: *.prql
PSL
aliases: psl
filenames: *.psl *.BATCH *.TRIG *.PROC
Puppet
aliases: puppet
filenames: *.pp
Python
aliases: python py sage python3 py3
filenames: *.py *.pyi *.pyw *.jy *.sage *.sc SConstruct SConscript *.bzl BUCK BUILD BUILD.bazel WORKSPACE WORKSPACE.bzlmod WORKSPACE.bazel MODULE.bazel REPO.bazel *.tac
Python 2
aliases: python2 py2
QBasic
aliases: qbasic basic
filenames: *.BAS *.bas
QML
aliases: qml qbs
filenames: *.qml *.qbs
R
aliases: splus s r
filenames: *.S *.R *.r .Rhistory .Rprofile .Renviron
Racket
aliases: racket rkt
filenames: *.rkt *.rktd *.rktl
Ragel
aliases: ragel
Raku
aliases: perl6 pl6 raku
filenames: *.pl *.pm *.nqp *.p6 *.6pl *.p6l *.pl6 *.6pm *.p6m *.pm6 *.t *.raku *.rakumod *.rakutest *.rakudoc
react
aliases: jsx react
filenames: *.jsx *.react
ReasonML
aliases: reason reasonml
filenames: *.re *.rei
reg
aliases: registry
filenames: *.reg
Rego
aliases: rego
filenames: *.rego
reStructuredText
aliases: rst rest restructuredtext
filenames: *.rst *.rest
Rexx
aliases: rexx arexx
filenames: *.rexx *.rex *.rx *.arexx
RPMSpec
aliases: spec
filenames: *.spec
Ruby
aliases: rb ruby duby
filenames: *.rb *.rbw Rakefile *.rake *.gemspec *.rbx *.duby Gemfile Vagrantfile
Rust
aliases: rust rs
filenames: *.rs *.rs.in
SAS
aliases: sas
filenames: *.SAS *.sas
Sass
aliases: sass
filenames: *.sass
Scala
aliases: scala
filenames: *.scala
Scheme
aliases: scheme scm
filenames: *.scm *.ss
Scilab
aliases: scilab
filenames: *.sci *.sce *.tst
SCSS
aliases: scss
filenames: *.scss
Sed
aliases: sed gsed ssed
filenames: *.sed *.[gs]sed
Sieve
aliases: sieve
filenames: *.siv *.sieve
Smali
aliases: smali
filenames: *.smali
Smalltalk
aliases: smalltalk squeak st
filenames: *.st
Smarty
aliases: smarty
filenames: *.tpl
Snobol
aliases: snobol
filenames: *.snobol
Solidity
aliases: sol solidity
filenames: *.sol
SourcePawn
aliases: sp
filenames: *.sp *.inc
SPARQL
aliases: sparql
filenames: *.rq *.sparql
SQL
aliases: sql
filenames: *.sql
SquidConf
aliases: squidconf squid.conf squid
filenames: squid.conf
Standard ML
aliases: sml
filenames: *.sml *.sig *.fun
stas
filenames: *.stas
Stylus
aliases: stylus
filenames: *.styl
Svelte
aliases: svelte
filenames: *.svelte
Swift
aliases: swift
filenames: *.swift
SYSTEMD
aliases: systemd
filenames: *.automount *.device *.dnssd *.link *.mount *.netdev *.network *.path *.scope *.service *.slice *.socket *.swap *.target *.timer
systemverilog
aliases: systemverilog sv
filenames: *.sv *.svh
TableGen
aliases: tablegen
filenames: *.td
Tal
aliases: tal uxntal
filenames: *.tal
TASM
aliases: tasm
filenames: *.asm *.ASM *.tasm
Tcl
aliases: tcl
filenames: *.tcl *.rvt
Tcsh
aliases: tcsh csh
filenames: *.tcsh *.csh
Termcap
aliases: termcap
filenames: termcap termcap.src
Terminfo
aliases: terminfo
filenames: terminfo terminfo.src
Terraform
aliases: terraform tf
filenames: *.tf
TeX
aliases: tex latex
filenames: *.tex *.aux *.toc
Thrift
aliases: thrift
filenames: *.thrift
TOML
aliases: toml
filenames: *.toml Pipfile poetry.lock
TradingView
aliases: tradingview tv
filenames: *.tv
Transact-SQL
aliases: tsql t-sql
Turing
aliases: turing
filenames: *.turing *.tu
Turtle
aliases: turtle
filenames: *.ttl
Twig
aliases: twig
filenames: *.twig
TypeScript
aliases: ts tsx typescript
filenames: *.ts *.tsx *.mts *.cts
TypoScript
aliases: typoscript
filenames: *.ts
TypoScriptCssData
aliases: typoscriptcssdata
TypoScriptHtmlData
aliases: typoscripthtmldata
ucode
filenames: *.uc
V
aliases: v vlang
filenames: *.v *.vv v.mod
V shell
aliases: vsh vshell
filenames: *.vsh
Vala
aliases: vala vapi
filenames: *.vala *.vapi
VB.net
aliases: vb.net vbnet
filenames: *.vb *.bas
verilog
aliases: verilog v
filenames: *.v
VHDL
aliases: vhdl
filenames: *.vhdl *.vhd
VHS
aliases: vhs tape cassette
filenames: *.tape
VimL
aliases: vim
filenames: *.vim .vimrc .exrc .gvimrc _vimrc _exrc _gvimrc vimrc gvimrc
vue
aliases: vue vuejs
filenames: *.vue
WDTE
filenames: *.wdte
WebGPU Shading Language
aliases: wgsl
filenames: *.wgsl
Whiley
aliases: whiley
filenames: *.whiley
XML
aliases: xml
filenames: *.xml *.xsl *.rss *.xslt *.xsd *.wsdl *.wsf *.svg *.csproj *.vcxproj *.fsproj
Xorg
aliases: xorg.conf
filenames: xorg.conf
YAML
aliases: yaml
filenames: *.yaml *.yml
YANG
aliases: yang
filenames: *.yang
Z80 Assembly
aliases: z80
filenames: *.z80 *.asm
Zed
aliases: zed
filenames: *.zed
Zig
aliases: zig
filenames: *.zig
```