jekyll-attendease 0.6.4 → 0.6.5.pre

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d42713f38f6ac2e2b80dcb0fcd05006ef5d57599
4
+ data.tar.gz: 6185913b55bb21f09c8962471cfc5a2e6423dc27
5
+ SHA512:
6
+ metadata.gz: 9562d7c55430c5fcc29d07639e76a45ea6c516e46ad38807c95f4a1077ef434f96099212428f1291fe382b514d37ccb5988f2b33b27feab461c8e7dedc3653b0
7
+ data.tar.gz: 87d5ba4337fcd5cd758bc9b38186c503b6c887c595861d2826b9ef800e3de05d3305cc00b9789cfa5d9708419105e6a4f4bd20b5f4935020d02972228deae716
@@ -0,0 +1,149 @@
1
+ module Jekyll
2
+ module AttendeasePlugin
3
+ class ScheduleDataParser
4
+
5
+ attr_accessor :site
6
+
7
+ def initialize(site)
8
+ @site = site
9
+ end
10
+
11
+ def event
12
+ site.config['attendease']['event']
13
+ end
14
+
15
+ def presenters
16
+ raw_presenters.each do |presenter|
17
+ presenter['slug'] = Helpers.parameterize("#{presenter['first_name']} #{presenter['last_name']}") + '.html'
18
+ end
19
+ end
20
+
21
+ def venues
22
+ raw_venues.each do |venue|
23
+ venue['slug'] = Helpers.parameterize(venue['name']) + '.html'
24
+ end
25
+ end
26
+
27
+ def rooms
28
+ raw_rooms
29
+ end
30
+
31
+ def sessions
32
+ raw_sessions.each do |session|
33
+ if site.config['attendease']['session_slug_uses_code']
34
+ session['slug'] = session['code'] + '.html'
35
+ else
36
+ session['slug'] = Helpers.parameterize(session['name']) + '.html'
37
+ end
38
+ end
39
+
40
+ populate_sessions_with_related_data!(raw_sessions)
41
+ end
42
+
43
+ def filters
44
+ raw_filters
45
+ end
46
+
47
+ protected
48
+
49
+ def raw_presenters
50
+ @raw_presenters ||= JSON.parse(File.read("#{data_path}/presenters.json")).sort{|p1, p2| p1['last_name'] <=> p2['last_name']}
51
+ end
52
+
53
+ def raw_venues
54
+ @raw_venues ||= JSON.parse(File.read("#{data_path}/venues.json")).sort{|v1, v2| v1['name'] <=> v2['name']}
55
+ end
56
+
57
+ def raw_rooms
58
+ @raw_rooms ||= JSON.parse(File.read("#{data_path}/rooms.json")).sort{|r1, r2| r1['name'] <=> r2['name']}
59
+ end
60
+
61
+ def raw_sessions
62
+ @raw_sessions ||= JSON.parse(File.read("#{data_path}/sessions.json")).sort{|s1, s2| s1['name'] <=> s2['name']}
63
+ end
64
+
65
+ def raw_filters
66
+ @raw_filters ||= JSON.parse(File.read("#{data_path}/filters.json")).sort{|f1, f2| f1['name'] <=> f2['name']}
67
+ end
68
+
69
+ def data_path
70
+ File.join(site.config['source'], '_attendease', 'data')
71
+ end
72
+
73
+ def populate_sessions_with_related_data!(sessions)
74
+ sessions.inject([]) do |memo, s|
75
+ session = s.select do |k, v|
76
+ %w{ id name description code speaker_ids slug }.include?(k)
77
+ end
78
+
79
+ session['presenters'] = get_session_presenters(s)
80
+ populate_session_filters!(session, s)
81
+ session['instances'] = get_session_instances(s)
82
+
83
+ memo << session
84
+ end
85
+ end
86
+
87
+ def get_session_presenters(session)
88
+ session_presenters = presenters.select do |presenter|
89
+ session['speaker_ids'].include?(presenter['id'])
90
+ end
91
+
92
+ session_presenters.inject([]) do |memo, presenter|
93
+ memo << presenter.select do |k, v|
94
+ %w{ id first_name last_name company title profile_url slug }.include?(k)
95
+ end
96
+ end
97
+ end
98
+
99
+ # Populates filter realted data into session,
100
+ # from source.
101
+ def populate_session_filters!(session, source)
102
+ filters_for_session_hash = {}
103
+ filters.each do |filter|
104
+ filter['filter_items'].each_with_index do |filter_item, index|
105
+ if source['filters'].include?(filter_item['id'])
106
+ filters_for_session_hash[filter['name']] ||= []
107
+ filters_for_session_hash[filter['name']] << {
108
+ 'name' => filter_item['name'],
109
+ 'index' => index,
110
+ }
111
+ if event['primary_filter_id'] && event['primary_filter_id'] == filter['id']
112
+ session['primary_filter_name'] = filter['name']
113
+ session['primary_filter'] = filter_item['name']
114
+ end
115
+ end
116
+ end
117
+ end
118
+
119
+ session['filters'] = filters_for_session_hash.map { |key, value| { 'name' => key, 'items' => value } }
120
+ session['filter_tags'] = get_session_filter_tags(session['filters'])
121
+ end
122
+
123
+ def get_session_filter_tags(session_filters)
124
+ session_filters.inject([]) do |memo, filter|
125
+ filter['items'].each do |item|
126
+ memo << Helpers.parameterize('attendease-filter-' + filter['name'] + "-" + item['name'], '-')
127
+ end
128
+ memo
129
+ end.join(" ")
130
+ end
131
+
132
+ def get_session_instances(session)
133
+ session['instances'] ||= []
134
+ session['instances'].inject([]) do |memo, i|
135
+ instance = i.select do |k, v|
136
+ %w{ id date time end_time duration date_formatted time_formatted end_time_formatted duration_formatted room_id }.include?(k)
137
+ end
138
+
139
+ room = rooms.select { |r| r['id'] == i['room_id'] }.first
140
+ venue = venues.select { |v| v['id'] == room['venue_id'] }.first
141
+ instance['room'] = room.merge({ 'venue_name' => venue['name'] })
142
+ instance['venue_slug'] = venue['slug']
143
+
144
+ memo << instance
145
+ end
146
+ end
147
+ end
148
+ end
149
+ end
@@ -12,37 +12,7 @@ module Jekyll
12
12
  def generate(site)
13
13
  if site.config['attendease'] && site.config['attendease']['api_host'] && site.config['attendease']['generate_schedule_pages']
14
14
 
15
- # Fetch all the session data!
16
- attendease_api_host = site.config['attendease']['api_host']
17
- attendease_access_token = site.config['attendease']['access_token']
18
-
19
- attendease_data_path = File.join(site.source, '_attendease', 'data')
20
-
21
- @event = site.config['attendease']['event']
22
-
23
- sessions = JSON.parse(File.read("#{attendease_data_path}/sessions.json")).sort{|s1, s2| s1['name'] <=> s2['name']}
24
- @presenters = JSON.parse(File.read("#{attendease_data_path}/presenters.json")).sort{|p1, p2| p1['last_name'] <=> p2['last_name']}
25
- @rooms = JSON.parse(File.read("#{attendease_data_path}/rooms.json")).sort{|r1, r2| r1['name'] <=> r2['name']}
26
- @filters = JSON.parse(File.read("#{attendease_data_path}/filters.json")).sort{|f1, f2| f1['name'] <=> f2['name']}
27
- @venues = JSON.parse(File.read("#{attendease_data_path}/venues.json")).sort{|v1, v2| v1['name'] <=> v2['name']}
28
-
29
- @presenters.each do |presenter|
30
- presenter['slug'] = Helpers.parameterize("#{presenter['first_name']} #{presenter['last_name']}") + '.html'
31
- end
32
-
33
- @venues.each do |venue|
34
- venue['slug'] = Helpers.parameterize(venue['name']) + '.html'
35
- end
36
-
37
- sessions.each do |session|
38
- if site.config['attendease']['session_slug_uses_code']
39
- session['slug'] = session['code'] + '.html'
40
- else
41
- session['slug'] = Helpers.parameterize(session['name']) + '.html'
42
- end
43
- end
44
-
45
- @sessions = sessions_with_all_data(@event, sessions, @presenters, @rooms, @venues, @filters)
15
+ schedule_data = ScheduleDataParser.new(site)
46
16
 
47
17
  #
48
18
  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -51,18 +21,18 @@ module Jekyll
51
21
 
52
22
  unless dir.nil?
53
23
  if (site.config['attendease'] && site.config['attendease']['show_day_index'])
54
- site.pages << ScheduleIndexPage.new(site, site.source, File.join(dir), @event['dates'])
24
+ site.pages << ScheduleIndexPage.new(site, site.source, File.join(dir), schedule_data.event['dates'])
55
25
  else
56
- site.pages << ScheduleDayPage.new(site, site.source, File.join(dir), @event['dates'].first, @sessions, @event['dates'])
26
+ site.pages << ScheduleDayPage.new(site, site.source, File.join(dir), schedule_data.event['dates'].first, schedule_data.sessions, schedule_data.event['dates'])
57
27
  end
58
28
 
59
- site.pages << ScheduleSessionsPage.new(site, site.source, File.join(dir, 'sessions'), @sessions, @event['dates'])
29
+ site.pages << ScheduleSessionsPage.new(site, site.source, File.join(dir, 'sessions'), schedule_data.sessions, schedule_data.event['dates'])
60
30
 
61
- @event['dates'].each do |day|
62
- site.pages << ScheduleDayPage.new(site, site.source, File.join(dir, day['date']), day, @sessions, @event['dates'])
31
+ schedule_data.event['dates'].each do |day|
32
+ site.pages << ScheduleDayPage.new(site, site.source, File.join(dir, day['date']), day, schedule_data.sessions, schedule_data.event['dates'])
63
33
  end
64
34
 
65
- @sessions.each do |session|
35
+ schedule_data.sessions.each do |session|
66
36
  site.pages << ScheduleSessionPage.new(site, site.source, File.join(dir, 'sessions'), session)
67
37
  end
68
38
  end
@@ -72,11 +42,11 @@ module Jekyll
72
42
  dir = site.config['attendease']['presenters_path_name']
73
43
 
74
44
  unless dir.nil?
75
- @presenters.each do |presenter|
76
- site.pages << PresenterPage.new(site, site.source, dir, presenter, @sessions)
45
+ schedule_data.presenters.each do |presenter|
46
+ site.pages << PresenterPage.new(site, site.source, dir, presenter, schedule_data.sessions)
77
47
  end
78
48
 
79
- site.pages << PresentersIndexPage.new(site, site.source, File.join(dir), @presenters)
49
+ site.pages << PresentersIndexPage.new(site, site.source, File.join(dir), schedule_data.presenters)
80
50
  end
81
51
 
82
52
  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -84,77 +54,13 @@ module Jekyll
84
54
  dir = site.config['attendease']['venues_path_name']
85
55
 
86
56
  unless dir.nil?
87
- @venues.each do |venue|
57
+ schedule_data.venues.each do |venue|
88
58
  site.pages << VenuePage.new(site, site.source, dir, venue)
89
59
  end
90
60
 
91
- site.pages << VenuesIndexPage.new(site, site.source, File.join(dir), @venues)
92
- end
93
- end
94
- end
95
-
96
- def sessions_with_all_data(event, sessions, presenters, rooms, venues, filters)
97
- sessionsData = []
98
-
99
- sessions.each do |s|
100
- session = s.select { |k, v| %w{ id name description code speaker_ids slug }.include?(k) }
101
- session['presenters'] = []
102
- presenters.select{|presenter| s['speaker_ids'].include?(presenter['id'])}.each do |presenter|
103
- session['presenters'] << presenter.select { |k, v| %w{ id first_name last_name company title profile_url slug }.include?(k) }
104
- end
105
-
106
- filters_for_session_hash = {}
107
- filters.each do |filter|
108
- filter['filter_items'].each do |filter_item|
109
- if s['filters'].include?(filter_item['id'])
110
- filters_for_session_hash[filter['name']] = [] unless filters_for_session_hash[filter['name']]
111
- filters_for_session_hash[filter['name']] << {
112
- 'name' => filter_item['name']
113
- }
114
- if event['primary_filter_id'] && event['primary_filter_id'] == filter['id']
115
- session['primary_filter_name'] = filter['name']
116
- session['primary_filter'] = filter_item['name']
117
- end
118
- end
119
- end
120
- end
121
-
122
- filters_for_session = filters_for_session_hash.map { |key, value| { 'name' => key, 'items' => value } }
123
-
124
- session['filters'] = filters_for_session
125
-
126
- filter_tags = []
127
- filters_for_session.each do |filter|
128
- item_names = []
129
- if !filter['items'].nil?
130
- filter['items'].each do |item|
131
- filter_tags << Helpers.parameterize('attendease-filter-' + filter['name'] + "-" + item['name'], '-')
132
- end
133
- end
134
- end
135
- session['filter_tags'] = filter_tags.join(" ")
136
-
137
- if s['instances']
138
- instances = []
139
- s['instances'].each do |i|
140
- instance = i.select { |k, v| %w{ id date time end_time duration date_formatted time_formatted end_time_formatted duration_formatted room_id }.include?(k) }
141
-
142
- room = rooms.select { |room| room['id'] == i['room_id'] }.first
143
- venue = venues.select { |venue| venue['id'] == room['venue_id'] }.first
144
- instance['room'] = room.merge({ 'venue_name' => venue['name'] })
145
- instance['venue_slug'] = venue['slug']
146
-
147
- instances << instance
148
- end
149
- session['instances'] = instances
150
- else
151
- session['instances'] = []
61
+ site.pages << VenuesIndexPage.new(site, site.source, File.join(dir), schedule_data.venues)
152
62
  end
153
-
154
- sessionsData << session
155
63
  end
156
-
157
- sessionsData
158
64
  end
159
65
  end
160
66
  end
@@ -1,5 +1,25 @@
1
1
  module Jekyll
2
2
  module AttendeasePlugin
3
+ class ScheduleWidgetTag < Liquid::Tag
4
+ def render(context)
5
+ schedule_data = ScheduleDataParser.new(context.registers[:site])
6
+ base = File.join(context.registers[:site].config['source'])
7
+
8
+ instances = schedule_data.sessions.inject([]) do |memo, s|
9
+ s['instances'].each do |instance|
10
+ instance['session'] = s
11
+ memo << instance
12
+ end
13
+ memo
14
+ end
15
+ instances.sort!{|x,y| [x['time'], x['session']['name']] <=> [y['time'], y['session']['name']]}
16
+
17
+ source_template_path = File.join(base, '_attendease', 'templates', 'schedule', 'widget.html')
18
+
19
+ Liquid::Template.parse(File.read(source_template_path)).render('instances' => instances, 'filters' => schedule_data.filters)
20
+ end
21
+ end
22
+
3
23
  class AuthScriptTag < Liquid::Tag
4
24
  def render(context)
5
25
  api_host = context.registers[:site].config['attendease']['api_host']
@@ -1,6 +1,6 @@
1
1
  module Jekyll
2
2
  module AttendeasePlugin
3
- VERSION = "0.6.4"
3
+ VERSION = "0.6.5.pre"
4
4
  end
5
5
  end
6
6
 
@@ -1,13 +1,22 @@
1
+ # Helper class that handles loading & parsing schedule data.
2
+ require 'jekyll/attendease_plugin/schedule_data_parser'
3
+
4
+ # Generators:
1
5
  require 'jekyll/attendease_plugin/event_data_generator'
2
6
  require 'jekyll/attendease_plugin/event_layout_generator'
3
7
  require 'jekyll/attendease_plugin/schedule_generator'
4
8
  require 'jekyll/attendease_plugin/sponsor_generator'
5
9
  require 'jekyll/attendease_plugin/pre_zero_point_six_link_redirect_generator'
10
+
11
+ # Redirect page
6
12
  require 'jekyll/attendease_plugin/redirect_page'
13
+
14
+ # Tags, filters and helpers
7
15
  require 'jekyll/attendease_plugin/tags'
8
16
  require 'jekyll/attendease_plugin/filters'
9
17
  require 'jekyll/attendease_plugin/helpers'
10
18
 
19
+ # Pages
11
20
  require 'jekyll/attendease_plugin/event_layout_page'
12
21
  require 'jekyll/attendease_plugin/presenters_index_page'
13
22
  require 'jekyll/attendease_plugin/presenter_page'
@@ -5,6 +5,7 @@ require 'i18n'
5
5
 
6
6
  require 'jekyll/attendease_plugin'
7
7
 
8
+ Liquid::Template.register_tag('attendease_schedule_widget', Jekyll::AttendeasePlugin::ScheduleWidgetTag)
8
9
  Liquid::Template.register_tag('attendease_auth_script', Jekyll::AttendeasePlugin::AuthScriptTag)
9
10
  Liquid::Template.register_tag('attendease_scheduler_script', Jekyll::AttendeasePlugin::SchedulerScriptTag)
10
11
  Liquid::Template.register_tag('attendease_locales_script', Jekyll::AttendeasePlugin::LocalesScriptTag)
@@ -5,15 +5,13 @@ RSpec.describe Jekyll::AttendeasePlugin::ScheduleGenerator do
5
5
  before(:all) do
6
6
  @schedule_generator = find_generator(described_class)
7
7
  @date = @schedule_generator.event['dates'].first['date']
8
- @index_file = 'index.html'
9
8
  @session_slug = @schedule_generator.sessions.first['slug']
10
9
  @presenter_slug = @schedule_generator.presenters.first['slug']
11
- @presenter_social = @schedule_generator.presenters.first['social']
12
10
  @venue_slug = Jekyll::AttendeasePlugin::Helpers.parameterize(@schedule_generator.venues.first['name'], '_') + '.html'
13
11
  end
14
12
 
15
13
  it 'creates a presenters index page' do
16
- file = File.join(@site.config['destination'], @site.config['attendease']['presenters_path_name'], @index_file)
14
+ file = File.join(@site.config['destination'], @site.config['attendease']['presenters_path_name'], 'index.html')
17
15
  expect(File.exists?(file)).to eq(true)
18
16
  expect(File.file?(file)).to eq(true)
19
17
  end
@@ -25,7 +23,7 @@ RSpec.describe Jekyll::AttendeasePlugin::ScheduleGenerator do
25
23
  end
26
24
 
27
25
  it 'creates a venue index page' do
28
- file = File.join(@site.config['destination'], @site.config['attendease']['venues_path_name'], @index_file)
26
+ file = File.join(@site.config['destination'], @site.config['attendease']['venues_path_name'], 'index.html')
29
27
  expect(File.exists?(file)).to eq(true)
30
28
  expect(File.file?(file)).to eq(true)
31
29
  end
@@ -37,20 +35,20 @@ RSpec.describe Jekyll::AttendeasePlugin::ScheduleGenerator do
37
35
  end
38
36
 
39
37
  it 'creates a schedule index page' do
40
- file = File.join(@site.config['destination'], @site.config['attendease']['schedule_path_name'], @index_file)
38
+ file = File.join(@site.config['destination'], @site.config['attendease']['schedule_path_name'], 'index.html')
41
39
  expect(File.exists?(file)).to eq(true)
42
40
  expect(File.file?(file)).to eq(true)
43
41
  end
44
42
 
45
43
  it 'creates a schedule day index page' do
46
- file = File.join(@site.config['destination'], @site.config['attendease']['schedule_path_name'], @date, @index_file)
44
+ file = File.join(@site.config['destination'], @site.config['attendease']['schedule_path_name'], @date, 'index.html')
47
45
  expect(File.exists?(file)).to eq(true)
48
46
  expect(File.file?(file)).to eq(true)
49
- expect(File.read(File.join(@site.config['destination'], @site.config['attendease']['schedule_path_name'], @index_file))).to include 'attendease-session-and-instance'
47
+ expect(File.read(File.join(@site.config['destination'], @site.config['attendease']['schedule_path_name'], 'index.html'))).to include 'attendease-session-and-instance'
50
48
  end
51
49
 
52
50
  it 'creates a schedule sessions index page' do
53
- file = File.join(@site.config['destination'], @site.config['attendease']['schedule_path_name'], 'sessions', @index_file)
51
+ file = File.join(@site.config['destination'], @site.config['attendease']['schedule_path_name'], 'sessions', 'index.html')
54
52
  expect(File.exists?(file)).to eq(true)
55
53
  expect(File.file?(file)).to eq(true)
56
54
  end
@@ -63,7 +61,7 @@ RSpec.describe Jekyll::AttendeasePlugin::ScheduleGenerator do
63
61
 
64
62
  context 'presenter linking' do
65
63
  it 'links presenters correctly from the presenter index page' do
66
- expect(File.read(File.join(@site.config['destination'], @site.config['attendease']['presenters_path_name'], @index_file))).to include @presenter_slug
64
+ expect(File.read(File.join(@site.config['destination'], @site.config['attendease']['presenters_path_name'], 'index.html'))).to include @presenter_slug
67
65
  end
68
66
 
69
67
  it 'links presenters correctly from the session page' do
@@ -71,27 +69,9 @@ RSpec.describe Jekyll::AttendeasePlugin::ScheduleGenerator do
71
69
  end
72
70
  end
73
71
 
74
- context 'presenter social links' do
75
- it 'includes the included social links' do
76
- expect(File.read(File.join(@site.config['destination'], @site.config['attendease']['presenters_path_name'], @index_file))).to include "twitter.com/#{@presenter_social['twitter']}"
77
- expect(File.read(File.join(@site.config['destination'], @site.config['attendease']['presenters_path_name'], @index_file))).to include "facebook.com/#{@presenter_social['facebook']}"
78
-
79
- expect(File.read(File.join(@site.config['destination'], @site.config['attendease']['presenters_path_name'], @presenter_slug))).to include "twitter.com/#{@presenter_social['twitter']}"
80
- expect(File.read(File.join(@site.config['destination'], @site.config['attendease']['presenters_path_name'], @presenter_slug))).to include "facebook.com/#{@presenter_social['facebook']}"
81
- end
82
-
83
- it 'does not include social links that are not there' do
84
- expect(File.read(File.join(@site.config['destination'], @site.config['attendease']['presenters_path_name'], @index_file))).to_not include "linkedin"
85
- expect(File.read(File.join(@site.config['destination'], @site.config['attendease']['presenters_path_name'], @index_file))).to_not include "googleplus"
86
-
87
- expect(File.read(File.join(@site.config['destination'], @site.config['attendease']['presenters_path_name'], @presenter_slug))).to_not include "linkedin"
88
- expect(File.read(File.join(@site.config['destination'], @site.config['attendease']['presenters_path_name'], @presenter_slug))).to_not include "googleplus"
89
- end
90
- end
91
-
92
72
  context 'venue linking' do
93
73
  it 'links venues correctly from the venue index page' do
94
- expect(File.read(File.join(@site.config['destination'], @site.config['attendease']['venues_path_name'], @index_file))).to include @venue_slug
74
+ expect(File.read(File.join(@site.config['destination'], @site.config['attendease']['venues_path_name'], 'index.html'))).to include @venue_slug
95
75
  end
96
76
 
97
77
  it 'links venues correctly from the presenter page' do
@@ -106,7 +86,7 @@ RSpec.describe Jekyll::AttendeasePlugin::ScheduleGenerator do
106
86
  context 'in a site with attendease.show_day_index = true' do
107
87
  it 'creates the day index page' do
108
88
  site = build_site({ 'attendease' => { 'show_day_index' => true } })
109
- expect(File.read(File.join(site.config['destination'], site.config['attendease']['schedule_path_name'], @index_file))).to_not include 'attendease-session-and-instance'
89
+ expect(File.read(File.join(site.config['destination'], site.config['attendease']['schedule_path_name'], 'index.html'))).to_not include 'attendease-session-and-instance'
110
90
  end
111
91
  end
112
92
 
@@ -22,41 +22,6 @@
22
22
  <div class="attendease-presenter-company">
23
23
  {{ presenter.company }}
24
24
  </div>
25
-
26
- {% if presenter.social %}
27
- <div class="attendease-presenter-social">
28
- {% if presenter.social.twitter and presenter.social.twitter != '' %}
29
- <a class="attendease-social-icon twitter" href="https://twitter.com/{{ presenter.social.twitter }}" target="_blank">
30
- <i class="fa fa-twitter-square fa-3"></i>
31
- <span class="attendease-social-network">Twitter</span>
32
- <span class="attendease-social-handle">@{{ presenter.social.twitter }}</span>
33
- <span class="attendease-social-url">https://twitter.com/{{ presenter.social.twitter }}</span>
34
- </a>
35
- {% endif %}
36
- {% if presenter.social.facebook and presenter.social.facebook != '' %}
37
- <a class="attendease-social-icon facebook" href="https://www.facebook.com/{{ presenter.social.facebook }}" target="_blank">
38
- <i class="fa fa-facebook-square fa-3"></i>
39
- <span class="attendease-social-network">Facebook</span>
40
- <span class="attendease-social-handle">{{ presenter.social.facebook }}</span>
41
- <span class="attendease-social-url">https://www.facebook.com/{{ presenter.social.facebook }}</span>
42
- </a>
43
- {% endif %}
44
- {% if presenter.social.linkedin and presenter.social.linkedin != '' %}
45
- <a class="attendease-social-icon linkedin" href="{{ presenter.social.linkedin }}" target="_blank">
46
- <i class="fa fa-linkedin-square"></i>
47
- <span class="attendease-social-network">LinkedIn</span>
48
- <span class="attendease-social-url">{{ presenter.social.linkedin }}</span>
49
- </a>
50
- {% endif %}
51
- {% if presenter.social.googleplus and presenter.social.googleplus != '' %}
52
- <a class="attendease-social-icon googleplus" href="{{ presenter.social.googleplus }}" target="_blank">
53
- <i class="fa fa-google-plus-square"></i>
54
- <span class="attendease-social-network">Google+</span>
55
- <span class="attendease-social-url">{{ presenter.social.googleplus }}</span>
56
- </a>
57
- {% endif %}
58
- </div>
59
- {% endif %}
60
25
  </div>
61
26
  {% endfor %}
62
27
  </div>
@@ -16,41 +16,6 @@
16
16
  {{ page.presenter.company }}
17
17
  </div>
18
18
 
19
- {% if page.presenter.social %}
20
- <div class="attendease-presenter-social">
21
- {% if page.presenter.social.twitter and page.presenter.social.twitter != '' %}
22
- <a class="attendease-social-icon twitter" href="https://twitter.com/{{ page.presenter.social.twitter }}" target="_blank">
23
- <i class="fa fa-twitter-square fa-3"></i>
24
- <span class="attendease-social-network">Twitter</span>
25
- <span class="attendease-social-handle">@{{ page.presenter.social.twitter }}</span>
26
- <span class="attendease-social-url">https://twitter.com/{{ page.presenter.social.twitter }}</span>
27
- </a>
28
- {% endif %}
29
- {% if page.presenter.social.facebook and page.presenter.social.facebook != '' %}
30
- <a class="attendease-social-icon facebook" href="https://www.facebook.com/{{ page.presenter.social.facebook }}" target="_blank">
31
- <i class="fa fa-facebook-square fa-3"></i>
32
- <span class="attendease-social-network">Facebook</span>
33
- <span class="attendease-social-handle">{{ page.presenter.social.facebook }}</span>
34
- <span class="attendease-social-url">https://www.facebook.com/{{ page.presenter.social.facebook }}</span>
35
- </a>
36
- {% endif %}
37
- {% if page.presenter.social.linkedin and page.presenter.social.linkedin != '' %}
38
- <a class="attendease-social-icon linkedin" href="{{ page.presenter.social.linkedin }}" target="_blank">
39
- <i class="fa fa-linkedin-square"></i>
40
- <span class="attendease-social-network">LinkedIn</span>
41
- <span class="attendease-social-url">{{ page.presenter.social.linkedin }}</span>
42
- </a>
43
- {% endif %}
44
- {% if page.presenter.social.googleplus and page.presenter.social.googleplus != '' %}
45
- <a class="attendease-social-icon googleplus" href="{{ page.presenter.social.googleplus }}" target="_blank">
46
- <i class="fa fa-google-plus-square"></i>
47
- <span class="attendease-social-network">Google+</span>
48
- <span class="attendease-social-url">{{ page.presenter.social.googleplus }}</span>
49
- </a>
50
- {% endif %}
51
- </div>
52
- {% endif %}
53
-
54
19
  <div class="attendease-presenter-bio">
55
20
  {{ page.presenter.bio | markdownify }}
56
21
  </div>
@@ -0,0 +1,22 @@
1
+ <div class="attendease-schedule-widget">
2
+ {% for instance in instances %}
3
+ <div class="attendease-session-and-instance {{ instance.session.filter_tags }}" data-instance-id="{{ instance.id }}" data-session-id="{{ instance.session.id }}">
4
+ <div class="attendease-instance-details">
5
+ <div class="attendease-instance-detail attendease-time-range" data-duration="{{ instance.duration }}" data-start-time="{{ instance.time }}">
6
+ {{ instance.time_formatted }} - {{ instance.end_time_formatted}}
7
+
8
+ <div class="attendease-duration" data-duration="{{ instance.duration }}">
9
+ {{ instance.duration_formatted }}
10
+ </div>
11
+ </div>
12
+ </div>
13
+ <div class="attendease-name">
14
+ {% for tag in instance.session.filter_tags %}
15
+ <span class="{{ tag }}">{{ tag }}</span>
16
+ {% endfor %}
17
+ <h2>{{ instance.session.name }}</h2>
18
+ </div>
19
+ </div>
20
+ {% endfor %}
21
+ </div>
22
+
@@ -1,6 +1,6 @@
1
1
  <div class="attendease-sponsors">
2
2
  <div class="attendease-header">
3
- <h1>{% t event.lingo.sponsors %}</h1>
3
+ <h1>Sponsors</h1>
4
4
  </div>
5
5
 
6
6
  {% for level in page.sponsor_levels %}
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-attendease
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.4
5
- prerelease:
4
+ version: 0.6.5.pre
6
5
  platform: ruby
7
6
  authors:
8
7
  - Michael Wood
@@ -16,119 +15,104 @@ dependencies:
16
15
  - !ruby/object:Gem::Dependency
17
16
  name: httparty
18
17
  requirement: !ruby/object:Gem::Requirement
19
- none: false
20
18
  requirements:
21
- - - ~>
19
+ - - "~>"
22
20
  - !ruby/object:Gem::Version
23
21
  version: 0.13.1
24
22
  type: :runtime
25
23
  prerelease: false
26
24
  version_requirements: !ruby/object:Gem::Requirement
27
- none: false
28
25
  requirements:
29
- - - ~>
26
+ - - "~>"
30
27
  - !ruby/object:Gem::Version
31
28
  version: 0.13.1
32
29
  - !ruby/object:Gem::Dependency
33
30
  name: json
34
31
  requirement: !ruby/object:Gem::Requirement
35
- none: false
36
32
  requirements:
37
- - - ~>
33
+ - - "~>"
38
34
  - !ruby/object:Gem::Version
39
35
  version: 1.8.1
40
36
  type: :runtime
41
37
  prerelease: false
42
38
  version_requirements: !ruby/object:Gem::Requirement
43
- none: false
44
39
  requirements:
45
- - - ~>
40
+ - - "~>"
46
41
  - !ruby/object:Gem::Version
47
42
  version: 1.8.1
48
43
  - !ruby/object:Gem::Dependency
49
44
  name: i18n
50
45
  requirement: !ruby/object:Gem::Requirement
51
- none: false
52
46
  requirements:
53
- - - ~>
47
+ - - "~>"
54
48
  - !ruby/object:Gem::Version
55
49
  version: 0.6.9
56
50
  type: :runtime
57
51
  prerelease: false
58
52
  version_requirements: !ruby/object:Gem::Requirement
59
- none: false
60
53
  requirements:
61
- - - ~>
54
+ - - "~>"
62
55
  - !ruby/object:Gem::Version
63
56
  version: 0.6.9
64
57
  - !ruby/object:Gem::Dependency
65
58
  name: redcarpet
66
59
  requirement: !ruby/object:Gem::Requirement
67
- none: false
68
60
  requirements:
69
- - - ~>
61
+ - - "~>"
70
62
  - !ruby/object:Gem::Version
71
63
  version: 2.3.0
72
64
  type: :runtime
73
65
  prerelease: false
74
66
  version_requirements: !ruby/object:Gem::Requirement
75
- none: false
76
67
  requirements:
77
- - - ~>
68
+ - - "~>"
78
69
  - !ruby/object:Gem::Version
79
70
  version: 2.3.0
80
71
  - !ruby/object:Gem::Dependency
81
72
  name: bundler
82
73
  requirement: !ruby/object:Gem::Requirement
83
- none: false
84
74
  requirements:
85
- - - ~>
75
+ - - "~>"
86
76
  - !ruby/object:Gem::Version
87
77
  version: '1.3'
88
78
  type: :development
89
79
  prerelease: false
90
80
  version_requirements: !ruby/object:Gem::Requirement
91
- none: false
92
81
  requirements:
93
- - - ~>
82
+ - - "~>"
94
83
  - !ruby/object:Gem::Version
95
84
  version: '1.3'
96
85
  - !ruby/object:Gem::Dependency
97
86
  name: rake
98
87
  requirement: !ruby/object:Gem::Requirement
99
- none: false
100
88
  requirements:
101
- - - ! '>='
89
+ - - ">="
102
90
  - !ruby/object:Gem::Version
103
91
  version: '0'
104
92
  type: :development
105
93
  prerelease: false
106
94
  version_requirements: !ruby/object:Gem::Requirement
107
- none: false
108
95
  requirements:
109
- - - ! '>='
96
+ - - ">="
110
97
  - !ruby/object:Gem::Version
111
98
  version: '0'
112
99
  - !ruby/object:Gem::Dependency
113
100
  name: rspec
114
101
  requirement: !ruby/object:Gem::Requirement
115
- none: false
116
102
  requirements:
117
- - - ! '>='
103
+ - - ">="
118
104
  - !ruby/object:Gem::Version
119
105
  version: '0'
120
106
  type: :development
121
107
  prerelease: false
122
108
  version_requirements: !ruby/object:Gem::Requirement
123
- none: false
124
109
  requirements:
125
- - - ! '>='
110
+ - - ">="
126
111
  - !ruby/object:Gem::Version
127
112
  version: '0'
128
113
  - !ruby/object:Gem::Dependency
129
114
  name: jekyll
130
115
  requirement: !ruby/object:Gem::Requirement
131
- none: false
132
116
  requirements:
133
117
  - - '='
134
118
  - !ruby/object:Gem::Version
@@ -136,7 +120,6 @@ dependencies:
136
120
  type: :development
137
121
  prerelease: false
138
122
  version_requirements: !ruby/object:Gem::Requirement
139
- none: false
140
123
  requirements:
141
124
  - - '='
142
125
  - !ruby/object:Gem::Version
@@ -147,6 +130,8 @@ executables: []
147
130
  extensions: []
148
131
  extra_rdoc_files: []
149
132
  files:
133
+ - lib/jekyll-attendease.rb
134
+ - lib/jekyll/attendease_plugin.rb
150
135
  - lib/jekyll/attendease_plugin/event_data_generator.rb
151
136
  - lib/jekyll/attendease_plugin/event_layout_generator.rb
152
137
  - lib/jekyll/attendease_plugin/event_layout_page.rb
@@ -156,6 +141,7 @@ files:
156
141
  - lib/jekyll/attendease_plugin/presenter_page.rb
157
142
  - lib/jekyll/attendease_plugin/presenters_index_page.rb
158
143
  - lib/jekyll/attendease_plugin/redirect_page.rb
144
+ - lib/jekyll/attendease_plugin/schedule_data_parser.rb
159
145
  - lib/jekyll/attendease_plugin/schedule_day_page.rb
160
146
  - lib/jekyll/attendease_plugin/schedule_generator.rb
161
147
  - lib/jekyll/attendease_plugin/schedule_index_page.rb
@@ -167,8 +153,16 @@ files:
167
153
  - lib/jekyll/attendease_plugin/venue_page.rb
168
154
  - lib/jekyll/attendease_plugin/venues_index_page.rb
169
155
  - lib/jekyll/attendease_plugin/version.rb
170
- - lib/jekyll/attendease_plugin.rb
171
- - lib/jekyll-attendease.rb
156
+ - spec/lib/jekyll/attendease_plugin/event_data_generator_spec.rb
157
+ - spec/lib/jekyll/attendease_plugin/event_layout_generator_spec.rb
158
+ - spec/lib/jekyll/attendease_plugin/filters_spec.rb
159
+ - spec/lib/jekyll/attendease_plugin/helpers_spec.rb
160
+ - spec/lib/jekyll/attendease_plugin/pre_zero_point_six_link_redirect_generator_spec.rb
161
+ - spec/lib/jekyll/attendease_plugin/schedule_generator_spec.rb
162
+ - spec/lib/jekyll/attendease_plugin/sponsor_generator_spec.rb
163
+ - spec/lib/jekyll/attendease_plugin/tags_spec.rb
164
+ - spec/spec_helper.rb
165
+ - spec/support/fixtures_helpers.rb
172
166
  - templates/_includes/attendease/presenters/index.html
173
167
  - templates/_includes/attendease/presenters/presenter.html
174
168
  - templates/_includes/attendease/redirect.html
@@ -176,44 +170,34 @@ files:
176
170
  - templates/_includes/attendease/schedule/index.html
177
171
  - templates/_includes/attendease/schedule/session.html
178
172
  - templates/_includes/attendease/schedule/sessions.html
173
+ - templates/_includes/attendease/schedule/widget.html
179
174
  - templates/_includes/attendease/sponsors/index.html
180
175
  - templates/_includes/attendease/venues/index.html
181
176
  - templates/_includes/attendease/venues/venue.html
182
177
  - templates/layout.html
183
- - spec/lib/jekyll/attendease_plugin/event_data_generator_spec.rb
184
- - spec/lib/jekyll/attendease_plugin/event_layout_generator_spec.rb
185
- - spec/lib/jekyll/attendease_plugin/filters_spec.rb
186
- - spec/lib/jekyll/attendease_plugin/helpers_spec.rb
187
- - spec/lib/jekyll/attendease_plugin/pre_zero_point_six_link_redirect_generator_spec.rb
188
- - spec/lib/jekyll/attendease_plugin/schedule_generator_spec.rb
189
- - spec/lib/jekyll/attendease_plugin/sponsor_generator_spec.rb
190
- - spec/lib/jekyll/attendease_plugin/tags_spec.rb
191
- - spec/spec_helper.rb
192
- - spec/support/fixtures_helpers.rb
193
178
  homepage: https://attendease.com/
194
179
  licenses:
195
180
  - MIT
181
+ metadata: {}
196
182
  post_install_message:
197
183
  rdoc_options: []
198
184
  require_paths:
199
185
  - lib
200
186
  required_ruby_version: !ruby/object:Gem::Requirement
201
- none: false
202
187
  requirements:
203
- - - ! '>='
188
+ - - ">="
204
189
  - !ruby/object:Gem::Version
205
190
  version: '0'
206
191
  required_rubygems_version: !ruby/object:Gem::Requirement
207
- none: false
208
192
  requirements:
209
- - - ! '>='
193
+ - - ">"
210
194
  - !ruby/object:Gem::Version
211
- version: '0'
195
+ version: 1.3.1
212
196
  requirements: []
213
197
  rubyforge_project:
214
- rubygems_version: 1.8.23
198
+ rubygems_version: 2.2.0
215
199
  signing_key:
216
- specification_version: 3
200
+ specification_version: 4
217
201
  summary: Attendease event helper for Jekyll
218
202
  test_files:
219
203
  - spec/lib/jekyll/attendease_plugin/event_data_generator_spec.rb
@@ -226,3 +210,4 @@ test_files:
226
210
  - spec/lib/jekyll/attendease_plugin/tags_spec.rb
227
211
  - spec/spec_helper.rb
228
212
  - spec/support/fixtures_helpers.rb
213
+ has_rdoc: