hugo

Fork of github.com/gohugoio/hugo with reverse pagination support

git clone git://git.shimmy1996.com/hugo.git

highlight.md (3868B)

    1 ---
    2 title: highlight
    3 linktitle: highlight
    4 description: Renders code with a syntax highlighter.
    5 date: 2017-02-01
    6 publishdate: 2017-02-01
    7 lastmod: 2021-12-06
    8 categories: [functions]
    9 menu:
   10   docs:
   11     parent: "functions"
   12 keywords: [highlighting,code blocks,syntax]
   13 signature: ["transform.Highlight INPUT LANG [OPTIONS]","highlight INPUT LANG [OPTIONS]"]
   14 relatedfuncs: []
   15 deprecated: false
   16 toc: true
   17 ---
   18 The `highlight` function uses the [Chroma] syntax highlighter, supporting over 200 languages with more than 40 available styles.
   19 
   20 ## Parameters
   21 
   22 INPUT
   23 : The code to highlight.
   24 
   25 LANG
   26 : The language of the code to highlight. Choose from one of the [supported languages]. Case-insensitive.
   27 
   28 OPTIONS
   29 : An optional, comma-separated list of zero or more [options]. Set default values in [site configuration].
   30 
   31 ## Options
   32 
   33 lineNos
   34 : Boolean. Default is `false`.\
   35 Display a number at the beginning of each line.
   36 
   37 lineNumbersInTable
   38 : Boolean. Default is `true`.\
   39 Render the highlighted code in an HTML table with two cells. The left table cell contains the line numbers. The right table cell contains the code, allowing a user to select and copy the code without line numbers. Irrelevant if `lineNos` is false.
   40 
   41 anchorLineNos
   42 : Boolean. Default is `false`.\
   43 Render each line number as an HTML anchor element, and set the `id` attribute of the surrounding `<span>` to the line number. Irrelevant if `lineNos` is false.
   44 
   45 lineAnchors
   46 : String. Default is `""`.\
   47 When rendering a line number as an HTML anchor element, prepend this value to the `id` attribute of the surrounding `<span>`. This provides unique `id` attributes when a page contains two or more code blocks. Irrelevant if `lineNos` or `anchorLineNos` is false.
   48 
   49 lineNoStart
   50 : Integer. Default is `1`.\
   51 The number to display at the beginning of the first line. Irrelevant if `lineNos` is false.
   52 
   53 hl_Lines
   54 : String. Default is `""`.\
   55 A space-separated list of lines to emphasize within the highlighted code. To emphasize lines 2, 3, 4, and 7, set this value to `2-4 7`. This option is independent of the `lineNoStart` option.
   56 
   57 style
   58 : String. Default is `monokai`.\
   59 The CSS styles to apply to the highlighted code. See the [style gallery] for examples. Case-sensitive.
   60 
   61 noClasses
   62 : Boolean. Default is `true`.\
   63 Use inline CSS styles instead of an external CSS file. To use an external CSS file, set this value to `false` and [generate the file with the hugo client][hugo client].
   64 
   65 tabWidth
   66 : Integer. Default is `4`.\
   67 Substitute this number of spaces for each tab character in your highlighted code.
   68 
   69 guessSyntax
   70 : Boolean. Default is `false`.\
   71 If the `LANG` parameter is blank or an unrecognized language, auto-detect the language if possible, otherwise use a fallback language.
   72 
   73 {{% note %}}
   74 Instead of specifying both `lineNos` and `lineNumbersInTable`, you can use the following shorthand notation:
   75 
   76 `lineNos=inline` 
   77 : equivalent to `lineNos=true` and `lineNumbersInTable=false`
   78 
   79 `lineNos=table` 
   80 : equivalent to `lineNos=true` and `lineNumbersInTable=true`
   81 {{% /note %}}
   82 
   83 ## Examples
   84 
   85 ```go-html-template
   86 {{ $input := `fmt.Println("Hello World!")` }}
   87 {{ transform.Highlight $input "go" }}
   88 
   89 {{ $input := `console.log('Hello World!');` }}
   90 {{ $lang := "js" }}
   91 {{ transform.Highlight $input $lang "lineNos=table, style=api" }}
   92 
   93 {{ $input := `echo "Hello World!"` }}
   94 {{ $lang := "bash" }}
   95 {{ $options := slice "lineNos=table" "style=dracula" }}
   96 {{ transform.Highlight $input $lang (delimit $options ",") }}
   97 ```
   98 
   99 [Chroma]: https://github.com/alecthomas/chroma
  100 [hugo client]: {{< relref "commands/hugo_gen_chromastyles" >}}
  101 [options]: {{< relref "#options" >}}
  102 [site configuration]: {{< relref "getting-started/configuration-markup#highlight">}}
  103 [style gallery]: https://xyproto.github.io/splash/docs/
  104 [supported languages]: {{< relref "content-management/syntax-highlighting#list-of-chroma-highlighting-languages" >}}