class Jekyll::OpenProjectHelpers::FilteredIndexPageGenerator
Public Instance Methods
generate(site)
click to toggle source
# File lib/jekyll-theme-open-project-helpers/filterable_index.rb, line 45 def generate(site) INDEXES.each do |index_name, params| if site.config['is_hub'] collection_name = 'projects' else collection_name = index_name end items = get_all_items(site, collection_name, params[:item_test]) # Creates a data structure like { tag1: [item1, item2], tag2: [item2, item3] } tags = {} items.each do |item| (item.data['tags'] or []).each do |tag| unless tags.key? tag tags[tag] = [] end tags[tag].push(item) end end # Creates a filtered index page for each tag tags.each do |tag, tagged_items| site.pages << FilteredIndexPage.new( site, site.source, # The filtered page will be nested under /<index page>/<tag>.html File.join(index_name, tag), tag, tagged_items, index_name) end end end