Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Ace template engine support #541

Closed
wants to merge 1 commit into from

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
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
81847981f Add notes for installing "extended" Sass/SCSS version
02da3bb58 Include usage of disqus internal template
9b53380c4 Update sitemap-template.md
f3417dd52 Update sitemap-template.md
aae33d9a8 Update sitemap-template.md
834edc205 Release 0.45.1
fb93ab905 Merge branch 'temp451'
79f350906 releaser: Prepare repository for 0.46-DEV
25cd2352c releaser: Add release notes to /docs for release of 0.45.1
e60377c71 releaser: Bump versions for release of 0.45.1
873f6dce2 Update features.md
ecc116642 Update link for Azure
cb88c3185 Added .Site.Home to Site Variiables (#541)
975a88791 Document includePaths
56c4e332f Release Hugo 0.45
c22b25210 Merge branch 'temp45'
0ffad3ada releaser: Prepare repository for 0.46-DEV
08d494cc3 releaser: Add release notes to /docs for release of 0.45
ad546ba45 releaser: Bump versions for release of 0.45
971c46bb2 Fixed "Sratch" to become "Scratch" on line 44
a28255bf3 Clarify the meaning of .Pages vs .Site.Pages
127aeee09 docs: Update ref, relref, GetPage docs
350d674ec resources.Concat doesn't have an alias
1fd1219b0 docs: Document refLinksErrorLevel and refLinksNotFoundURL
af2252ff6 Merge commit 'a3535c8486b2ce762b1a8a9c30b03985c3e02cee'
a11486805 Merge commit 'b6b37a1f00f808f3c0d2715f65ca2d3091f36495'
1c8896cb1 Fix addkit link to account for i18n
468aef3fc releaser: Prepare repository for 0.45-DEV
c6f4b97a2 releaser: Add release notes to /docs for release of 0.44
d3985afb7 releaser: Bump versions for release of 0.44
2c59a330c Adjust release notes
83966769a releaser: Prepare repository for 0.44-DEV
e539613f7 releaser: Add release notes to /docs for release of 0.43
2bf648944 releaser: Bump versions for release of 0.43
d9d6e4bf7 Fix typos
d6798afda Merge commit '98293eaa1570b5aff4452021c8b6d6c8560b3f06'
37cc52261 Add a newScratch template func
1f7f09613 Merge branch 'release-0.42.2'
857b0b26a releaser: Prepare repository for 0.43-DEV

git-subtree-dir: docs
git-subtree-split: 81847981f1f2cb1ebc83d42d275a2afb2bb22df1
@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