Skip to content

Conversation

@tatsushid
Copy link
Contributor

This feature is discussed at forum topic "Amber templates not working… documentation?". The needed upstream (Ace) modification was merged so it's time to send this.

This detects .ace suffix of a template file and treat it as a template written in Ace. It has a small trick

name = name[:len(name)-len(ext)] + ".html"

to avoid a layout call error (like "Unable to locate layout") at rendering pages because .html suffix is hard coded in many caller functions. It also has unexpected feature using multi template engine at the same time.

It only affects an internal template name, not a real file name but I think it's better to use a template engine independent name in caller functions or allow to specify a suffix it in future version.

@spf13
Copy link
Contributor

spf13 commented Oct 7, 2014

@tatsushid Thanks for this great contribution. We need to add some brief documentation so people can benefit from this.

I've also been considering changing the extensions for all the templates. The default would be handled like the .html files now as a go template.

.ace.html
.go.html
.amber.html
...

What do you think of that?

Initial questions (helpful for documentation):

  1. Can you interchange .html and .ace files?
  2. Can an ace template be used as a partial?
  3. Can an ace template be used as a view?
  4. Can an ace template be used to override a theme file?
  5. Where can I learn more about Ace & it's syntax?
  6. Can I use the hugo template functions from within Ace?

@tatsushid
Copy link
Contributor Author

First, I answer the questions

Can you interchange .html and .ace files?

Yes, I rewrote my site's template files one by one and replaced original ones by them for testing and got the same looks (not fully compared generated HTML codes). I used all of Hugo's template functionality except a short code in them. I'm ready for translation, for example, example/blog of Hugo by adding theme directory or Hyde for Hugo theme. What do you think?

Can an ace template be used as a partial?

Yes. Both in go format

{{ template "theme/partials/header.html" . }}

and in Ace format

= include theme/partials/header.html .

are OK. Please be careful the INTERNAL template name (template.New(name) name) must be specified as those argument, not the REAL template file name on the file system so it has .html extension instead of .ace. I think it is difficult to understand and should be improved.

Can an ace template be used as a view?

Yes. It can be used as same as the go template like

{{ .Render "li" }}

Can an ace template be used to override a theme file?

Yes. If it is placed in layouts directory, it overwrites the theme's file

Where can I learn more about Ace & it's syntax?

There are documents and examples

Can I use the hugo template functions from within Ace?

Yes, for example, the following Ace code with first Hugo template function

div.container.content
  div.posts
    {{ range first 5 .Data.Pages }}
      {{ .Render "content" }}
    {{ end }}

works.

On changing template file's extensions, I agree with you that it makes it easier to distinguish between HTML file itself and template file which should be converted in HTML. It also allows us to extend the extension for other types, for example, we can use

.ace.md
.amber.md
.go.md
...

if we add Markdown content generating functionality in the future.

@spf13 spf13 added this to the v0.13 milestone Oct 19, 2014
@tatsushid tatsushid force-pushed the feature/ace-support branch from fdc6f67 to f15bf85 Compare December 2, 2014 12:45
@tatsushid
Copy link
Contributor Author

I rebased the PR branch onto the current tip

@spf13
Copy link
Contributor

spf13 commented Dec 3, 2014

Thanks @tatsushid .. Merged as a0d956c

@spf13 spf13 closed this Dec 3, 2014
bep added a commit that referenced this pull request Aug 1, 2018
8184798 Add notes for installing "extended" Sass/SCSS version
02da3bb Include usage of disqus internal template
9b53380 Update sitemap-template.md
f3417dd Update sitemap-template.md
aae33d9 Update sitemap-template.md
834edc2 Release 0.45.1
fb93ab9 Merge branch 'temp451'
79f3509 releaser: Prepare repository for 0.46-DEV
25cd235 releaser: Add release notes to /docs for release of 0.45.1
e60377c releaser: Bump versions for release of 0.45.1
873f6dc Update features.md
ecc1166 Update link for Azure
cb88c31 Added .Site.Home to Site Variiables (#541)
975a887 Document includePaths
56c4e33 Release Hugo 0.45
c22b252 Merge branch 'temp45'
0ffad3a releaser: Prepare repository for 0.46-DEV
08d494c releaser: Add release notes to /docs for release of 0.45
ad546ba releaser: Bump versions for release of 0.45
971c46b Fixed "Sratch" to become "Scratch" on line 44
a28255b Clarify the meaning of .Pages vs .Site.Pages
127aeee docs: Update ref, relref, GetPage docs
350d674 resources.Concat doesn't have an alias
1fd1219 docs: Document refLinksErrorLevel and refLinksNotFoundURL
af2252f Merge commit 'a3535c8486b2ce762b1a8a9c30b03985c3e02cee'
a114868 Merge commit 'b6b37a1f00f808f3c0d2715f65ca2d3091f36495'
1c8896c Fix addkit link to account for i18n
468aef3 releaser: Prepare repository for 0.45-DEV
c6f4b97 releaser: Add release notes to /docs for release of 0.44
d3985af releaser: Bump versions for release of 0.44
2c59a33 Adjust release notes
8396676 releaser: Prepare repository for 0.44-DEV
e539613 releaser: Add release notes to /docs for release of 0.43
2bf6489 releaser: Bump versions for release of 0.43
d9d6e4b Fix typos
d6798af Merge commit '98293eaa1570b5aff4452021c8b6d6c8560b3f06'
37cc522 Add a newScratch template func
1f7f096 Merge branch 'release-0.42.2'
857b0b2 releaser: Prepare repository for 0.43-DEV

git-subtree-dir: docs
git-subtree-split: 8184798
@github-actions
Copy link

github-actions bot commented Mar 5, 2022

This pull request has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 5, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants