2016-10-03 5 views
2

У меня есть гигантский массив JSON каждого штата и города США, а также другие данные о каждом из них. Я хотел бы перебрать JSON и вывести структуру дерева, как это:Создание статического сайта из массива JSON

  1. [Алабама]
    • index.html
    • [Abbeville]
      • index.html
    • [Adamsville]
      • index.html
  2. [Аляска]
    • index.html
    • [Анкоридж]
      • index.html
    • [Фэрбэнкс]
      • index.html
  3. ... и т.д.

Я бы два макета:

  1. state.html
  2. city.html

S До сих пор я не нашел отличного способа сделать это. У многих статических ролей есть возможность использовать 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/

Вы бы сделать что-то вроде Have 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