octopress-ink 1.0.0.rc.49 → 1.0.0.rc.50
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -1
- data/lib/octopress-ink/assets/asset.rb +21 -12
- data/lib/octopress-ink/assets/page.rb +2 -24
- data/lib/octopress-ink/assets/template.rb +26 -14
- data/lib/octopress-ink/jekyll/page.rb +1 -1
- data/lib/octopress-ink/plugin/bootstrap.rb +127 -163
- data/lib/octopress-ink/tags/feeds_tag.rb +1 -1
- data/lib/octopress-ink/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ce4c7acfb6d35fa4fbef2bd55517ea7afe07c152
|
4
|
+
data.tar.gz: 11699fa14d7a02824d0d19dd06ba50d0e202195a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f1799a7689945f7ca5f44474c7ab83261c267826bfcbee3078fa6ab9cbac01255acecd68b52dc766e8b616a57ac4c89512d9b2a7696ab1e01fc5f58ba27d95ea
|
7
|
+
data.tar.gz: 370063e56a406ef072e2e9032ebef830930529c2384fd0523d1a55ed803bc1f75d734476fe881c9c5550df31a0b79f31663143fb16ddf841e7f20a494883b115
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,11 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
### 1.0.0
|
3
|
+
### 1.0.0 RC50 - 2015-03-04
|
4
|
+
- Improved information about disabled or overridden assets on `ink list plugin` commands
|
5
|
+
- Reworked plugin bootstrap to use templates instead of pages
|
6
|
+
- Removed page clone method (templates should be used for this)
|
4
7
|
|
8
|
+
### 1.0.0 RC49 - 2015-03-02
|
5
9
|
- New: Plugin bootstrap allows plugins to work with templates for post indexes and RSS feeds. Each with automatic support for multilingual sites.
|
6
10
|
|
7
11
|
Plugins can add pages and templates for:
|
@@ -2,11 +2,10 @@ module Octopress
|
|
2
2
|
module Ink
|
3
3
|
module Assets
|
4
4
|
class Asset
|
5
|
-
attr_reader :plugin, :dir, :base, :root, :file, :
|
5
|
+
attr_reader :plugin, :dir, :base, :root, :file, :replacement
|
6
6
|
attr_accessor :exists
|
7
7
|
|
8
8
|
FRONT_MATTER = /\A(---\s*\n.*?\n?)^((---|\.\.\.)\s*$\n?)/m
|
9
|
-
@overridden = false
|
10
9
|
|
11
10
|
def initialize(plugin, base, file)
|
12
11
|
@file = file
|
@@ -19,16 +18,22 @@ module Octopress
|
|
19
18
|
end
|
20
19
|
|
21
20
|
def info
|
21
|
+
" - #{asset_info}"
|
22
|
+
end
|
23
|
+
|
24
|
+
def asset_info
|
22
25
|
message = filename.ljust(35)
|
23
|
-
|
24
|
-
|
26
|
+
|
27
|
+
if replaced?
|
28
|
+
message += "Replaced by #{@replacement} plugin"
|
25
29
|
elsif disabled?
|
26
|
-
message += "
|
30
|
+
message += "Disabled by configuration"
|
27
31
|
elsif path.to_s != plugin_path
|
28
32
|
shortpath = File.join(Plugins.custom_dir.sub(Dir.pwd,''), dir).sub('/','')
|
29
|
-
message += "
|
33
|
+
message += "From: #{File.join(shortpath,filename)}"
|
30
34
|
end
|
31
|
-
|
35
|
+
|
36
|
+
message
|
32
37
|
end
|
33
38
|
|
34
39
|
def filename
|
@@ -36,7 +41,15 @@ module Octopress
|
|
36
41
|
end
|
37
42
|
|
38
43
|
def disabled?
|
39
|
-
is_disabled(base, filename) ||
|
44
|
+
@disabled || is_disabled(base, filename) || replaced?
|
45
|
+
end
|
46
|
+
|
47
|
+
def replaced?
|
48
|
+
!@replacement.nil?
|
49
|
+
end
|
50
|
+
|
51
|
+
def disable
|
52
|
+
@disabled = true
|
40
53
|
end
|
41
54
|
|
42
55
|
def is_disabled(base, file)
|
@@ -44,10 +57,6 @@ module Octopress
|
|
44
57
|
config.include?(base) || config.include?(File.join(base, filename))
|
45
58
|
end
|
46
59
|
|
47
|
-
def override(plugin)
|
48
|
-
@overridden = plugin.name
|
49
|
-
end
|
50
|
-
|
51
60
|
def path
|
52
61
|
if @found_file
|
53
62
|
@found_file
|
@@ -6,7 +6,7 @@ module Octopress
|
|
6
6
|
module Assets
|
7
7
|
class PageAsset < Asset
|
8
8
|
attr_reader :filename
|
9
|
-
attr_accessor :data, :permalink_name
|
9
|
+
attr_accessor :data, :permalink_name
|
10
10
|
|
11
11
|
def initialize(plugin, base, file)
|
12
12
|
@root = plugin.assets_path
|
@@ -31,14 +31,6 @@ module Octopress
|
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
|
-
def clone(data={})
|
35
|
-
self.cloned = true
|
36
|
-
p = PageAsset.new(plugin, base, file)
|
37
|
-
p.clone_of = self
|
38
|
-
p.data = data
|
39
|
-
p
|
40
|
-
end
|
41
|
-
|
42
34
|
def merge_data(data={})
|
43
35
|
page.data.merge!(data)
|
44
36
|
end
|
@@ -68,26 +60,12 @@ module Octopress
|
|
68
60
|
end
|
69
61
|
|
70
62
|
page.data.merge!(@data)
|
63
|
+
page.plugin = plugin
|
71
64
|
|
72
65
|
page
|
73
66
|
end
|
74
67
|
end
|
75
68
|
|
76
|
-
def info
|
77
|
-
message = super
|
78
|
-
return message if disabled?
|
79
|
-
|
80
|
-
if clone_of
|
81
|
-
" #{permalink}"
|
82
|
-
elsif cloned
|
83
|
-
message << "\n #{permalink}"
|
84
|
-
else
|
85
|
-
name = permalink_name << page.ext
|
86
|
-
message.sub!(/#{filename}\s*/, name.ljust(35))
|
87
|
-
message.ljust(25) << permalink
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
69
|
def permalink
|
92
70
|
page.url
|
93
71
|
end
|
@@ -7,25 +7,24 @@ module Octopress
|
|
7
7
|
def initialize(*args)
|
8
8
|
super(*args)
|
9
9
|
@pages = []
|
10
|
+
@existing_pages = {}
|
10
11
|
end
|
11
12
|
|
12
13
|
def add; end
|
13
14
|
|
14
15
|
def info
|
15
|
-
message =
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
16
|
+
message = " - #{asset_info}\n"
|
17
|
+
|
18
|
+
unless disabled?
|
19
|
+
self.pages.each do |page|
|
20
|
+
if existing_page = @existing_pages[page.url]
|
21
|
+
message << " #{page.url.ljust(33)} Disabled: /#{existing_page.path} already exists\n"
|
22
|
+
else
|
23
|
+
message << " #{page.url}\n"
|
24
|
+
end
|
25
|
+
end
|
22
26
|
end
|
23
27
|
|
24
|
-
message = " - #{message}\n"
|
25
|
-
|
26
|
-
self.pages.each do |page|
|
27
|
-
message << " #{page.url}\n"
|
28
|
-
end
|
29
28
|
message
|
30
29
|
end
|
31
30
|
|
@@ -33,10 +32,23 @@ module Octopress
|
|
33
32
|
return if disabled?
|
34
33
|
page = Ink::Page.new(Octopress.site, File.dirname(self.path), '.', File.basename(self.path))
|
35
34
|
page.data.merge!(data)
|
36
|
-
|
35
|
+
page.plugin = plugin
|
37
36
|
self.pages << page
|
38
37
|
|
39
|
-
page
|
38
|
+
if existing_page = page_exists?(page)
|
39
|
+
if existing_page.respond_to?(:plugin)
|
40
|
+
@replacement = existing_page.plugin.name
|
41
|
+
else
|
42
|
+
@existing_pages[existing_page.url] = existing_page
|
43
|
+
end
|
44
|
+
false
|
45
|
+
else
|
46
|
+
page
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def page_exists?(page)
|
51
|
+
Octopress.site.pages.find {|p| p.url == page.url}
|
40
52
|
end
|
41
53
|
end
|
42
54
|
end
|
@@ -8,61 +8,49 @@ module Octopress
|
|
8
8
|
# All with multilingual support.
|
9
9
|
#
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
end
|
21
|
-
|
22
|
-
def self.categories
|
23
|
-
@categories
|
24
|
-
end
|
25
|
-
|
26
|
-
def self.tags
|
27
|
-
@tags
|
28
|
-
end
|
29
|
-
|
30
|
-
def self.feeds
|
31
|
-
@feeds
|
32
|
-
end
|
11
|
+
class << self
|
12
|
+
attr_reader :pages, :categories, :tags, :feeds
|
13
|
+
|
14
|
+
def reset
|
15
|
+
@pages = {}
|
16
|
+
@categories = {}
|
17
|
+
@tags = {}
|
18
|
+
@feeds = {}
|
19
|
+
end
|
33
20
|
|
34
|
-
|
35
|
-
|
36
|
-
|
21
|
+
def page(lang, type, key)
|
22
|
+
@pages[type][key]
|
23
|
+
end
|
37
24
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
25
|
+
def category(category, lang)
|
26
|
+
category = "#{category}_#{page.lang}" if Octopress.multilingual? && page.lang
|
27
|
+
@categories[category]
|
28
|
+
end
|
42
29
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
30
|
+
def tag(category, lang)
|
31
|
+
tag = "#{tag}_#{page.lang}" if Octopress.multilingual? && page.lang
|
32
|
+
@tags[tag]
|
33
|
+
end
|
47
34
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
35
|
+
def add_page(page, key=nil)
|
36
|
+
if @pages[page.url].nil?
|
37
|
+
@pages[page.url] = page
|
38
|
+
|
39
|
+
url = page.url.sub(/index.(xml|html)/, '')
|
40
|
+
|
41
|
+
if key == 'feeds'
|
42
|
+
@feeds[url] = page.data['title']
|
43
|
+
elsif key == 'tag'
|
44
|
+
tag = page.data[key]
|
45
|
+
tag = "#{tag}_#{page.lang}" if Octopress.multilingual? && page.lang
|
46
|
+
@tags[tag] = url
|
47
|
+
elsif key == 'category'
|
48
|
+
category = page.data[key]
|
49
|
+
category = "#{category}_#{page.lang}" if Octopress.multilingual? && page.lang
|
50
|
+
@categories[category] = url
|
51
|
+
end
|
52
|
+
page
|
64
53
|
end
|
65
|
-
page
|
66
54
|
end
|
67
55
|
end
|
68
56
|
|
@@ -71,7 +59,6 @@ module Octopress
|
|
71
59
|
def bootstrap_plugin
|
72
60
|
register_templates
|
73
61
|
inject_configs
|
74
|
-
add_page_metadata
|
75
62
|
|
76
63
|
# Add pages for other languages
|
77
64
|
if Octopress.multilingual?
|
@@ -84,8 +71,8 @@ module Octopress
|
|
84
71
|
def register_templates
|
85
72
|
# Find pages and templates
|
86
73
|
|
87
|
-
@post_index =
|
88
|
-
@post_archive =
|
74
|
+
@post_index = templates.find { |p| p.filename == 'post_index.html' }
|
75
|
+
@post_archive = templates.find { |p| p.filename == 'post_archive.html' }
|
89
76
|
@main_feed = templates.find { |p| p.filename == 'main_feed.xml' }
|
90
77
|
@articles_feed = templates.find { |p| p.filename == 'articles_feed.xml' }
|
91
78
|
@links_feed = templates.find { |p| p.filename == 'links_feed.xml' }
|
@@ -132,19 +119,6 @@ module Octopress
|
|
132
119
|
opt_config
|
133
120
|
end
|
134
121
|
|
135
|
-
def add_page_metadata
|
136
|
-
[post_index, post_archive].compact.each do |page|
|
137
|
-
page.page.data['title'] ||= page_title(page.page, config)
|
138
|
-
if Octopress.multilingual?
|
139
|
-
page.page.data['lang'] = Octopress.site.config['lang']
|
140
|
-
end
|
141
|
-
|
142
|
-
unless Bootstrap.add_page(page)
|
143
|
-
page.override Bootstrap.pages[page.url].plugin
|
144
|
-
end
|
145
|
-
end
|
146
|
-
end
|
147
|
-
|
148
122
|
# Automatically clone pages or generate templates
|
149
123
|
#
|
150
124
|
# This will only occur if:
|
@@ -161,10 +135,8 @@ module Octopress
|
|
161
135
|
|
162
136
|
# Only clone these pages for additional languages
|
163
137
|
#
|
164
|
-
|
165
|
-
|
166
|
-
add_indexes(config, lang, post_archive)
|
167
|
-
end
|
138
|
+
add_indexes(config, lang, post_index)
|
139
|
+
add_indexes(config, lang, post_archive)
|
168
140
|
|
169
141
|
add_feeds(config, lang, main_feed)
|
170
142
|
|
@@ -177,33 +149,42 @@ module Octopress
|
|
177
149
|
add_meta_indexes(config, lang, 'tag', 'tags')
|
178
150
|
end
|
179
151
|
|
180
|
-
def add_indexes(config, lang,
|
181
|
-
if
|
182
|
-
|
183
|
-
|
184
|
-
|
152
|
+
def add_indexes(config, lang, template)
|
153
|
+
return if template.nil?
|
154
|
+
|
155
|
+
permalink = page_permalink(template, lang)
|
156
|
+
title = page_title(template, config, lang)
|
157
|
+
|
158
|
+
if page = template.new_page({
|
159
|
+
'lang' => lang,
|
160
|
+
'title' => title,
|
161
|
+
'permalink' => permalink
|
162
|
+
})
|
163
|
+
|
164
|
+
Bootstrap.add_page(page)
|
165
|
+
Octopress.site.pages << page
|
185
166
|
end
|
186
167
|
end
|
187
168
|
|
188
|
-
def add_feeds(config, lang,
|
189
|
-
if
|
190
|
-
type = feed_type(feed_template)
|
191
|
-
if page = feed_template.new_page({
|
192
|
-
'lang' => lang,
|
193
|
-
'feed_type' => type,
|
194
|
-
'permalink' => lang_permalink(lang, config['permalinks']["#{type}_feed"]),
|
195
|
-
'plugin' => self
|
196
|
-
})
|
169
|
+
def add_feeds(config, lang, template)
|
170
|
+
return if template.nil?
|
197
171
|
|
198
|
-
|
172
|
+
permalink = page_permalink(template, lang)
|
199
173
|
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
174
|
+
if page = template.new_page({
|
175
|
+
'lang' => lang,
|
176
|
+
'permalink' => permalink,
|
177
|
+
'title' => page_title(template, config, lang),
|
178
|
+
'feed_type' => feed_type(template),
|
179
|
+
'plugin' => self
|
180
|
+
})
|
181
|
+
|
182
|
+
|
183
|
+
Bootstrap.add_page(page, "feeds")
|
184
|
+
Octopress.site.pages << page
|
206
185
|
end
|
186
|
+
|
187
|
+
page
|
207
188
|
end
|
208
189
|
|
209
190
|
# Generates tag or category index or feed pages for each category and language
|
@@ -234,88 +215,83 @@ module Octopress
|
|
234
215
|
|
235
216
|
collection.each do |item|
|
236
217
|
item = item.downcase
|
218
|
+
item_label = tag_or_category_display_label(item, config)
|
237
219
|
|
238
220
|
# Only add pages if plugin has a feed template for this item
|
239
221
|
# and it hasn't been disabled in the configuration
|
240
222
|
#
|
241
|
-
if page_template
|
242
|
-
|
243
|
-
|
244
|
-
page = page_template.new_page({
|
245
|
-
'lang' => lang,
|
246
|
-
"#{type}" => item,
|
247
|
-
'permalink' => permalink,
|
248
|
-
'plugin' => self
|
249
|
-
})
|
250
|
-
|
251
|
-
page.data['title'] = page_title(page, config)
|
252
|
-
if Bootstrap.add_page(page, type)
|
253
|
-
Octopress.site.pages << page
|
223
|
+
if page_template
|
224
|
+
if config["#{type}_indexes"] == false
|
225
|
+
page_template.disable
|
254
226
|
else
|
255
|
-
page_template.
|
227
|
+
permalink = page_permalink(page_template, lang).sub(":#{type}", item)
|
228
|
+
|
229
|
+
if page = page_template.new_page({
|
230
|
+
'lang' => lang,
|
231
|
+
"#{type}" => item,
|
232
|
+
'title' => page_title(page_template, config, lang).sub(":#{type}", item_label),
|
233
|
+
'permalink' => permalink,
|
234
|
+
'plugin' => self
|
235
|
+
})
|
236
|
+
|
237
|
+
Bootstrap.add_page(page, type)
|
238
|
+
Octopress.site.pages << page
|
239
|
+
end
|
256
240
|
end
|
257
241
|
end
|
258
242
|
|
259
243
|
# Only add feeds if plugin has a feed template for this item
|
260
244
|
# and it hasn't been disabled in the configuration
|
261
245
|
#
|
262
|
-
if feed_template
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
'lang' => lang,
|
267
|
-
"#{type}" => item,
|
268
|
-
'feed_type' => type,
|
269
|
-
'permalink' => permalink,
|
270
|
-
'plugin' => self
|
271
|
-
})
|
272
|
-
|
273
|
-
page.data['title'] = page_title(page, config)
|
274
|
-
if Bootstrap.add_page(page, 'feeds')
|
275
|
-
Octopress.site.pages << page
|
246
|
+
if feed_template
|
247
|
+
|
248
|
+
if config["#{type}_feeds"] == false
|
249
|
+
feed_template.disable
|
276
250
|
else
|
277
|
-
feed_template.
|
251
|
+
permalink = page_permalink(feed_template, lang).sub(":#{type}", item)
|
252
|
+
|
253
|
+
if page = feed_template.new_page({
|
254
|
+
'lang' => lang,
|
255
|
+
"#{type}" => item,
|
256
|
+
'title' => page_title(feed_template, config, lang).sub(":#{type}", item_label),
|
257
|
+
'permalink' => permalink,
|
258
|
+
'feed_type' => type,
|
259
|
+
'plugin' => self
|
260
|
+
})
|
261
|
+
|
262
|
+
Bootstrap.add_page(page, 'feeds')
|
263
|
+
Octopress.site.pages << page
|
264
|
+
end
|
278
265
|
end
|
279
266
|
end
|
280
267
|
end
|
281
268
|
end
|
282
269
|
|
283
|
-
#
|
284
|
-
#
|
285
|
-
#
|
286
|
-
def clone_page(page, lang)
|
287
|
-
return if page.nil?
|
288
|
-
new_page = page.clone({
|
289
|
-
'lang' => lang,
|
290
|
-
'permalink' => page_permalink(page, lang)
|
291
|
-
})
|
292
|
-
|
293
|
-
new_page.page.data['title'] = page_title(new_page.page, config(lang))
|
294
|
-
new_page.permalink_name = nil
|
295
|
-
new_page
|
296
|
-
end
|
297
|
-
|
298
|
-
# Ensure cloned pages have language in their permalinks
|
299
|
-
# Since pages are only cloned for multilingual sites
|
270
|
+
# Ensure pages have language in their permalinks except the primary language pages
|
271
|
+
# Unless the user has specified /:lang/ in their permalink config
|
300
272
|
#
|
301
273
|
def page_permalink(page, lang)
|
302
|
-
permalink = config(lang)['permalinks'][page
|
274
|
+
permalink = config(lang)['permalinks'][page_type(page)]
|
303
275
|
|
304
|
-
|
276
|
+
# Obey the permalink configuration
|
277
|
+
permalink = if lang && permalink.include?(":lang")
|
305
278
|
permalink.sub(":lang", lang)
|
306
|
-
|
279
|
+
|
280
|
+
# Otherwise only add lang for secondary languages
|
281
|
+
elsif lang && lang != Octopress.site.config['lang']
|
307
282
|
File.join("/#{lang}", permalink)
|
308
|
-
end
|
309
|
-
end
|
310
283
|
|
311
|
-
|
312
|
-
#
|
313
|
-
def lang_permalink(lang, permalink)
|
314
|
-
if lang
|
315
|
-
permalink.sub(":lang", lang)
|
284
|
+
# Finally strip language from url if primary language or no language defined
|
316
285
|
else
|
317
286
|
permalink.sub("/:lang/", '/')
|
318
287
|
end
|
288
|
+
|
289
|
+
if permalink.end_with?('/')
|
290
|
+
ext = File.extname(page.path).match('xml') ? 'xml' : 'html'
|
291
|
+
permalink += "index.#{ext}"
|
292
|
+
end
|
293
|
+
|
294
|
+
permalink
|
319
295
|
end
|
320
296
|
|
321
297
|
|
@@ -349,7 +325,8 @@ module Octopress
|
|
349
325
|
end
|
350
326
|
end
|
351
327
|
|
352
|
-
def
|
328
|
+
def page_title(page, config, lang)
|
329
|
+
type = page_type(page)
|
353
330
|
title = config['titles'][type]
|
354
331
|
title = title.sub(':site_name', Octopress.site.config['name'] || '')
|
355
332
|
if lang && Octopress.multilingual?
|
@@ -358,21 +335,8 @@ module Octopress
|
|
358
335
|
title
|
359
336
|
end
|
360
337
|
|
361
|
-
def
|
362
|
-
|
363
|
-
title = generic_title(type, config, page.lang)
|
364
|
-
|
365
|
-
if type.match(/(category|tag)/)
|
366
|
-
key = type.sub(/_index|_feed/, '')
|
367
|
-
label = tag_or_category_label(page, key, config)
|
368
|
-
title = title.sub(":#{key}", label)
|
369
|
-
end
|
370
|
-
|
371
|
-
title
|
372
|
-
end
|
373
|
-
|
374
|
-
def tag_or_category_label(page, type, config)
|
375
|
-
label = page.data[type].capitalize
|
338
|
+
def tag_or_category_display_label(label, config)
|
339
|
+
label = label.capitalize
|
376
340
|
|
377
341
|
if labels = config["#{type}_labels"]
|
378
342
|
label = labels[type] || label
|
@@ -11,7 +11,7 @@ module Octopress
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def tag(url, title)
|
14
|
-
"<link href='#{url.sub('index.xml', '')}' title='#{title}' rel='alternate' type='application/atom+xml'>"
|
14
|
+
"<link href='#{File.join('/', Octopress.site.config['baseurl'], url).sub('index.xml', '')}' title='#{title}' rel='alternate' type='application/atom+xml'>"
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: octopress-ink
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.rc.
|
4
|
+
version: 1.0.0.rc.50
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandon Mathis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|