从JSON数组

时间:2016-10-03 16:40:51

标签: middleman static-site hugo

我有一个美国每个州和城市的巨型JSON阵列,以及有关每个州的其他数据。我想迭代JSON并输出这样的树结构:

  1. [阿拉巴马]
    • 的index.html
    • [阿布维尔]
      • 的index.html
    • [Adamsville]
      • 的index.html
  2. [阿拉斯加]
    • 的index.html
    • [安克雷奇]
      • 的index.html
    • [费尔班克斯]
      • 的index.html
  3. ...等
  4. 我有两种布局:

    1. state.html
    2. city.html
    3. 到目前为止,我还没有找到一个很好的方法来做到这一点。许多静态gens似乎能够在内容中使用JSON作为元数据,但不能用于主要内容源。

      谢谢!

1 个答案:

答案 0 :(得分:1)

Middleman静态站点生成器支持此功能。您可以使用其动态页面来创建要创建的页面列表。数据来自其数据文件功能。以下是解释这些

的页面的链接

https://middlemanapp.com/advanced/dynamic_pages/ https://middlemanapp.com/advanced/data_files/

你会做类似于包含州和城市数据的states.yml

- states
    - name: Alabama
      cities:
        - name: Abbeville
          pop: X
        - name: Adamsville
          pop: Y

然后创建代理页,例如

data.states.each do |state|
  proxy "/#{state.name}/index.html", "templates/state.html", :locals => {state: state}
  state.cities.each do |city|
    proxy "/#{state.name}/#{city.name}/index.html", "/templates/city.html", :locals => {state: state, city: city}
  end
end