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.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +18 -2
  3. data/CHANGELOG.md +6 -1
  4. data/Gemfile +13 -10
  5. data/README.md +6 -6
  6. data/Rakefile +1 -15
  7. data/features/calendar.feature +23 -0
  8. data/features/calendar_multiblog.feature +0 -2
  9. data/features/language.feature +1 -13
  10. data/features/multiblog.feature +0 -2
  11. data/features/paginate_multiblog.feature +0 -2
  12. data/features/tags.feature +14 -0
  13. data/features/tags_multiblog.feature +0 -2
  14. data/fixtures/blog-sources-subdirs-app/config.rb +1 -1
  15. data/fixtures/blog-sources-subdirs-app/source/blog.html.erb +1 -1
  16. data/fixtures/blog-sources-subdirs-app/source/blog/{another-post.md.erb → another-post.html.md.erb} +0 -0
  17. data/fixtures/blog-sources-subdirs-app/source/blog/subdir/{yet-another-post.md.erb → yet-another-post.html.md.erb} +0 -0
  18. data/fixtures/calendar-app/config-only-year.rb +9 -0
  19. data/fixtures/custom-collections-sources-app/source/index.html.erb +3 -3
  20. data/fixtures/layouts-app/source/2011/01/02/{article-in-normal-layout.markdown → article-in-normal-layout.html.markdown} +0 -0
  21. data/fixtures/layouts-app/source/2011/01/03/{article-without-layout.markdown → article-without-layout.html.markdown} +0 -0
  22. data/fixtures/permalink-data-app/source/layout.erb +1 -1
  23. data/fixtures/tags-app/config-no-tags.rb +6 -0
  24. data/lib/middleman-blog.rb +0 -9
  25. data/lib/middleman-blog/blog_article.rb +11 -9
  26. data/lib/middleman-blog/blog_data.rb +17 -13
  27. data/lib/middleman-blog/calendar_pages.rb +9 -12
  28. data/lib/middleman-blog/custom_pages.rb +3 -4
  29. data/lib/middleman-blog/extension.rb +24 -8
  30. data/lib/middleman-blog/helpers.rb +10 -17
  31. data/lib/middleman-blog/paginator.rb +9 -7
  32. data/lib/middleman-blog/tag_pages.rb +5 -3
  33. data/lib/middleman-blog/version.rb +1 -1
  34. data/middleman-blog.gemspec +3 -3
  35. data/spec/uri_templates_spec.rb +17 -17
  36. metadata +22 -31
  37. data/features/article_cli.feature +0 -16
  38. data/lib/middleman-blog/commands/article.rb +0 -58
  39. data/lib/middleman-blog/commands/article.tt +0 -6
  40. data/lib/middleman-blog/template.rb +0 -37
  41. data/lib/middleman-blog/template/config.tt +0 -118
  42. data/lib/middleman-blog/template/shared/Gemfile.tt +0 -9
  43. data/lib/middleman-blog/template/source/2012-01-01-example-article.html.markdown +0 -7
  44. data/lib/middleman-blog/template/source/calendar.html.erb +0 -33
  45. data/lib/middleman-blog/template/source/feed.xml.builder +0 -24
  46. data/lib/middleman-blog/template/source/index.html.erb +0 -24
  47. data/lib/middleman-blog/template/source/layout.erb +0 -38
  48. 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::Resource.new(@sitemap, link(year)).tap do |p|
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::Resource.new(@sitemap, link(year, month)).tap do |p|
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::Resource.new(@sitemap, link(year, month, day)).tap do |p|
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.metadata[:page][property.to_s] }.
31
- group_by {|a| a.metadata[:page][property.to_s] }
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::Resource.new(@sitemap, path).tap do |p|
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 ||= :"blog#{::Middleman::Blog.instances.keys.length}"
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, false)
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, false)
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, false)
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, false)
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], false)
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
- ::Middleman::Blog.instances
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]["blog"]
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 = meta[:page]["per_page"]
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]["pageable"]
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]["per_page"] || @per_page
40
- page_link = uri_template(md[:page]["page_link"] || @page_link)
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]["blog"]
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
- Sitemap::Resource.new(@app.sitemap, path, res.source_file).tap do |p|
89
- # Copy the proxy state from the base page.
90
- p.proxy_to(res.proxied_to) if res.proxy?
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::Resource.new(@sitemap, link(tag)).tap do |p|
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: {
@@ -1,5 +1,5 @@
1
1
  module Middleman
2
2
  module Blog
3
- VERSION = "3.6.0.beta.2"
3
+ VERSION = "4.0.0"
4
4
  end
5
5
  end
@@ -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 = '>= 1.9.3'
18
+ s.required_ruby_version = '>= 2.0.0'
19
19
 
20
- s.add_dependency("middleman-core", [">= 3.3"])
20
+ s.add_dependency("middleman-core", [">= 4.0.0"])
21
21
  s.add_dependency("tzinfo", [">= 0.3.0"])
22
- s.add_dependency("addressable", ["~> 2.3.5"])
22
+ s.add_dependency("addressable", ["~> 2.4.0"])
23
23
  end
@@ -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!').should == '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('☆☆☆').should == '☆☆☆'
15
- safe_parameterize('明日がある').should == '明日がある'
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').should == 'schlagworter'
19
+ expect(safe_parameterize('Schlagwörter')) == 'schlagworter'
20
20
  end
21
21
 
22
22
  it "can handle mixed strings" do
23
- safe_parameterize('What ☆☆☆!').should == 'what-☆☆☆'
23
+ expect(safe_parameterize('What ☆☆☆!')) == 'what-☆☆☆'
24
24
  end
25
25
 
26
26
  it "can handle numbers" do
27
- safe_parameterize(1).should == '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'].should == '2013'
37
- params['month'].should == '12'
38
- params['day'].should == '13'
39
- params['title'].should == 'foo-bar'
40
- params['path'].should == 'foo/bar.html'
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').should == nil
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'].should == '2013'
58
- params['month'].should == '12'
59
- params['day'].should == '13'
60
- params['title'].should == 'foo - bar'
61
- params['path'].should == 'foo/bar.html'
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: 3.6.0.beta.2
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: 2014-12-24 00:00:00.000000000 Z
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: '3.3'
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: '3.3'
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.3.5
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.3.5
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: 1.9.3
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: 1.3.1
365
+ version: '0'
376
366
  requirements: []
377
367
  rubyforge_project:
378
- rubygems_version: 2.2.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