class Jekyll::ProjectGenerator
Public Instance Methods
generate(site)
click to toggle source
# File lib/dsm-portfolio-plugin.rb, line 78 def generate(site) # Select and group posts by subdirectory postsByProject = site.posts.docs.group_by { |post| post.id[/.*(?=\/)/] } # Iterate over groupings postsByProject.each do |grouping| projectId = grouping[0] projectFiles = grouping[1] projectUrls = {} projectCode = -1 # Give each file one-off values and assess availability. projectFiles.each do |file| # Give each the project Id file.data['project_id'] = projectId # Give each the project title file.data['project_title'] = file.data['title'][/.*(?=\/)/] # Give each a type file.data['type'] = file.basename_without_ext if !file.data['project_code'].nil? projectCode = file.data['project_code'] end projectUrls[file.data['type']] = file.url end # Add singling URLs based on type. projectFiles.each do |file| file.data['project_urls'] = projectUrls file.data['project_code'] = projectCode end end end