middleman-blog 3.6.0.beta.2 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +18 -2
- data/CHANGELOG.md +6 -1
- data/Gemfile +13 -10
- data/README.md +6 -6
- data/Rakefile +1 -15
- data/features/calendar.feature +23 -0
- data/features/calendar_multiblog.feature +0 -2
- data/features/language.feature +1 -13
- data/features/multiblog.feature +0 -2
- data/features/paginate_multiblog.feature +0 -2
- data/features/tags.feature +14 -0
- data/features/tags_multiblog.feature +0 -2
- data/fixtures/blog-sources-subdirs-app/config.rb +1 -1
- data/fixtures/blog-sources-subdirs-app/source/blog.html.erb +1 -1
- data/fixtures/blog-sources-subdirs-app/source/blog/{another-post.md.erb → another-post.html.md.erb} +0 -0
- data/fixtures/blog-sources-subdirs-app/source/blog/subdir/{yet-another-post.md.erb → yet-another-post.html.md.erb} +0 -0
- data/fixtures/calendar-app/config-only-year.rb +9 -0
- data/fixtures/custom-collections-sources-app/source/index.html.erb +3 -3
- data/fixtures/layouts-app/source/2011/01/02/{article-in-normal-layout.markdown → article-in-normal-layout.html.markdown} +0 -0
- data/fixtures/layouts-app/source/2011/01/03/{article-without-layout.markdown → article-without-layout.html.markdown} +0 -0
- data/fixtures/permalink-data-app/source/layout.erb +1 -1
- data/fixtures/tags-app/config-no-tags.rb +6 -0
- data/lib/middleman-blog.rb +0 -9
- data/lib/middleman-blog/blog_article.rb +11 -9
- data/lib/middleman-blog/blog_data.rb +17 -13
- data/lib/middleman-blog/calendar_pages.rb +9 -12
- data/lib/middleman-blog/custom_pages.rb +3 -4
- data/lib/middleman-blog/extension.rb +24 -8
- data/lib/middleman-blog/helpers.rb +10 -17
- data/lib/middleman-blog/paginator.rb +9 -7
- data/lib/middleman-blog/tag_pages.rb +5 -3
- data/lib/middleman-blog/version.rb +1 -1
- data/middleman-blog.gemspec +3 -3
- data/spec/uri_templates_spec.rb +17 -17
- metadata +22 -31
- data/features/article_cli.feature +0 -16
- data/lib/middleman-blog/commands/article.rb +0 -58
- data/lib/middleman-blog/commands/article.tt +0 -6
- data/lib/middleman-blog/template.rb +0 -37
- data/lib/middleman-blog/template/config.tt +0 -118
- data/lib/middleman-blog/template/shared/Gemfile.tt +0 -9
- data/lib/middleman-blog/template/source/2012-01-01-example-article.html.markdown +0 -7
- data/lib/middleman-blog/template/source/calendar.html.erb +0 -33
- data/lib/middleman-blog/template/source/feed.xml.builder +0 -24
- data/lib/middleman-blog/template/source/index.html.erb +0 -24
- data/lib/middleman-blog/template/source/layout.erb +0 -38
- data/lib/middleman-blog/template/source/tag.html.erb +0 -25
@@ -19,6 +19,9 @@ module Middleman
|
|
19
19
|
@day_template = blog_options.day_template
|
20
20
|
@month_template = blog_options.month_template
|
21
21
|
@year_template = blog_options.year_template
|
22
|
+
@generate_year_pages = blog_options.generate_year_pages
|
23
|
+
@generate_month_pages = blog_options.generate_month_pages
|
24
|
+
@generate_day_pages = blog_options.generate_day_pages
|
22
25
|
end
|
23
26
|
|
24
27
|
# Get a path to the given calendar page, based on the :year_link, :month_link or :day_link setting.
|
@@ -45,17 +48,17 @@ module Middleman
|
|
45
48
|
|
46
49
|
# Set up date pages if the appropriate templates have been specified
|
47
50
|
@blog_data.articles.group_by {|a| a.date.year }.each do |year, year_articles|
|
48
|
-
if @year_template
|
51
|
+
if @generate_year_pages && @year_template
|
49
52
|
new_resources << year_page_resource(year, year_articles)
|
50
53
|
end
|
51
54
|
|
52
55
|
year_articles.group_by {|a| a.date.month }.each do |month, month_articles|
|
53
|
-
if @month_template
|
56
|
+
if @generate_month_pages && @month_template
|
54
57
|
new_resources << month_page_resource(year, month, month_articles)
|
55
58
|
end
|
56
59
|
|
57
60
|
month_articles.group_by {|a| a.date.day }.each do |day, day_articles|
|
58
|
-
if @day_template
|
61
|
+
if @generate_day_pages && @day_template
|
59
62
|
new_resources << day_page_resource(year, month, day, day_articles)
|
60
63
|
end
|
61
64
|
end
|
@@ -68,9 +71,7 @@ module Middleman
|
|
68
71
|
private
|
69
72
|
|
70
73
|
def year_page_resource(year, year_articles)
|
71
|
-
Sitemap::
|
72
|
-
p.proxy_to(@year_template)
|
73
|
-
|
74
|
+
Sitemap::ProxyResource.new(@sitemap, link(year), @year_template).tap do |p|
|
74
75
|
# Add metadata in local variables so it's accessible to
|
75
76
|
# later extensions
|
76
77
|
p.add_metadata locals: {
|
@@ -83,9 +84,7 @@ module Middleman
|
|
83
84
|
end
|
84
85
|
|
85
86
|
def month_page_resource(year, month, month_articles)
|
86
|
-
Sitemap::
|
87
|
-
p.proxy_to(@month_template)
|
88
|
-
|
87
|
+
Sitemap::ProxyResource.new(@sitemap, link(year, month), @month_template).tap do |p|
|
89
88
|
p.add_metadata locals: {
|
90
89
|
'page_type' => 'month',
|
91
90
|
'year' => year,
|
@@ -97,9 +96,7 @@ module Middleman
|
|
97
96
|
end
|
98
97
|
|
99
98
|
def day_page_resource(year, month, day, day_articles)
|
100
|
-
Sitemap::
|
101
|
-
p.proxy_to(@day_template)
|
102
|
-
|
99
|
+
Sitemap::ProxyResource.new(@sitemap, link(year, month, day), @day_template).tap do |p|
|
103
100
|
p.add_metadata locals: {
|
104
101
|
'page_type' => 'day',
|
105
102
|
'year' => year,
|
@@ -27,8 +27,8 @@ module Middleman
|
|
27
27
|
|
28
28
|
def manipulate_resource_list(resources)
|
29
29
|
articles_by_property = @blog_data.articles.
|
30
|
-
select {|a| a.
|
31
|
-
group_by {|a| a.
|
30
|
+
select {|a| a.data[property] }.
|
31
|
+
group_by {|a| a.data[property] }
|
32
32
|
resources + articles_by_property.map do |property_value, articles|
|
33
33
|
build_resource(link(property_value), property_value, articles)
|
34
34
|
end
|
@@ -38,8 +38,7 @@ module Middleman
|
|
38
38
|
|
39
39
|
def build_resource(path, value, articles)
|
40
40
|
articles = articles.sort_by(&:date).reverse
|
41
|
-
Sitemap::
|
42
|
-
p.proxy_to(@page_template)
|
41
|
+
Sitemap::ProxyResource.new(@sitemap, path, @page_template).tap do |p|
|
43
42
|
p.add_metadata locals: {
|
44
43
|
"page_type" => property.to_s,
|
45
44
|
property => value,
|
@@ -5,8 +5,12 @@ require 'middleman-blog/helpers'
|
|
5
5
|
|
6
6
|
module Middleman
|
7
7
|
class BlogExtension < Extension
|
8
|
+
extend Forwardable
|
9
|
+
|
8
10
|
self.supports_multiple_instances = true
|
9
11
|
|
12
|
+
def_delegator :app, :logger
|
13
|
+
|
10
14
|
option :name, nil, 'Unique ID for telling multiple blogs apart'
|
11
15
|
option :prefix, nil, 'Prefix to mount the blog at (modifies permalink, sources, taglink, year_link, month_link, day_link to start with the prefix)'
|
12
16
|
option :permalink, '/{year}/{month}/{day}/{title}.html', 'Path articles are generated at. Tokens can be omitted or duplicated, and you can use tokens defined in article frontmatter.'
|
@@ -24,6 +28,10 @@ module Middleman
|
|
24
28
|
option :month_template, nil, 'Template path (no template extension) for monthly archive pages. Defaults to the :calendar_template.'
|
25
29
|
option :day_template, nil, 'Template path (no template extension) for daily archive pages. Defaults to the :calendar_template.'
|
26
30
|
option :tag_template, nil, 'Template path (no template extension) for tag archive pages.'
|
31
|
+
option :generate_year_pages, true, 'Whether to generate year pages.'
|
32
|
+
option :generate_month_pages, true, 'Whether to generate month pages.'
|
33
|
+
option :generate_day_pages, true, 'Whether to generate day pages.'
|
34
|
+
option :generate_tag_pages, true, 'Whether to generate tag pages.'
|
27
35
|
option :paginate, false, 'Whether to paginate lists of articles'
|
28
36
|
option :per_page, 10, 'Number of articles per page when paginating'
|
29
37
|
option :page_link, 'page/{num}', 'Path to append for additional pages when paginating'
|
@@ -86,7 +94,15 @@ module Middleman
|
|
86
94
|
end
|
87
95
|
|
88
96
|
def after_configuration
|
89
|
-
@name ||=
|
97
|
+
@name ||= begin
|
98
|
+
found_name = nil
|
99
|
+
|
100
|
+
app.extensions[:blog].values.each_with_index do |ext, i|
|
101
|
+
found_name = "blog#{i+1}" if ext == self
|
102
|
+
end
|
103
|
+
|
104
|
+
found_name
|
105
|
+
end
|
90
106
|
|
91
107
|
# TODO: break up into private methods?
|
92
108
|
|
@@ -96,8 +112,6 @@ module Middleman
|
|
96
112
|
@app.ignore(options.day_template) if options.day_template
|
97
113
|
@app.ignore options.tag_template if options.tag_template
|
98
114
|
|
99
|
-
::Middleman::Blog.instances[@name] = self
|
100
|
-
|
101
115
|
# Make sure ActiveSupport's TimeZone stuff has something to work with,
|
102
116
|
# allowing people to set their desired time zone via Time.zone or
|
103
117
|
# set :time_zone
|
@@ -112,20 +126,20 @@ module Middleman
|
|
112
126
|
# Initialize blog with options
|
113
127
|
@data = Blog::BlogData.new(@app, self, options)
|
114
128
|
|
115
|
-
@app.sitemap.register_resource_list_manipulator(:"blog_#{name}_articles", @data
|
129
|
+
@app.sitemap.register_resource_list_manipulator(:"blog_#{name}_articles", @data)
|
116
130
|
|
117
131
|
if options.tag_template
|
118
132
|
@app.ignore options.tag_template
|
119
133
|
|
120
134
|
require 'middleman-blog/tag_pages'
|
121
135
|
@tag_pages = Blog::TagPages.new(@app, self)
|
122
|
-
@app.sitemap.register_resource_list_manipulator(:"blog_#{name}_tags", @tag_pages
|
136
|
+
@app.sitemap.register_resource_list_manipulator(:"blog_#{name}_tags", @tag_pages)
|
123
137
|
end
|
124
138
|
|
125
139
|
if options.year_template || options.month_template || options.day_template
|
126
140
|
require 'middleman-blog/calendar_pages'
|
127
141
|
@calendar_pages = Blog::CalendarPages.new(@app, self)
|
128
|
-
@app.sitemap.register_resource_list_manipulator(:"blog_#{name}_calendar", @calendar_pages
|
142
|
+
@app.sitemap.register_resource_list_manipulator(:"blog_#{name}_calendar", @calendar_pages)
|
129
143
|
end
|
130
144
|
|
131
145
|
if options.custom_collections
|
@@ -136,8 +150,10 @@ module Middleman
|
|
136
150
|
if options.paginate
|
137
151
|
require 'middleman-blog/paginator'
|
138
152
|
@paginator = Blog::Paginator.new(@app, self)
|
139
|
-
@app.sitemap.register_resource_list_manipulator(:"blog_#{name}_paginate", @paginator
|
153
|
+
@app.sitemap.register_resource_list_manipulator(:"blog_#{name}_paginate", @paginator)
|
140
154
|
end
|
155
|
+
|
156
|
+
logger.info "== Blog Sources: #{options.sources} (:prefix + :sources)"
|
141
157
|
end
|
142
158
|
|
143
159
|
private
|
@@ -166,7 +182,7 @@ module Middleman
|
|
166
182
|
@app.ignore options[:template]
|
167
183
|
|
168
184
|
@custom_pages[property] = Blog::CustomPages.new(property, @app, self, options)
|
169
|
-
@app.sitemap.register_resource_list_manipulator(:"blog_#{name}_#{property}", @custom_pages[property]
|
185
|
+
@app.sitemap.register_resource_list_manipulator(:"blog_#{name}_#{property}", @custom_pages[property])
|
170
186
|
|
171
187
|
Blog::Helpers.generate_custom_helper(property)
|
172
188
|
end
|
@@ -1,26 +1,19 @@
|
|
1
1
|
module Middleman
|
2
2
|
module Blog
|
3
|
-
def self.instances
|
4
|
-
@blog_instances ||= {}
|
5
|
-
end
|
6
|
-
|
7
|
-
def self.instances=(v)
|
8
|
-
@blog_instances = v
|
9
|
-
end
|
10
|
-
|
11
3
|
# Blog-related helpers that are available to the Middleman application in +config.rb+ and in templates.
|
12
4
|
module Helpers
|
13
|
-
def self.included(base)
|
14
|
-
::Middleman::Blog.instances = {}
|
15
|
-
end
|
16
|
-
|
17
5
|
# All the blog instances known to this Middleman app, keyed by name. A new blog is added
|
18
6
|
# every time the blog extension is activated. Name them by setting the +:name+
|
19
7
|
# option when activating - otherwise they get an automatic name like 'blog0', 'blog1', etc.
|
20
8
|
#
|
21
9
|
# @return [Hash<Symbol,BlogExtension>] a hash of all blog instances by name
|
22
10
|
def blog_instances
|
23
|
-
|
11
|
+
return nil unless app.extensions[:blog]
|
12
|
+
|
13
|
+
app.extensions[:blog].keys.each_with_object({}) do |k, sum|
|
14
|
+
ext = app.extensions[:blog][k]
|
15
|
+
sum[ext.name.to_sym] = ext
|
16
|
+
end
|
24
17
|
end
|
25
18
|
|
26
19
|
# Retrieve a {BlogExtension} instance.
|
@@ -35,7 +28,7 @@ module Middleman
|
|
35
28
|
# @return [BlogExtension]
|
36
29
|
def blog_controller(blog_name=nil)
|
37
30
|
if !blog_name && current_resource
|
38
|
-
blog_name = current_resource.metadata[:page][
|
31
|
+
blog_name = current_resource.metadata[:page][:blog]
|
39
32
|
|
40
33
|
if !blog_name
|
41
34
|
blog_controller = current_resource.blog_controller if current_resource.respond_to?(:blog_controller)
|
@@ -49,7 +42,7 @@ module Middleman
|
|
49
42
|
end
|
50
43
|
|
51
44
|
# Warn if a non-existent blog name provided
|
52
|
-
if blog_name && !blog_instances.keys.include?(blog_name)
|
45
|
+
if blog_name && !blog_instances.keys.include?(blog_name.to_sym)
|
53
46
|
raise "Non-existent blog name provided: #{blog_name}."
|
54
47
|
end
|
55
48
|
|
@@ -132,12 +125,12 @@ module Middleman
|
|
132
125
|
# @return [Array<Middleman::Sitemap::Resource>]
|
133
126
|
def page_articles(blog_name=nil)
|
134
127
|
meta = current_resource.metadata
|
135
|
-
limit =
|
128
|
+
limit = current_resource.data[:per_page]
|
136
129
|
|
137
130
|
# "articles" local variable is populated by Calendar and Tag page generators
|
138
131
|
# If it's not set then use the complete list of articles
|
139
132
|
articles = meta[:locals]["articles"] || blog(blog_name).articles
|
140
|
-
|
133
|
+
|
141
134
|
limit ? articles.first(limit) : articles
|
142
135
|
end
|
143
136
|
|
@@ -25,7 +25,7 @@ module Middleman
|
|
25
25
|
# Avoid recomputing metadata over and over
|
26
26
|
md = res.metadata
|
27
27
|
|
28
|
-
next unless md[:page][
|
28
|
+
next unless md[:page][:pageable]
|
29
29
|
|
30
30
|
# Skip other blogs' resources
|
31
31
|
next unless match_blog(res, md)
|
@@ -36,8 +36,8 @@ module Middleman
|
|
36
36
|
articles = md[:locals]["articles"] || @blog_controller.data.articles
|
37
37
|
|
38
38
|
# Allow blog.per_page and blog.page_link to be overridden in the frontmatter
|
39
|
-
per_page = md[:page][
|
40
|
-
page_link = uri_template(md[:page][
|
39
|
+
per_page = md[:page][:per_page] || @per_page
|
40
|
+
page_link = uri_template(md[:page][:page_link] || @page_link)
|
41
41
|
|
42
42
|
num_pages = (articles.length / per_page.to_f).ceil
|
43
43
|
|
@@ -73,7 +73,7 @@ module Middleman
|
|
73
73
|
def match_blog(res, md)
|
74
74
|
res_controller = md[:locals]["blog_controller"] || (res.respond_to?(:blog_controller) && res.blog_controller)
|
75
75
|
return false if res_controller && res_controller != @blog_controller
|
76
|
-
override_controller = md[:page][
|
76
|
+
override_controller = md[:page][:blog]
|
77
77
|
return false if override_controller && override_controller.to_s != @blog_controller.name.to_s
|
78
78
|
|
79
79
|
true
|
@@ -85,9 +85,11 @@ module Middleman
|
|
85
85
|
# @param [String] page_link The pagination link path component template
|
86
86
|
def page_resource(res, page_num, page_link)
|
87
87
|
path = page_sub(res, page_num, page_link)
|
88
|
-
|
89
|
-
|
90
|
-
|
88
|
+
|
89
|
+
if res.is_a? Sitemap::ProxyResource
|
90
|
+
Sitemap::ProxyResource.new(@app.sitemap, path, res.target)
|
91
|
+
else
|
92
|
+
Sitemap::Resource.new(@app.sitemap, path, res.source_file)
|
91
93
|
end
|
92
94
|
end
|
93
95
|
|
@@ -13,6 +13,8 @@ module Middleman
|
|
13
13
|
@tag_link_template = uri_template blog_controller.options.taglink
|
14
14
|
@tag_template = blog_controller.options.tag_template
|
15
15
|
@blog_data = blog_controller.data
|
16
|
+
|
17
|
+
@generate_tag_pages = blog_controller.options.generate_tag_pages
|
16
18
|
end
|
17
19
|
|
18
20
|
# Get a path to the given tag, based on the :taglink setting.
|
@@ -25,6 +27,8 @@ module Middleman
|
|
25
27
|
# Update the main sitemap resource list
|
26
28
|
# @return [void]
|
27
29
|
def manipulate_resource_list(resources)
|
30
|
+
return resources unless @generate_tag_pages
|
31
|
+
|
28
32
|
resources + @blog_data.tags.map do |tag, articles|
|
29
33
|
tag_page_resource(tag, articles)
|
30
34
|
end
|
@@ -33,9 +37,7 @@ module Middleman
|
|
33
37
|
private
|
34
38
|
|
35
39
|
def tag_page_resource(tag, articles)
|
36
|
-
Sitemap::
|
37
|
-
p.proxy_to(@tag_template)
|
38
|
-
|
40
|
+
Sitemap::ProxyResource.new(@sitemap, link(tag), @tag_template).tap do |p|
|
39
41
|
# Add metadata in local variables so it's accessible to
|
40
42
|
# later extensions
|
41
43
|
p.add_metadata locals: {
|
data/middleman-blog.gemspec
CHANGED
@@ -15,9 +15,9 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.files = `git ls-files -z`.split("\0")
|
16
16
|
s.test_files = `git ls-files -z -- {fixtures,features}/*`.split("\0")
|
17
17
|
s.require_paths = ["lib"]
|
18
|
-
s.required_ruby_version = '>=
|
18
|
+
s.required_ruby_version = '>= 2.0.0'
|
19
19
|
|
20
|
-
s.add_dependency("middleman-core", [">=
|
20
|
+
s.add_dependency("middleman-core", [">= 4.0.0"])
|
21
21
|
s.add_dependency("tzinfo", [">= 0.3.0"])
|
22
|
-
s.add_dependency("addressable", ["~> 2.
|
22
|
+
s.add_dependency("addressable", ["~> 2.4.0"])
|
23
23
|
end
|
data/spec/uri_templates_spec.rb
CHANGED
@@ -7,24 +7,24 @@ describe 'Middleman::Blog::UriTemplates' do
|
|
7
7
|
|
8
8
|
describe 'safe_parameterize' do
|
9
9
|
it 'can parameterize normal strings' do
|
10
|
-
safe_parameterize('Some FUN stuff!')
|
10
|
+
expect(safe_parameterize('Some FUN stuff!')) == 'some-fun-stuff'
|
11
11
|
end
|
12
12
|
|
13
13
|
it "doesn't mangle unicode strings" do
|
14
|
-
safe_parameterize('☆☆☆')
|
15
|
-
safe_parameterize('明日がある')
|
14
|
+
expect(safe_parameterize('☆☆☆')) == '☆☆☆'
|
15
|
+
expect(safe_parameterize('明日がある')) == '明日がある'
|
16
16
|
end
|
17
17
|
|
18
18
|
it "still transliterates when it's safe" do
|
19
|
-
safe_parameterize('Schlagwörter')
|
19
|
+
expect(safe_parameterize('Schlagwörter')) == 'schlagworter'
|
20
20
|
end
|
21
21
|
|
22
22
|
it "can handle mixed strings" do
|
23
|
-
safe_parameterize('What ☆☆☆!')
|
23
|
+
expect(safe_parameterize('What ☆☆☆!')) == 'what-☆☆☆'
|
24
24
|
end
|
25
25
|
|
26
26
|
it "can handle numbers" do
|
27
|
-
safe_parameterize(1)
|
27
|
+
expect(safe_parameterize(1)) == '1'
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
@@ -33,16 +33,16 @@ describe 'Middleman::Blog::UriTemplates' do
|
|
33
33
|
template = uri_template('{year}/{month}/{day}/{title}/{+path}')
|
34
34
|
params = extract_params(template, '2013/12/13/foo-bar/foo/bar.html')
|
35
35
|
|
36
|
-
params['year']
|
37
|
-
params['month']
|
38
|
-
params['day']
|
39
|
-
params['title']
|
40
|
-
params['path']
|
36
|
+
expect(params['year']) == '2013'
|
37
|
+
expect(params['month']) == '12'
|
38
|
+
expect(params['day']) == '13'
|
39
|
+
expect(params['title']) == 'foo-bar'
|
40
|
+
expect(params['path']) == 'foo/bar.html'
|
41
41
|
end
|
42
42
|
|
43
43
|
it 'returns nil if there is no match' do
|
44
44
|
template = uri_template('{year}/{month}/{day}/{title}/{+path}')
|
45
|
-
extract_params(template, 'foo/bar.html')
|
45
|
+
expect(extract_params(template, 'foo/bar.html')) == nil
|
46
46
|
end
|
47
47
|
|
48
48
|
it 'returns nil if there is no match in the date bits' do
|
@@ -54,11 +54,11 @@ describe 'Middleman::Blog::UriTemplates' do
|
|
54
54
|
template = uri_template('{year}/{month}/{day}/{title}/{+path}')
|
55
55
|
params = extract_params(template, '2013/12/13/foo - bar/foo/bar.html')
|
56
56
|
|
57
|
-
params['year']
|
58
|
-
params['month']
|
59
|
-
params['day']
|
60
|
-
params['title']
|
61
|
-
params['path']
|
57
|
+
expect(params['year']) == '2013'
|
58
|
+
expect(params['month']) == '12'
|
59
|
+
expect(params['day']) == '13'
|
60
|
+
expect(params['title']) == 'foo - bar'
|
61
|
+
expect(params['path']) == 'foo/bar.html'
|
62
62
|
end
|
63
63
|
end
|
64
64
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: middleman-blog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Reynolds
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2015-12-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: middleman-core
|
@@ -17,14 +17,14 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version:
|
20
|
+
version: 4.0.0
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version:
|
27
|
+
version: 4.0.0
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: tzinfo
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -45,14 +45,14 @@ dependencies:
|
|
45
45
|
requirements:
|
46
46
|
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: 2.
|
48
|
+
version: 2.4.0
|
49
49
|
type: :runtime
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
53
|
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: 2.
|
55
|
+
version: 2.4.0
|
56
56
|
description: Blog engine for Middleman
|
57
57
|
email:
|
58
58
|
- me@tdreyno.com
|
@@ -71,7 +71,6 @@ files:
|
|
71
71
|
- LICENSE.md
|
72
72
|
- README.md
|
73
73
|
- Rakefile
|
74
|
-
- features/article_cli.feature
|
75
74
|
- features/article_dirs.feature
|
76
75
|
- features/blog_sources.feature
|
77
76
|
- features/calendar-and-tag.feature
|
@@ -113,8 +112,8 @@ files:
|
|
113
112
|
- fixtures/blog-sources-app/source/layout.erb
|
114
113
|
- fixtures/blog-sources-subdirs-app/config.rb
|
115
114
|
- fixtures/blog-sources-subdirs-app/source/blog.html.erb
|
116
|
-
- fixtures/blog-sources-subdirs-app/source/blog/another-post.md.erb
|
117
|
-
- fixtures/blog-sources-subdirs-app/source/blog/subdir/yet-another-post.md.erb
|
115
|
+
- fixtures/blog-sources-subdirs-app/source/blog/another-post.html.md.erb
|
116
|
+
- fixtures/blog-sources-subdirs-app/source/blog/subdir/yet-another-post.html.md.erb
|
118
117
|
- fixtures/blog-sources-subdirs-app/source/layout.erb
|
119
118
|
- fixtures/calendar-and-tag-app/config-directory-indexes.rb
|
120
119
|
- fixtures/calendar-and-tag-app/config.rb
|
@@ -124,6 +123,7 @@ files:
|
|
124
123
|
- fixtures/calendar-and-tag-app/source/index.html.erb
|
125
124
|
- fixtures/calendar-and-tag-app/source/layout.erb
|
126
125
|
- fixtures/calendar-app/config-directory-indexes.rb
|
126
|
+
- fixtures/calendar-app/config-only-year.rb
|
127
127
|
- fixtures/calendar-app/config.rb
|
128
128
|
- fixtures/calendar-app/source/blog/2011-01-01-new-article.html.markdown
|
129
129
|
- fixtures/calendar-app/source/blog/2011-01-02-another-article.html.markdown
|
@@ -217,8 +217,8 @@ files:
|
|
217
217
|
- fixtures/layouts-app/source/2011/01/01/first-article.html.markdown
|
218
218
|
- fixtures/layouts-app/source/2011/01/01/second-article.html.markdown
|
219
219
|
- fixtures/layouts-app/source/2011/01/01/third-article.html.markdown
|
220
|
-
- fixtures/layouts-app/source/2011/01/02/article-in-normal-layout.markdown
|
221
|
-
- fixtures/layouts-app/source/2011/01/03/article-without-layout.markdown
|
220
|
+
- fixtures/layouts-app/source/2011/01/02/article-in-normal-layout.html.markdown
|
221
|
+
- fixtures/layouts-app/source/2011/01/03/article-without-layout.html.markdown
|
222
222
|
- fixtures/layouts-app/source/layouts/first.html.erb
|
223
223
|
- fixtures/layouts-app/source/layouts/layout.erb
|
224
224
|
- fixtures/layouts-app/source/layouts/second.html.erb
|
@@ -307,6 +307,7 @@ files:
|
|
307
307
|
- fixtures/summary-app/source/2013-05-08-article-with-custom-separator.html.markdown
|
308
308
|
- fixtures/summary-app/source/index.html.erb
|
309
309
|
- fixtures/tags-app/config-directory-indexes.rb
|
310
|
+
- fixtures/tags-app/config-no-tags.rb
|
310
311
|
- fixtures/tags-app/config.rb
|
311
312
|
- fixtures/tags-app/source/blog/2011-01-01-new-article.html.markdown
|
312
313
|
- fixtures/tags-app/source/blog/2011-01-02-another-article.html.markdown
|
@@ -332,22 +333,11 @@ files:
|
|
332
333
|
- lib/middleman-blog/blog_article.rb
|
333
334
|
- lib/middleman-blog/blog_data.rb
|
334
335
|
- lib/middleman-blog/calendar_pages.rb
|
335
|
-
- lib/middleman-blog/commands/article.rb
|
336
|
-
- lib/middleman-blog/commands/article.tt
|
337
336
|
- lib/middleman-blog/custom_pages.rb
|
338
337
|
- lib/middleman-blog/extension.rb
|
339
338
|
- lib/middleman-blog/helpers.rb
|
340
339
|
- lib/middleman-blog/paginator.rb
|
341
340
|
- lib/middleman-blog/tag_pages.rb
|
342
|
-
- lib/middleman-blog/template.rb
|
343
|
-
- lib/middleman-blog/template/config.tt
|
344
|
-
- lib/middleman-blog/template/shared/Gemfile.tt
|
345
|
-
- lib/middleman-blog/template/source/2012-01-01-example-article.html.markdown
|
346
|
-
- lib/middleman-blog/template/source/calendar.html.erb
|
347
|
-
- lib/middleman-blog/template/source/feed.xml.builder
|
348
|
-
- lib/middleman-blog/template/source/index.html.erb
|
349
|
-
- lib/middleman-blog/template/source/layout.erb
|
350
|
-
- lib/middleman-blog/template/source/tag.html.erb
|
351
341
|
- lib/middleman-blog/truncate_html.rb
|
352
342
|
- lib/middleman-blog/uri_templates.rb
|
353
343
|
- lib/middleman-blog/version.rb
|
@@ -367,20 +357,19 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
367
357
|
requirements:
|
368
358
|
- - ">="
|
369
359
|
- !ruby/object:Gem::Version
|
370
|
-
version:
|
360
|
+
version: 2.0.0
|
371
361
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
372
362
|
requirements:
|
373
|
-
- - "
|
363
|
+
- - ">="
|
374
364
|
- !ruby/object:Gem::Version
|
375
|
-
version:
|
365
|
+
version: '0'
|
376
366
|
requirements: []
|
377
367
|
rubyforge_project:
|
378
|
-
rubygems_version: 2.
|
368
|
+
rubygems_version: 2.4.8
|
379
369
|
signing_key:
|
380
370
|
specification_version: 4
|
381
371
|
summary: Blog engine for Middleman
|
382
372
|
test_files:
|
383
|
-
- features/article_cli.feature
|
384
373
|
- features/article_dirs.feature
|
385
374
|
- features/blog_sources.feature
|
386
375
|
- features/calendar-and-tag.feature
|
@@ -422,8 +411,8 @@ test_files:
|
|
422
411
|
- fixtures/blog-sources-app/source/layout.erb
|
423
412
|
- fixtures/blog-sources-subdirs-app/config.rb
|
424
413
|
- fixtures/blog-sources-subdirs-app/source/blog.html.erb
|
425
|
-
- fixtures/blog-sources-subdirs-app/source/blog/another-post.md.erb
|
426
|
-
- fixtures/blog-sources-subdirs-app/source/blog/subdir/yet-another-post.md.erb
|
414
|
+
- fixtures/blog-sources-subdirs-app/source/blog/another-post.html.md.erb
|
415
|
+
- fixtures/blog-sources-subdirs-app/source/blog/subdir/yet-another-post.html.md.erb
|
427
416
|
- fixtures/blog-sources-subdirs-app/source/layout.erb
|
428
417
|
- fixtures/calendar-and-tag-app/config-directory-indexes.rb
|
429
418
|
- fixtures/calendar-and-tag-app/config.rb
|
@@ -433,6 +422,7 @@ test_files:
|
|
433
422
|
- fixtures/calendar-and-tag-app/source/index.html.erb
|
434
423
|
- fixtures/calendar-and-tag-app/source/layout.erb
|
435
424
|
- fixtures/calendar-app/config-directory-indexes.rb
|
425
|
+
- fixtures/calendar-app/config-only-year.rb
|
436
426
|
- fixtures/calendar-app/config.rb
|
437
427
|
- fixtures/calendar-app/source/blog/2011-01-01-new-article.html.markdown
|
438
428
|
- fixtures/calendar-app/source/blog/2011-01-02-another-article.html.markdown
|
@@ -526,8 +516,8 @@ test_files:
|
|
526
516
|
- fixtures/layouts-app/source/2011/01/01/first-article.html.markdown
|
527
517
|
- fixtures/layouts-app/source/2011/01/01/second-article.html.markdown
|
528
518
|
- fixtures/layouts-app/source/2011/01/01/third-article.html.markdown
|
529
|
-
- fixtures/layouts-app/source/2011/01/02/article-in-normal-layout.markdown
|
530
|
-
- fixtures/layouts-app/source/2011/01/03/article-without-layout.markdown
|
519
|
+
- fixtures/layouts-app/source/2011/01/02/article-in-normal-layout.html.markdown
|
520
|
+
- fixtures/layouts-app/source/2011/01/03/article-without-layout.html.markdown
|
531
521
|
- fixtures/layouts-app/source/layouts/first.html.erb
|
532
522
|
- fixtures/layouts-app/source/layouts/layout.erb
|
533
523
|
- fixtures/layouts-app/source/layouts/second.html.erb
|
@@ -616,6 +606,7 @@ test_files:
|
|
616
606
|
- fixtures/summary-app/source/2013-05-08-article-with-custom-separator.html.markdown
|
617
607
|
- fixtures/summary-app/source/index.html.erb
|
618
608
|
- fixtures/tags-app/config-directory-indexes.rb
|
609
|
+
- fixtures/tags-app/config-no-tags.rb
|
619
610
|
- fixtures/tags-app/config.rb
|
620
611
|
- fixtures/tags-app/source/blog/2011-01-01-new-article.html.markdown
|
621
612
|
- fixtures/tags-app/source/blog/2011-01-02-another-article.html.markdown
|