jekyll-attendease 0.6.4 → 0.6.5.pre

Sign up to get free protection for your applications and to get access to all the features.
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: