middleman-blog 3.6.0.beta.2 → 4.0.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.
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