jekyll-attendease 0.6.24 → 0.6.25b
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 +4 -4
- data/lib/jekyll-attendease.rb +1 -0
- data/lib/jekyll/attendease_plugin.rb +2 -0
- data/lib/jekyll/attendease_plugin/event_data_generator.rb +2 -1
- data/lib/jekyll/attendease_plugin/event_template_generator.rb +2 -1
- data/lib/jekyll/attendease_plugin/site_page.rb +20 -0
- data/lib/jekyll/attendease_plugin/site_pages_generator.rb +14 -0
- data/lib/jekyll/attendease_plugin/tags.rb +39 -0
- data/lib/jekyll/attendease_plugin/version.rb +1 -1
- data/spec/lib/jekyll/attendease_plugin/event_data_generator_spec.rb +42 -0
- data/spec/lib/jekyll/attendease_plugin/event_layout_generator_spec.rb +1 -1
- data/spec/lib/jekyll/attendease_plugin/tags_spec.rb +5 -0
- data/spec/spec_helper.rb +2 -2
- data/templates/attendease/pages/default.html +3 -0
- metadata +20 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 298b49dc03d53f5a61bb2b34da0efe4fd5146562
|
4
|
+
data.tar.gz: 3481dab008802f780c60d3850aae451424872da0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1f6567967bfaac467e1fd297d39475374cd55c76541f194fd0e85f769467055eadf0e9bdf9a74689d227dbf4689f6df5fe359b0f6d0999699d2e104a0cb46d15
|
7
|
+
data.tar.gz: 205d2f3a17a1c765fb64f0cb83a5bbe6eb95f9ec6d94634773565319bd99ba0fb6d405027366d5de0c1add8fc05281dd9fc71c3517e049855f317152740d7905
|
data/lib/jekyll-attendease.rb
CHANGED
@@ -13,5 +13,6 @@ Liquid::Template.register_tag('attendease_locales_script', Jekyll::AttendeaseP
|
|
13
13
|
Liquid::Template.register_tag('attendease_auth_account', Jekyll::AttendeasePlugin::AuthAccountTag)
|
14
14
|
Liquid::Template.register_tag('attendease_auth_action', Jekyll::AttendeasePlugin::AuthActionTag)
|
15
15
|
Liquid::Template.register_tag('attendease_t', Jekyll::AttendeasePlugin::TranslateTag)
|
16
|
+
Liquid::Template.register_tag('attendease_nav', Jekyll::AttendeasePlugin::NavigationTag)
|
16
17
|
|
17
18
|
Liquid::Template.register_filter(Jekyll::AttendeasePlugin::Filters)
|
@@ -8,6 +8,7 @@ require 'jekyll/attendease_plugin/event_template_generator'
|
|
8
8
|
require 'jekyll/attendease_plugin/home_page_generator'
|
9
9
|
require 'jekyll/attendease_plugin/schedule_generator'
|
10
10
|
require 'jekyll/attendease_plugin/sponsor_generator'
|
11
|
+
require 'jekyll/attendease_plugin/site_pages_generator'
|
11
12
|
require 'jekyll/attendease_plugin/pre_zero_point_six_link_redirect_generator'
|
12
13
|
|
13
14
|
# Redirect page
|
@@ -30,6 +31,7 @@ require 'jekyll/attendease_plugin/schedule_session_page'
|
|
30
31
|
require 'jekyll/attendease_plugin/sponsors_index_page'
|
31
32
|
require 'jekyll/attendease_plugin/venues_index_page'
|
32
33
|
require 'jekyll/attendease_plugin/venue_page'
|
34
|
+
require 'jekyll/attendease_plugin/site_page'
|
33
35
|
|
34
36
|
# Ve.rs.ion
|
35
37
|
require 'jekyll/attendease_plugin/version'
|
@@ -34,7 +34,7 @@ module Jekyll
|
|
34
34
|
|
35
35
|
FileUtils.mkdir_p(@attendease_data_path)
|
36
36
|
|
37
|
-
data_files = %w{ site event sessions presenters rooms filters venues sponsors }.map { |m| "#{m}.json"} << 'lingo.yml'
|
37
|
+
data_files = %w{ site event sessions presenters rooms filters venues sponsors pages }.map { |m| "#{m}.json"} << 'lingo.yml'
|
38
38
|
|
39
39
|
data_files.each do |file_name|
|
40
40
|
update_data = true
|
@@ -87,6 +87,7 @@ module Jekyll
|
|
87
87
|
|
88
88
|
# make this data available to anything that wants it
|
89
89
|
site.config['attendease'][File.basename(file_name, '.*')] = data
|
90
|
+
site.data[File.basename(file_name, '.*')] = data
|
90
91
|
|
91
92
|
if data.is_a?(Hash)
|
92
93
|
if file_name == 'site.json'
|
@@ -25,7 +25,7 @@ module Jekyll
|
|
25
25
|
Jekyll.logger.info "[Attendease] Generating theme templates..."
|
26
26
|
|
27
27
|
# Generate the template files if they don't yet exist.
|
28
|
-
%w{ schedule presenters venues sponsors}.each do |p|
|
28
|
+
%w{ schedule presenters venues sponsors pages }.each do |p|
|
29
29
|
path = File.join(site.source, '_attendease', 'templates', p)
|
30
30
|
FileUtils.mkdir_p(path)
|
31
31
|
raise "Could not create #{path}." unless File.exists?(path)
|
@@ -54,6 +54,7 @@ EOF
|
|
54
54
|
venues/index
|
55
55
|
venues/venue
|
56
56
|
sponsors/index
|
57
|
+
pages/default
|
57
58
|
}.each do |page|
|
58
59
|
destination_file = File.join(site.source, '_attendease', 'templates', "#{page}.html")
|
59
60
|
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Jekyll
|
2
|
+
module AttendeasePlugin
|
3
|
+
class SitePage < Page
|
4
|
+
def initialize(site, base, page)
|
5
|
+
@site = site
|
6
|
+
@base = base
|
7
|
+
@dir = page['slug']
|
8
|
+
@name = 'index.html'
|
9
|
+
|
10
|
+
self.process(@name)
|
11
|
+
|
12
|
+
self.read_yaml(File.join(base, '_attendease', 'templates', 'pages'), 'default.html')
|
13
|
+
|
14
|
+
self.data['title'] = page['title']
|
15
|
+
|
16
|
+
self.data['site_page'] = page
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Jekyll
|
2
|
+
module AttendeasePlugin
|
3
|
+
class SitePagesGenerator < Generator
|
4
|
+
safe true
|
5
|
+
|
6
|
+
def generate(site)
|
7
|
+
site.config['attendease']['pages'].each do |page|
|
8
|
+
site.pages << SitePage.new(site, site.source, page)
|
9
|
+
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -80,6 +80,45 @@ module Jekyll
|
|
80
80
|
'<div id="attendease-auth-action"></div>'
|
81
81
|
end
|
82
82
|
end
|
83
|
+
|
84
|
+
#require 'pry'
|
85
|
+
|
86
|
+
class NavigationTag < Liquid::Block
|
87
|
+
def initialize(tag_name, params, tokens)
|
88
|
+
super
|
89
|
+
@options = {}
|
90
|
+
params.split(/\s/).each do |keypair|
|
91
|
+
opt = keypair.split('=')
|
92
|
+
@options[opt[0]] = opt[1] if opt.length == 2
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
def render(context)
|
97
|
+
pages = context.registers[:site].data['pages']
|
98
|
+
|
99
|
+
config = context.registers[:site].config['attendease']
|
100
|
+
|
101
|
+
nav = []
|
102
|
+
if pages.is_a?(Array)
|
103
|
+
pages.sort! { |a, b| a['weight'] <=> b['weight'] }
|
104
|
+
key_mapping = { 'schedule' => 'sessions' }
|
105
|
+
pages.select { |p| p['top_level'] }.each do |page|
|
106
|
+
if page['active'] || !page['hidden']
|
107
|
+
# only activate nav links if there is content
|
108
|
+
config_key = "has_#{key_mapping[page['page_key']] || page['page_key']}"
|
109
|
+
if config[config_key].nil? || (!config[config_key].nil? && config[config_key] == true)
|
110
|
+
template = Liquid::Template.parse(super)
|
111
|
+
template.assigns['page'] = page
|
112
|
+
nav << template.render
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
nav.join("\n")
|
117
|
+
else
|
118
|
+
''
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
83
122
|
end
|
84
123
|
end
|
85
124
|
|
@@ -2,8 +2,50 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
RSpec.describe Jekyll::AttendeasePlugin::EventDataGenerator do
|
4
4
|
|
5
|
+
before(:all) do
|
6
|
+
@event_data_generator = find_generator(described_class)
|
7
|
+
end
|
5
8
|
#pending 'downloads data and populates the site.config variable' do
|
6
9
|
#end
|
10
|
+
it 'populates a site wide presenters array' do
|
11
|
+
expect(@site.config['attendease']['presenters'].class).to eq(Array)
|
12
|
+
expect(@site.config['attendease']['presenters'].length).to eq(2)
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'populates a site wide rooms array' do
|
16
|
+
expect(@site.config['attendease']['rooms'].class).to eq(Array)
|
17
|
+
expect(@site.config['attendease']['rooms'].length).to eq(1)
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'populates a site wide sessions array' do
|
21
|
+
expect(@site.config['attendease']['sessions'].class).to eq(Array)
|
22
|
+
expect(@site.config['attendease']['sessions'].length).to eq(3)
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'populates a site wide venues array' do
|
26
|
+
expect(@site.config['attendease']['venues'].class).to eq(Array)
|
27
|
+
expect(@site.config['attendease']['venues'].length).to eq(2)
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'populates a site wide filters array' do
|
31
|
+
expect(@site.config['attendease']['filters'].class).to eq(Array)
|
32
|
+
expect(@site.config['attendease']['filters'].length).to eq(1)
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'populates a site wide days array' do
|
36
|
+
expect(@site.config['attendease']['days'].class).to eq(Array)
|
37
|
+
expect(@site.config['attendease']['days'].length).to eq(2)
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'populates a site wide sponsors array' do
|
41
|
+
expect(@site.config['attendease']['sponsors'].class).to eq(Array)
|
42
|
+
expect(@site.config['attendease']['sponsors'].length).to eq(1)
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'populates a site wide event object' do
|
46
|
+
expect(@site.config['attendease']['event'].class).to eq(Hash)
|
47
|
+
end
|
48
|
+
|
7
49
|
|
8
50
|
end
|
9
51
|
|
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
3
3
|
RSpec.describe Jekyll::AttendeasePlugin::EventLayoutGenerator do
|
4
4
|
|
5
5
|
it 'creates the pre-compiled layout stubs' do
|
6
|
-
%w{ layout register surveys }.each do |layout|
|
6
|
+
%w{ layout register surveys pages }.each do |layout|
|
7
7
|
expect(File.exists?(File.join(@site.config['destination'], 'attendease_layouts', "#{layout}.html"))).to eq(true)
|
8
8
|
end
|
9
9
|
end
|
@@ -50,6 +50,11 @@ RSpec.describe "Jekyll Attendease tags" do
|
|
50
50
|
expect(subject.gsub(' ', '').gsub("\n", '')).to eq(schedule_widget_data.gsub(' ', '').gsub("\n", ''))
|
51
51
|
end
|
52
52
|
end
|
53
|
+
|
54
|
+
context "{% attendease_nav %}" do
|
55
|
+
subject { render("{% attendease_nav %}{% raw %}<li><a href=\"/{{ page.slug }}/\">{{ page.name }}</a></li>{% endraw %}{% endattendease_nav %}") }
|
56
|
+
it { is_expected.to match(/<li><a href="\/schedule\/"/) }
|
57
|
+
end
|
53
58
|
end
|
54
59
|
|
55
60
|
def schedule_widget_data
|
data/spec/spec_helper.rb
CHANGED
@@ -65,7 +65,7 @@ RSpec.configure do |config|
|
|
65
65
|
'generate_schedule_pages' => true,
|
66
66
|
'has_sessions' => true,
|
67
67
|
'has_presenters' => true,
|
68
|
-
'has_sponsors' =>
|
68
|
+
'has_sponsors' => false,
|
69
69
|
'has_rooms' => true,
|
70
70
|
'has_filters' => true,
|
71
71
|
'has_venues' => true
|
@@ -75,7 +75,7 @@ RSpec.configure do |config|
|
|
75
75
|
|
76
76
|
def build_site(config = {})
|
77
77
|
site = Jekyll::Site.new(site_configuration(config))
|
78
|
-
|
78
|
+
site.process
|
79
79
|
site
|
80
80
|
end
|
81
81
|
|
metadata
CHANGED
@@ -1,7 +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
|
+
version: 0.6.25b
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Wood
|
@@ -139,6 +139,20 @@ dependencies:
|
|
139
139
|
- - ">="
|
140
140
|
- !ruby/object:Gem::Version
|
141
141
|
version: '0'
|
142
|
+
- !ruby/object:Gem::Dependency
|
143
|
+
name: pry
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
145
|
+
requirements:
|
146
|
+
- - ">="
|
147
|
+
- !ruby/object:Gem::Version
|
148
|
+
version: '0'
|
149
|
+
type: :development
|
150
|
+
prerelease: false
|
151
|
+
version_requirements: !ruby/object:Gem::Requirement
|
152
|
+
requirements:
|
153
|
+
- - ">="
|
154
|
+
- !ruby/object:Gem::Version
|
155
|
+
version: '0'
|
142
156
|
description: Bring your event data into Jekyll for amazing event websites.
|
143
157
|
email: support@attendease.com
|
144
158
|
executables: []
|
@@ -165,6 +179,8 @@ files:
|
|
165
179
|
- lib/jekyll/attendease_plugin/schedule_index_page.rb
|
166
180
|
- lib/jekyll/attendease_plugin/schedule_session_page.rb
|
167
181
|
- lib/jekyll/attendease_plugin/schedule_sessions_page.rb
|
182
|
+
- lib/jekyll/attendease_plugin/site_page.rb
|
183
|
+
- lib/jekyll/attendease_plugin/site_pages_generator.rb
|
168
184
|
- lib/jekyll/attendease_plugin/sponsor_generator.rb
|
169
185
|
- lib/jekyll/attendease_plugin/sponsors_index_page.rb
|
170
186
|
- lib/jekyll/attendease_plugin/tags.rb
|
@@ -183,6 +199,7 @@ files:
|
|
183
199
|
- spec/spec_helper.rb
|
184
200
|
- spec/support/fixtures_helpers.rb
|
185
201
|
- templates/attendease/index.html
|
202
|
+
- templates/attendease/pages/default.html
|
186
203
|
- templates/attendease/presenters/index.html
|
187
204
|
- templates/attendease/presenters/presenter.html
|
188
205
|
- templates/attendease/schedule/day.html
|
@@ -210,9 +227,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
210
227
|
version: '0'
|
211
228
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
212
229
|
requirements:
|
213
|
-
- - "
|
230
|
+
- - ">"
|
214
231
|
- !ruby/object:Gem::Version
|
215
|
-
version:
|
232
|
+
version: 1.3.1
|
216
233
|
requirements: []
|
217
234
|
rubyforge_project:
|
218
235
|
rubygems_version: 2.2.5
|