jekyll-attendease 0.1.0 → 0.2.0
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.
- data/README.md +5 -0
- data/lib/jekyll-attendease.rb +98 -7
- metadata +1 -1
data/README.md
CHANGED
@@ -34,10 +34,15 @@ You will need to configure by editing your `_config.yml`:
|
|
34
34
|
#
|
35
35
|
attendease:
|
36
36
|
api_host: https://your-event-subdomain.attendease.com/
|
37
|
+
test_mode: true
|
37
38
|
```
|
38
39
|
|
39
40
|
Remember to replace `https://your-event-subdomain.attendease.com/` with your actual event url, or crazy things will happen!
|
40
41
|
|
42
|
+
Setting `test_mode` will create pages for /register, /schedule and
|
43
|
+
/presenters. You may style these pages, but they are non-functional.
|
44
|
+
When the site is deployed to Attendease these will function.
|
45
|
+
|
41
46
|
## Usage
|
42
47
|
|
43
48
|
Now the event name can easily be used in your site like so:
|
data/lib/jekyll-attendease.rb
CHANGED
@@ -5,6 +5,8 @@ module Jekyll
|
|
5
5
|
module Attendease
|
6
6
|
|
7
7
|
class EventData < Generator
|
8
|
+
safe true
|
9
|
+
|
8
10
|
def generate(site)
|
9
11
|
if attendease_config = site.config['attendease']
|
10
12
|
|
@@ -36,12 +38,28 @@ module Jekyll
|
|
36
38
|
event_data = HTTParty.get("#{attendease_config['api_host']}api/site.json")
|
37
39
|
|
38
40
|
if !event_data['error']
|
39
|
-
puts "Saving
|
41
|
+
puts " [Attendease] Saving event data..."
|
40
42
|
|
41
43
|
File.open("#{attendease_data_path}/site.json", 'w+') { |file| file.write(event_data.parsed_response.to_json) }
|
42
44
|
else
|
43
45
|
raise "Event data not found, is your Attendease api_host site properly in _config.yml?"
|
44
46
|
end
|
47
|
+
|
48
|
+
|
49
|
+
# Registration test pages, so we can style the forms!
|
50
|
+
pages_to_fetch = ['choose_pass', 'checkout', 'dashboard']
|
51
|
+
|
52
|
+
pages_to_fetch.each do |page|
|
53
|
+
page_data = HTTParty.get("#{attendease_config['api_host']}attendease/preview/#{page}.html")
|
54
|
+
|
55
|
+
if page_data.response.code.to_i == 200
|
56
|
+
puts " [Attendease] Saving test data for register page (#{page})..."
|
57
|
+
|
58
|
+
File.open("#{attendease_data_path}/attendease_test_register_#{page}.html", 'w+') { |file| file.write(page_data.parsed_response) }
|
59
|
+
else
|
60
|
+
raise "Event data not found, is your Attendease api_host site properly in _config.yml?"
|
61
|
+
end
|
62
|
+
end
|
45
63
|
end
|
46
64
|
|
47
65
|
# Adding to site config so we can access these variables globally wihtout using a Liquid Tag so we can use if/else
|
@@ -53,15 +71,17 @@ module Jekyll
|
|
53
71
|
end
|
54
72
|
|
55
73
|
else
|
56
|
-
raise "Please set the Attendease
|
74
|
+
raise "Please set the Attendease event data in your _config.yml"
|
57
75
|
end
|
58
76
|
end
|
59
77
|
end
|
60
78
|
|
61
79
|
|
62
80
|
class EventThemes < Generator
|
81
|
+
safe true
|
82
|
+
|
63
83
|
def generate(site)
|
64
|
-
puts "Generating theme
|
84
|
+
puts " [Attendease] Generating theme layouts..."
|
65
85
|
|
66
86
|
attendease_precompiled_theme_layouts_path = "#{site.config['source']}/attendease_layouts"
|
67
87
|
|
@@ -83,18 +103,89 @@ module Jekyll
|
|
83
103
|
layout: layout
|
84
104
|
---
|
85
105
|
|
86
|
-
{%
|
87
|
-
{{ content }}
|
88
|
-
{% endraw %}
|
106
|
+
{% attendease_content %}
|
89
107
|
eos
|
90
108
|
|
91
109
|
File.open("#{site.config['source']}/attendease_layouts/#{layout}.html", 'w+') { |file| file.write(theme_layout_content) }
|
110
|
+
|
92
111
|
end
|
93
112
|
end
|
94
113
|
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
|
118
|
+
class TestPages < Generator
|
119
|
+
safe true
|
120
|
+
|
121
|
+
def generate(site)
|
122
|
+
if attendease_config = site.config['attendease']
|
123
|
+
|
124
|
+
if attendease_config['test_mode']
|
125
|
+
puts " [Attendease] Generating pages to test the layouts..."
|
126
|
+
|
127
|
+
puts " [Attendease] Generating /register/index.html"
|
128
|
+
site.pages << RegisterTestPage.new(site, site.source, File.join('register'), {:name => 'index.html', :liquid_tag => 'attendease_test_register_choose_pass'})
|
129
|
+
|
130
|
+
puts " [Attendease] Generating /register/checkout.html"
|
131
|
+
site.pages << RegisterTestPage.new(site, site.source, File.join('register'), {:name => 'checkout.html', :liquid_tag => 'attendease_test_register_checkout'})
|
132
|
+
|
133
|
+
puts " [Attendease] Generating /register/dashboard.html"
|
134
|
+
site.pages << RegisterTestPage.new(site, site.source, File.join('register'), {:name => 'dashboard.html', :liquid_tag => 'attendease_test_register_dashboard'})
|
135
|
+
end
|
136
|
+
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
class RegisterTestPage < Page
|
142
|
+
def initialize(site, base, dir, page_data)
|
143
|
+
@site = site
|
144
|
+
@base = base
|
145
|
+
@dir = dir
|
146
|
+
@name = page_data[:name]
|
147
|
+
|
148
|
+
self.process(@name)
|
149
|
+
|
150
|
+
if File.exists?(File.join(base, 'attendease_layouts', 'register.html'))
|
151
|
+
self.read_yaml(File.join(base, 'attendease_layouts'), 'register.html')
|
152
|
+
else
|
153
|
+
self.read_yaml(File.join(base, 'attendease_layouts'), 'layout.html')
|
154
|
+
end
|
155
|
+
|
156
|
+
self.content.gsub! /\{\% attendease_content \%\}/, "{% #{page_data[:liquid_tag]} %}"
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
160
|
+
|
161
|
+
class AttendeaseTest < Liquid::Tag
|
162
|
+
def initialize(tag_name, text, tokens)
|
163
|
+
super
|
164
|
+
@tag_name = tag_name
|
165
|
+
end
|
166
|
+
|
167
|
+
def render(context)
|
168
|
+
attendease_data_path = "#{context['site']['source']}/_attendease_data"
|
169
|
+
|
170
|
+
if File.exists?("#{attendease_data_path}/#{@tag_name}.html")
|
171
|
+
File.read("#{attendease_data_path}/#{@tag_name}.html")
|
172
|
+
else
|
173
|
+
raise "Please set the Attendease event data in your _config.yml or read documentation about how to use this tag."
|
174
|
+
end
|
175
|
+
end
|
176
|
+
end
|
95
177
|
|
178
|
+
|
179
|
+
class AttendeaseContent < Liquid::Tag
|
180
|
+
def render(context)
|
181
|
+
"{{ content }}"
|
96
182
|
end
|
97
183
|
end
|
98
184
|
|
99
185
|
end
|
100
|
-
end
|
186
|
+
end
|
187
|
+
|
188
|
+
Liquid::Template.register_tag('attendease_content', Jekyll::Attendease::AttendeaseContent)
|
189
|
+
Liquid::Template.register_tag('attendease_test_register_choose_pass', Jekyll::Attendease::AttendeaseTest)
|
190
|
+
Liquid::Template.register_tag('attendease_test_register_checkout', Jekyll::Attendease::AttendeaseTest)
|
191
|
+
Liquid::Template.register_tag('attendease_test_register_dashboard', Jekyll::Attendease::AttendeaseTest)
|