使用Hugo,如何从基本文件中定义的部分文件访问变量



我是使用Hugo和Go模板的新手。如何使用Hugo从基本文件中定义的部分文件访问变量?

例如:我有一个index.html文件,其中包含读取数据目录中events.json文件中存储的数据并将其存储在变量中的代码。如何从另一个文件访问该变量?

index.html

{{ $events := .Site.Data.events }}
{{ partial "people" . }}

people.html

// access the events variable from the index.html
{{ $events }}

我真的希望这是有道理的。如果需要,我可以尝试澄清更多。

0.15介绍了一个可以用于此目的的映射。

index.html

{{ $events := .Site.Data.events }}
{{ partial "people" (dict "events" $events) }}

people.html

// access the events variable from the index.html
{{ .events }}

您可以使用dict函数:

{{ partial "people" (dict "page" . "events" $events) }}

然后,您将像部分中的{{ .page.someVar }}{{ .events.someVar }}一样对它们进行寻址。

在您的情况下,另一种选择可能是,在部分中(正如之前的海报所说),直接从部分中寻址.Site.Data.events

根据Hugo文档:

。。。部分调用接收两个参数。

  1. 第一个是分部的名称,并确定要读取的文件位置
  2. 第二个是要传递给分部的变量

这意味着分部只能访问这些变量。它是孤立的,无法访问外部范围。

这意味着events变量在people.html的作用域之外。您的CCD_ 10不能";参见";一个解决方案是把它传下去,比如:

{{ partial "people" . $events }}

如果不起作用,请尝试不同的表示法($.)。

如果这不起作用,那么您总是可以再次调用数据文件,不带变量,就像在示例中一样,即在people.html分部中使用{{ .Site.Data.events }}

请在评论中告诉我进展如何,如果有必要,我会努力改进我的答案。我知道走出雨果的边界进入围棋领域是一件痛苦的事:)

相关内容

  • 没有找到相关文章