在Hugo中,如何使用前置物变量选择数据文件?

时间:2018-07-01 04:08:59

标签: hugo

我希望能够在我的页面中定义一个前题变量book

book: book1

book1将是这样的数据文件(book1.yml):

page_list:

  - cover
  - frontis
  - i
  - ii
  - 1
  - 2
  - 3
etc...

将有几个这样的数据文件:book2.ymlbook3.yml

然后在我的布局中,我要遍历页面,如下所示:

{{ range $page := .Site.Data.{{ .Params.book }}.page_list }}

     {{ $page }} 

{{ end }}

此语法无效。有没有办法在另一个变量中使用前物变量(在我的示例中为.Site.Data.MY_FRONT_MATTER_VARIABLE.page_list)?

1 个答案:

答案 0 :(得分:0)

我发现了一种使用局部变量的可能解决方案。基本上,我将所有HTML移到一个名为“ book_page”的部分中,并像这样传递数据:

{{部分“ book_page”(字典“ DATA” .Site.Data.book1“ previous_page” .Params.previous_page“ current_page” .Params.current_page“ next_page” .Params.next_page“深度”“”)}} < / p>

我正在使用字典,因为我还需要一些其他值。然后,在常规HTML中,我可以使用.DATA.page_list,.DATA.title,.DATA.author,.DATA.side_links等访问所有book1数据。我将这段代码保存在单个“ .html”文件中“(雨果称它们为“类型”),例如1.md:


类型:BookLayout1

上一页:xiv

当前页面:1

下一页:2