2016-10-03 142 views
2

我有一个美国各州和各城市的巨型JSON数组,以及关于它们的其他数据。我想在JSON和输出迭代树结构是这样的:从JSON数组生成静态网站

  1. [阿拉巴马]
    • 的index.html
    • [阿布维尔]
      • 的index.html
    • [Adamsville]
      • 的index.html
  2. [阿拉斯加]
    • 的index.html
    • [安克雷奇]
      • 的index.html
    • [费尔班克斯]
      • 的index.html
  3. ...等

我有两个布局:

  1. state.html
  2. city.html

S远,我还没有找到一个好方法来做到这一点。许多静态gens似乎能够在内容中使用JSON作为元数据,但不能用于内容的主要来源。

谢谢!

+0

Jekyll不会这样做,但我已经读过关于编写自定义插件来做这类事情的人。这个链接有关他是如何做到的有趣信息:http://jimpravetz.com/blog/2011/12/generating-jekyll-pages-from-data/ – Ron

回答

0

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