class Jekyll::AttendeasePlugin::ScheduleGenerator
Attributes
schedule_data[R]
Public Instance Methods
generate(site)
click to toggle source
# File lib/jekyll/attendease_plugin/schedule_generator.rb, line 8 def generate(site) return if !site.config.event? || (site.config.event? && site.config.cms_theme?) if site.config['attendease']['api_host'] && site.config['attendease']['generate_schedule_pages'] @schedule_data = ScheduleDataParser.new(site) # # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # /schedule pages. dir = site.config['attendease']['schedule_path_name'] if dir if (site.config['attendease'] && site.config['attendease']['show_schedule_index']) site.pages << ScheduleIndexPage.new(site, site.source, File.join(dir), @schedule_data.event['dates']) else site.pages << ScheduleDayPage.new(site, site.source, File.join(dir), @schedule_data.event['dates'].first, @schedule_data.sessions, @schedule_data.event['dates']) end site.pages << ScheduleSessionsPage.new(site, site.source, File.join(dir, 'sessions'), @schedule_data.sessions, @schedule_data.event['dates']) @schedule_data.event['dates'].each do |day| site.pages << ScheduleDayPage.new(site, site.source, File.join(dir, day['date']), day, @schedule_data.sessions, @schedule_data.event['dates']) end @schedule_data.sessions.each do |session| site.pages << ScheduleSessionPage.new(site, site.source, File.join(dir, 'sessions'), session) end end # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # /presenters pages. dir = site.config['attendease']['presenters_path_name'] if dir @schedule_data.presenters.each do |presenter| site.pages << PresenterPage.new(site, site.source, dir, presenter, @schedule_data.sessions) end site.pages << PresentersIndexPage.new(site, site.source, File.join(dir), @schedule_data.presenters) end # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # /venue pages. # Create a single venue page at /venue if @schedule_data.venues.length == 1 dir = site.config['attendease']['venue_path_name'] if dir site.pages << VenuePage.new(site, site.source, dir, @schedule_data.venues.first, true) end end # Create a list of venues and venue pages to keep backwards compatibility. dir = site.config['attendease']['venues_path_name'] if dir @schedule_data.venues.each do |venue| site.pages << VenuePage.new(site, site.source, dir, venue) end site.pages << VenuesIndexPage.new(site, site.source, File.join(dir), @schedule_data.venues) end end end