3

我有一个包含美国每个州和城市的巨大 JSON 数组,以及关于每个州和城市的其他数据。我想遍历 JSON 并输出这样的树结构:

  1. [阿拉巴马州]
    • 索引.html
    • [阿布维尔]
      • 索引.html
    • [亚当斯维尔]
      • 索引.html
  2. [阿拉斯加州]
    • 索引.html
    • [安克雷奇]
      • 索引.html
    • [费尔班克斯]
      • 索引.html
  3. ...ETC

我有两种布局:

  1. state.html
  2. 城市.html

到目前为止,我还没有找到一个很好的方法来做到这一点。许多静态生成器似乎能够将 JSON 用于内容中的元数据,但不能用于内容的主要来源。

谢谢!

4

1 回答 1

2

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
于 2016-11-17T18:19:48.157 回答