hugo/docs/content/templates/ace.md
Jonathan Anderson 0987e98db3 Add support for baseof.ace templates in themes.
When we find a template that requires a base template, we should also look
for that base template in the current theme.

Fixes #1215.
2015-06-25 18:05:43 +02:00

2.5 KiB

aliases date linktitle menu next prev title weight
/doc/templates/ace
/layout/templates/ace
/layout/ace/
2014-04-20 Ace templates
main
parent
layout
/templates/functions /templates/go-templates Hugo Templates 17

In addition to Go templates and Amber1 templates, Hugo supports the powerful Ace templates.

For template documentation, follow the links from the Ace project.

  • Ace templates must be named with the ace-suffix, e.g. list.ace
  • It's possible to use both Go templates and Ace templates side-by-side, and include one into the other
  • Full Go template syntax support, including all the useful helper funcs
  • Partials can be included both with the Ace and the Go template syntax:
    • = include partials/foo.html .2
    • {{ partial "foo" . }}

One noticeable difference between Ace and the others is the inheritance support through base and inner templates.

In Hugo the base template will be chosen in the following order:

1. <current-path>/<template-name>-baseof.ace, e.g. list-baseof.ace
2. <current-path>/baseof.ace
3. _default/<template-name>-baseof.ace, e.g. list-baseof.ace.
4. _default/baseof.ace	
5. <themedir>/layouts/_default/<template-name>-baseof.ace
6. <themedir>/layouts/_default/baseof.ace

In the above, current-path is where the corresponding inner template lives, list.ace, single.ace, index.ace ...

.:
index.ace

./blog:
single.ace
baseof.ace

./_default:
baseof.ace  list.ace  single.ace  single-baseof.ace

Some examples for the layout files above:

  • Home page: ./index.ace + ./_default/baseof.ace
  • Single page in the blog section: ./blog/single.ace + ./blog/baseof.ace
  • Single page in another section: ./_default/single.ace + ./_default/single-baseof.ace
  • Taxonomy page in any section: ./_default/list.ace + ./_default/baseof.ace

Note: In most cases one baseof.ace in _default will suffice. Note: An Ace template without a reference to a base section, e.g. = content, will be handled as a standalone template.


  1. Needs documentation! Contribution welcomed, see issue 1064. ↩︎

  2. Note that the html suffix is needed, even if the filename is suffixed ace. This does not work from inside a theme, see issue 763. ↩︎