When we find a template that requires a base template, we should also look for that base template in the current theme. Fixes #1215.
2.5 KiB
aliases | date | linktitle | menu | next | prev | title | weight | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
2014-04-20 | Ace templates |
|
/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.
-
Needs documentation! Contribution welcomed, see issue 1064. ↩︎
-
Note that the
html
suffix is needed, even if the filename is suffixedace
. This does not work from inside a theme, see issue 763. ↩︎