提供比您提供的信息更多的信息会有所帮助,例如您正在使用的数据示例。但如果可以的话,我会尽量回答。为了澄清,page
并且filename
都是 Assemble 中的内置“帮助器”/变量,filename
是几个“路径”帮助器之一,这里有一些其他的:
- dirname:返回给定文件/目录的绝对路径。将返回:
path/to/variables.md
. 用法:{{dirname [path]}}
- pagename:返回给定文件的全名。将返回:
variables.md
. 用法:{{filename "docs/toc.md"}}
- 文件名:可用作
pagename
.
- basename:返回给定文件的基本名称。将返回:
variables
用法:{{base "docs/toc.md"}}
- extension:返回给定文件的扩展名。将返回:
.md
用法:{{extension "docs/toc.md"}}
- ext : 可以作为
extension
.
- relative:返回从文件 A 到文件 B 的派生相对路径。用法:
{{relative [from] [to]}}
。
这些可以page
像这样使用:
{{page.dest}}
{{page.absolute}}
{{page.dirname}}
{{page.filename}}
{{page.pagename}}
{{page.basename}}
{{page.extname}}
{{page.ext}}
或者,根据上下文和您的需要:
{{this.dest}}
{{this.dirname}}
{{this.filename}}
{{this.pagename}}
{{this.basename}}
{{this.extname}}
{{this.ext}}
当您{{#each}}
在示例中使用块内的模板时,您需要添加../
以提高上下文级别:
{{../page.dest}}
{{../page.absolute}}
{{../page.dirname}}
{{../page.filename}}
{{../page.pagename}}
{{../page.basename}}
{{../page.extname}}
{{../page.ext}}
或者,再次取决于您页面上的其他内容。(我不知道其余模板中有多少嵌套等)
{{../dest}}
{{../absolute}}
{{../dirname}}
{{../filename}}
{{../pagename}}
{{../basename}}
{{../extname}}
{{../ext}}
我的建议是您只需将我列出的所有模板复制/粘贴到一个页面中并构建它。然后查看结果并查看哪些模板正在工作,它应该可以帮助您开始思考模板是如何工作的。Handlebars 的上下文起初令人困惑,但希望这会有所帮助。
此外,如果您在那之后仍然遇到问题,可以查看一些“assemble-examples”存储库,并尝试在没有任何这些帮助程序的情况下首先构建您的模板/页面。然后提交你的工作并介绍助手,但不是一次只介绍一两个助手,当我学习时,我开始在一个页面中添加几十个助手,只是为了加快查看输出中发生的事情的过程,什么坏了,查看差异以了解发生了什么变化。等等
让我知道这是否至少能让你到达某个地方。我很高兴继续提供帮助。