github.com/lyeb/hugo@v0.47.1/docs/content/en/templates/alternatives.md (about)

     1  ---
     2  title: Alternative Templating Languages
     3  linktitle: Alternative Templating
     4  description: In addition to Go templates, Hugo supports the powerful Ace templating from @yosssi and Amber templating from @eknkc.
     5  godocref:
     6  date: 2017-02-01
     7  publishdate: 2017-02-01
     8  lastmod: 2017-02-20
     9  categories: [templates]
    10  keywords: [amber,ace,templating languages]
    11  menu:
    12    docs:
    13      parent: "templates"
    14      weight: 170
    15  weight: 170
    16  sections_weight: 170
    17  draft: false
    18  aliases: [/templates/ace/,/templates/amber/]
    19  toc: true
    20  ---
    21  
    22  ## Ace Templates
    23  
    24  For template documentation, follow the links from the [Ace project](https://github.com/yosssi/ace).
    25  
    26  * Ace templates must be named with the ace-suffix; e.g., `list.ace`
    27  * It's possible to use both Go templates and Ace templates side by side and even include one into the other
    28  * Full Go template syntax support, including all the useful helper [template functions][]
    29  * Partials can be included both with the Ace and the Go template syntax. For example, the following two will have the same output in Ace:
    30      * `= include partials/foo.html .`
    31      * `{{ partial "foo" . }}`
    32  
    33  One noticeable difference between Ace and the other templating engines in Hugo is [Ace's inheritance support through base and inner templates][aceinheritance].
    34  
    35  In Hugo, the Ace base template will be chosen with the same rule set as for [Go base templates][].
    36  
    37  ```
    38  .:
    39  index.ace
    40  
    41  ./blog:
    42  single.ace
    43  baseof.ace
    44  
    45  ./_default:
    46  baseof.ace  list.ace  single.ace  single-baseof.ace
    47  ```
    48  
    49  {{% note %}}
    50  Note that the `html` suffix is needed even if the filename is suffixed `ace`. This does not work from inside a theme ([issue #763](https://github.com/gohugoio/hugo/issues/763)).
    51  {{% /note %}}
    52  
    53  Some examples for the layout files above:
    54  
    55  * Home page: `./index.ace` +  `./_default/baseof.ace`
    56  * Single page in the `blog` section: `./blog/single.ace` +  `./blog/baseof.ace`
    57  * Single page in another section: `./_default/single.ace` +  `./_default/single-baseof.ace`
    58  * Taxonomy page in any section: `./_default/list.ace` +  `./_default/baseof.ace`
    59  
    60  {{% note %}}
    61  In most cases, one `baseof.ace` in `_default` will suffice. An Ace template without a reference to a base section (e.g., `= content`) will be handled as a standalone template.
    62  {{% /note %}}
    63  
    64  ## Amber Templates
    65  
    66  For Amber template documentation, follow the links from the [Amber project][].
    67  
    68  * Amber templates must be named with the Amber suffix; e.g., `list.amber`
    69  * Partials in Amber or HTML can be included with the Amber template syntax:
    70      * `import ../partials/test.html `
    71      * `import ../partials/test_a.amber `
    72  
    73  [aceinheritance]: https://github.com/yosssi/ace/tree/master/examples/base_inner_template
    74  [Amber Project]: https://github.com/eknkc/amber
    75  [template functions]: /functions/
    76  [Go templates]: /templates/introduction/
    77  [Go base templates]: /templates/base/