middleman-blog 3.2.0 → 3.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -1
  3. data/.travis.yml +5 -7
  4. data/CHANGELOG.md +21 -0
  5. data/CONTRIBUTING.md +43 -0
  6. data/Gemfile +22 -14
  7. data/Gemfile-3.0 +27 -0
  8. data/{LICENSE → LICENSE.md} +2 -2
  9. data/README.md +33 -28
  10. data/Rakefile +17 -1
  11. data/features/blog_sources.feature +13 -0
  12. data/features/calendar_multiblog.feature +153 -0
  13. data/features/multiblog.feature +51 -0
  14. data/features/paginate_multiblog.feature +270 -0
  15. data/features/summary.feature +43 -0
  16. data/features/support/env.rb +6 -1
  17. data/features/tags_multiblog.feature +125 -0
  18. data/features/time_zone.feature +5 -0
  19. data/fixtures/blog-sources-app/source/blog/2013-08-08-slug-from-filename.html.markdown +7 -0
  20. data/fixtures/calendar-multiblog-app/config.rb +17 -0
  21. data/fixtures/calendar-multiblog-app/source/blog1/2011-01-01-new-article.html.markdown +7 -0
  22. data/fixtures/calendar-multiblog-app/source/blog1/2011-01-02-another-article.html.markdown +8 -0
  23. data/fixtures/calendar-multiblog-app/source/blog2/2011-01-01-new-article.html.markdown +7 -0
  24. data/fixtures/calendar-multiblog-app/source/blog2/2011-01-02-another-article.html.markdown +8 -0
  25. data/fixtures/calendar-multiblog-app/source/calendar1.html.erb +13 -0
  26. data/fixtures/calendar-multiblog-app/source/calendar2.html.erb +13 -0
  27. data/fixtures/calendar-multiblog-app/source/index.html.erb +15 -0
  28. data/fixtures/calendar-multiblog-app/source/layout.erb +15 -0
  29. data/fixtures/default-template-app/Gemfile +6 -0
  30. data/fixtures/default-template-app/config.rb +35 -0
  31. data/fixtures/default-template-app/source/2013-04-01-new-article.html.markdown +25 -0
  32. data/{features/encoding.feature → fixtures/default-template-app/source/about-me.html.erb} +0 -0
  33. data/fixtures/default-template-app/source/archives.html.erb +10 -0
  34. data/fixtures/default-template-app/source/index.html.erb +11 -0
  35. data/fixtures/default-template-app/source/javascripts/_zepto.pjax.js +744 -0
  36. data/fixtures/default-template-app/source/javascripts/app.js +11 -0
  37. data/fixtures/default-template-app/source/javascripts/modernizr.js +1 -0
  38. data/fixtures/default-template-app/source/layouts/layout.erb +62 -0
  39. data/fixtures/default-template-app/source/stylesheets/app.css.scss +109 -0
  40. data/fixtures/multiblog-app/config.rb +0 -0
  41. data/fixtures/multiblog-app/source/blog1/2012-12-12-other-article.html.markdown +5 -0
  42. data/fixtures/multiblog-app/source/blog2/2011/01/01/new-article.html.markdown +6 -0
  43. data/fixtures/multiblog-app/source/index.html.erb +7 -0
  44. data/fixtures/multiblog-app/source/layout.erb +30 -0
  45. data/fixtures/no-title-app/config.rb +3 -0
  46. data/fixtures/no-title-app/source/2013-08-07.html.markdown +6 -0
  47. data/fixtures/no-title-app/source/2013-08-08.html.markdown +7 -0
  48. data/fixtures/no-title-app/source/layout.erb +13 -0
  49. data/fixtures/paginate-multiblog-app/config.rb +31 -0
  50. data/fixtures/paginate-multiblog-app/source/blog1/2011-01-01-test-article.html.markdown +6 -0
  51. data/fixtures/paginate-multiblog-app/source/blog1/2011-01-02-test-article.html.markdown +6 -0
  52. data/fixtures/paginate-multiblog-app/source/blog1/2011-01-03-test-article.html.markdown +6 -0
  53. data/fixtures/paginate-multiblog-app/source/blog1/2011-01-04-test-article.html.markdown +6 -0
  54. data/fixtures/paginate-multiblog-app/source/blog1/2011-01-05-test-article.html.markdown +6 -0
  55. data/fixtures/paginate-multiblog-app/source/blog1/2011-02-01-test-article.html.markdown +6 -0
  56. data/fixtures/paginate-multiblog-app/source/blog1/index.html.erb +27 -0
  57. data/fixtures/paginate-multiblog-app/source/blog2/2011-01-01-test-article.html.markdown +6 -0
  58. data/fixtures/paginate-multiblog-app/source/blog2/2011-01-02-test-article.html.markdown +6 -0
  59. data/fixtures/paginate-multiblog-app/source/blog2/2011-01-03-test-article.html.markdown +6 -0
  60. data/fixtures/paginate-multiblog-app/source/blog2/2011-01-04-test-article.html.markdown +6 -0
  61. data/fixtures/paginate-multiblog-app/source/blog2/2011-01-05-test-article.html.markdown +6 -0
  62. data/fixtures/paginate-multiblog-app/source/blog2/index.html.erb +27 -0
  63. data/fixtures/paginate-multiblog-app/source/blog3/2011-01-01-test-article.html.markdown +6 -0
  64. data/fixtures/paginate-multiblog-app/source/blog3/2011-01-02-test-article.html.markdown +6 -0
  65. data/fixtures/paginate-multiblog-app/source/blog3/2011-01-03-test-article.html.markdown +6 -0
  66. data/fixtures/paginate-multiblog-app/source/blog3/2011-01-04-test-article.html.markdown +6 -0
  67. data/fixtures/paginate-multiblog-app/source/blog3/2011-01-05-test-article.html.markdown +6 -0
  68. data/fixtures/paginate-multiblog-app/source/blog3/2011-02-01-test-article.html.markdown +6 -0
  69. data/fixtures/paginate-multiblog-app/source/blog3/2011-02-02-test-article.html.markdown +6 -0
  70. data/fixtures/paginate-multiblog-app/source/blog3/index.html.erb +28 -0
  71. data/fixtures/paginate-multiblog-app/source/calendar1.html.erb +28 -0
  72. data/fixtures/paginate-multiblog-app/source/calendar2.html.erb +28 -0
  73. data/fixtures/paginate-multiblog-app/source/calendar3.html.erb +28 -0
  74. data/fixtures/paginate-multiblog-app/source/layout.erb +15 -0
  75. data/fixtures/paginate-multiblog-app/source/tag1.html.erb +23 -0
  76. data/fixtures/paginate-multiblog-app/source/tag2.html.erb +23 -0
  77. data/fixtures/paginate-multiblog-app/source/tag3.html.erb +19 -0
  78. data/fixtures/summary-app/config.rb +1 -0
  79. data/fixtures/summary-app/source/2011-01-01-article-with-no-summary-separator-and-comments-in-the-summary.html.erb +10 -0
  80. data/fixtures/summary-app/source/2011-01-01-article-with-standard-summary-separator.html.markdown +7 -0
  81. data/fixtures/summary-app/source/2012-06-19-article-with-no-summary-separator.html.markdown +9 -0
  82. data/fixtures/summary-app/source/2013-05-08-article-with-custom-separator.html.markdown +7 -0
  83. data/fixtures/summary-app/source/index.html.erb +5 -0
  84. data/fixtures/tags-multiblog-app/config.rb +15 -0
  85. data/fixtures/tags-multiblog-app/source/blog1/2011-01-01-new-article.html.markdown +7 -0
  86. data/fixtures/tags-multiblog-app/source/blog1/2011-01-02-another-article.html.markdown +9 -0
  87. data/fixtures/tags-multiblog-app/source/blog2/2011-01-01-new-article.html.markdown +7 -0
  88. data/fixtures/tags-multiblog-app/source/blog2/2011-01-02-another-article.html.markdown +9 -0
  89. data/fixtures/tags-multiblog-app/source/index.html.erb +8 -0
  90. data/fixtures/tags-multiblog-app/source/layout.erb +13 -0
  91. data/fixtures/tags-multiblog-app/source/tag1.html.erb +7 -0
  92. data/fixtures/tags-multiblog-app/source/tag2.html.erb +7 -0
  93. data/fixtures/time-zone-app/config.rb +5 -0
  94. data/fixtures/time-zone-app/source/blog/2013-06-24-hello.html.erb +5 -0
  95. data/lib/middleman-blog.rb +9 -4
  96. data/lib/middleman-blog/blog_article.rb +47 -21
  97. data/lib/middleman-blog/blog_data.rb +11 -4
  98. data/lib/middleman-blog/calendar_pages.rb +40 -25
  99. data/lib/middleman-blog/{extension.rb → extension_3_0.rb} +20 -16
  100. data/lib/middleman-blog/extension_3_1.rb +208 -0
  101. data/lib/middleman-blog/paginator.rb +33 -7
  102. data/lib/middleman-blog/tag_pages.rb +26 -9
  103. data/lib/middleman-blog/template/shared/Gemfile.tt +4 -2
  104. data/lib/middleman-blog/template/source/calendar.html.erb +1 -1
  105. data/lib/middleman-blog/template/source/feed.xml.builder +8 -7
  106. data/lib/middleman-blog/template/source/index.html.erb +1 -1
  107. data/lib/middleman-blog/template/source/tag.html.erb +1 -1
  108. data/lib/middleman-blog/truncate_html.rb +10 -1
  109. data/lib/middleman-blog/version.rb +1 -1
  110. data/middleman-blog.gemspec +12 -15
  111. metadata +180 -14
@@ -4,8 +4,25 @@ module Middleman
4
4
  # A sitemap plugin that splits indexes (including tag
5
5
  # and calendar indexes) over multiple pages
6
6
  class Paginator
7
- def initialize(app)
7
+ def initialize(app, controller=nil)
8
8
  @app = app
9
+ @blog_controller = controller
10
+ end
11
+
12
+ def blog_data
13
+ if @blog_controller
14
+ @blog_controller.data
15
+ else
16
+ @app.blog
17
+ end
18
+ end
19
+
20
+ def blog_options
21
+ if @blog_controller
22
+ @blog_controller.options
23
+ else
24
+ @app.blog.options
25
+ end
9
26
  end
10
27
 
11
28
  # Substitute the page number into the resource URL.
@@ -32,17 +49,24 @@ module Middleman
32
49
 
33
50
  resources.each do |res|
34
51
  next if res.ignored?
35
-
52
+
36
53
  md = res.metadata
54
+
55
+ # Skip other blogs' resources
56
+ res_controller = md[:locals]["blog_controller"] || res.blog_controller
57
+ next if @blog_controller && res_controller && (res_controller != @blog_controller)
58
+ override_controller = md[:page]["blog"]
59
+ next if @blog_controller && override_controller && override_controller != @blog_controller.uid
60
+
37
61
  if md[:page]["pageable"]
38
62
  # "articles" local variable is populated by Calendar and Tag page generators
39
63
  # If it's not set then use the complete list of articles
40
64
  # TODO: Some way to allow the frontmatter to specify the article filter?
41
- articles = md[:locals]["articles"] || @app.blog.articles
65
+ articles = md[:locals]["articles"] || self.blog_data.articles
42
66
 
43
67
  # Allow blog.per_page and blog.page_link to be overridden in the frontmatter
44
- per_page = md[:page]["per_page"] || @app.blog.options.per_page
45
- page_link = md[:page]["page_link"] || @app.blog.options.page_link
68
+ per_page = md[:page]["per_page"] || self.blog_options.per_page
69
+ page_link = md[:page]["page_link"] || self.blog_options.page_link
46
70
 
47
71
  num_pages = (articles.length / per_page.to_f).ceil
48
72
 
@@ -72,7 +96,8 @@ module Middleman
72
96
 
73
97
  # Include the articles so that non-proxied pages can use "articles" instead
74
98
  # of "blog.articles" for consistency with the calendar and tag templates.
75
- 'articles' => articles
99
+ 'articles' => articles,
100
+ 'blog_controller' => @blog_controller
76
101
  }
77
102
 
78
103
  prev_page_res = res
@@ -105,7 +130,8 @@ module Middleman
105
130
  'next_page' => nil,
106
131
  'prev_page' => prev_page_res,
107
132
  'page_articles' => articles[page_start..page_end],
108
- 'articles' => articles
133
+ 'articles' => articles,
134
+ 'blog_controller' => @blog_controller
109
135
  }
110
136
 
111
137
  # Add a reference in the previous page to this page
@@ -6,37 +6,54 @@ module Middleman
6
6
  class TagPages
7
7
  class << self
8
8
  # Get a path to the given tag, based on the :taglink setting.
9
- # @param [Middleman::Application] app
9
+ # @param [Hash] blog_options
10
10
  # @param [String] tag
11
11
  # @return [String]
12
- def link(app, tag)
13
- ::Middleman::Util.normalize_path(
14
- app.blog.options.taglink.sub(':tag', tag.parameterize))
12
+ def link(blog_options, tag)
13
+ ::Middleman::Util.normalize_path(blog_options.taglink.sub(':tag', tag.parameterize))
15
14
  end
16
15
  end
17
16
 
18
- def initialize(app)
17
+ def initialize(app, controller=nil)
19
18
  @app = app
19
+ @blog_controller = controller
20
+ end
21
+
22
+ def blog_data
23
+ if @blog_controller
24
+ @blog_controller.data
25
+ else
26
+ @app.blog
27
+ end
28
+ end
29
+
30
+ def blog_options
31
+ if @blog_controller
32
+ @blog_controller.options
33
+ else
34
+ @app.blog.options
35
+ end
20
36
  end
21
37
 
22
38
  # Update the main sitemap resource list
23
39
  # @return [void]
24
40
  def manipulate_resource_list(resources)
25
- resources + @app.blog.tags.map do |tag, articles|
26
- path = TagPages.link(@app, tag)
41
+ resources + self.blog_data.tags.map do |tag, articles|
42
+ path = TagPages.link(self.blog_options, tag)
27
43
 
28
44
  p = ::Middleman::Sitemap::Resource.new(
29
45
  @app.sitemap,
30
46
  path
31
47
  )
32
- p.proxy_to(@app.blog.options.tag_template)
48
+ p.proxy_to(self.blog_options.tag_template)
33
49
 
34
50
  # Add metadata in local variables so it's accessible to
35
51
  # later extensions
36
52
  p.add_metadata :locals => {
37
53
  'page_type' => 'tag',
38
54
  'tagname' => tag,
39
- 'articles' => articles
55
+ 'articles' => articles,
56
+ 'blog_controller' => @blog_controller
40
57
  }
41
58
  # Add metadata in instance variables for backwards compatibility
42
59
  p.add_metadata do
@@ -1,7 +1,9 @@
1
- source :rubygems
1
+ # If you have OpenSSL installed, we recommend updating
2
+ # the following line to use "https"
3
+ source 'http://rubygems.org'
2
4
 
3
5
  gem "middleman", "~> <%= Middleman::VERSION %>"
4
6
  gem "middleman-blog", "~> <%= Middleman::Blog::VERSION %>"
5
7
 
6
8
  # For feed.xml.builder
7
- gem "builder", "~> 3.0.0"
9
+ gem "builder", "~> 3.0"
@@ -12,7 +12,7 @@ pageable: true
12
12
  <% end %>
13
13
  </h1>
14
14
 
15
- <% if paginate %>
15
+ <% if paginate && num_pages > 1 %>
16
16
  <p>Page <%= page_number %> of <%= num_pages %></p>
17
17
 
18
18
  <% if prev_page %>
@@ -1,23 +1,24 @@
1
1
  xml.instruct!
2
2
  xml.feed "xmlns" => "http://www.w3.org/2005/Atom" do
3
+ site_url = "http://blog.url.com/"
3
4
  xml.title "Blog Name"
4
5
  xml.subtitle "Blog subtitle"
5
- xml.id "http://blog.url.com/"
6
- xml.link "href" => "http://blog.url.com/"
7
- xml.link "href" => "http://blog.url.com/feed.xml", "rel" => "self"
6
+ xml.id URI.join(site_url, blog.options.prefix.to_s)
7
+ xml.link "href" => URI.join(site_url, blog.options.prefix.to_s)
8
+ xml.link "href" => URI.join(site_url, current_page.path), "rel" => "self"
8
9
  xml.updated blog.articles.first.date.to_time.iso8601
9
10
  xml.author { xml.name "Blog Author" }
10
11
 
11
12
  blog.articles[0..5].each do |article|
12
13
  xml.entry do
13
14
  xml.title article.title
14
- xml.link "rel" => "alternate", "href" => article.url
15
- xml.id article.url
15
+ xml.link "rel" => "alternate", "href" => URI.join(site_url, article.url)
16
+ xml.id URI.join(site_url, article.url)
16
17
  xml.published article.date.to_time.iso8601
17
- xml.updated article.date.to_time.iso8601
18
+ xml.updated File.mtime(article.source_file).iso8601
18
19
  xml.author { xml.name "Article Author" }
19
20
  # xml.summary article.summary, "type" => "html"
20
21
  xml.content article.body, "type" => "html"
21
22
  end
22
23
  end
23
- end
24
+ end
@@ -2,7 +2,7 @@
2
2
  pageable: true
3
3
  per_page: 10
4
4
  ---
5
- <% if paginate %>
5
+ <% if paginate && num_pages > 1 %>
6
6
  <p>Page <%= page_number %> of <%= num_pages %></p>
7
7
 
8
8
  <% if prev_page %>
@@ -4,7 +4,7 @@ per_page: 12
4
4
  ---
5
5
  <h1>Articles tagged '<%= tagname %>'</h1>
6
6
 
7
- <% if paginate %>
7
+ <% if paginate && num_pages > 1 %>
8
8
  <p>Page <%= page_number %> of <%= num_pages %></p>
9
9
 
10
10
  <% if prev_page %>
@@ -8,7 +8,8 @@ end
8
8
  # MIT license
9
9
  module TruncateHTML
10
10
  def self.truncate_html(text, max_length, ellipsis = "...")
11
- ellipsis_length = ellipsis.length
11
+ ellipsis_length = ellipsis.length
12
+ text = text.encode('UTF-8') if text.respond_to?(:encode)
12
13
  doc = Nokogiri::HTML::DocumentFragment.parse text
13
14
  content_length = doc.inner_text.length
14
15
  actual_length = max_length - ellipsis_length
@@ -46,8 +47,16 @@ module NokogiriTruncator
46
47
  end
47
48
  end
48
49
 
50
+ module CommentNode
51
+ def truncate(*args)
52
+ # Don't truncate comments, since they aren't visible
53
+ self
54
+ end
55
+ end
56
+
49
57
  end
50
58
 
51
59
  Nokogiri::HTML::DocumentFragment.send(:include, NokogiriTruncator::NodeWithChildren)
52
60
  Nokogiri::XML::Element.send(:include, NokogiriTruncator::NodeWithChildren)
53
61
  Nokogiri::XML::Text.send(:include, NokogiriTruncator::TextNode)
62
+ Nokogiri::XML::Comment.send(:include, NokogiriTruncator::CommentNode)
@@ -1,5 +1,5 @@
1
1
  module Middleman
2
2
  module Blog
3
- VERSION = "3.2.0"
3
+ VERSION = "3.3.0"
4
4
  end
5
5
  end
@@ -3,22 +3,19 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
  require "middleman-blog/version"
4
4
 
5
5
  Gem::Specification.new do |s|
6
- s.name = "middleman-blog"
7
- s.version = Middleman::Blog::VERSION
8
- s.platform = Gem::Platform::RUBY
9
- s.authors = ["Thomas Reynolds", "Ben Hollis"]
10
- s.email = ["me@tdreyno.com", "ben@benhollis.net"]
11
- s.homepage = "https://github.com/middleman/middleman-blog"
12
- s.summary = %q{A blog foundation using Middleman}
13
- s.description = %q{A blog foundation using Middleman}
14
-
15
- s.rubyforge_project = "middleman-blog"
16
-
17
- s.files = `git ls-files -z`.split("\0")
18
- s.test_files = `git ls-files -z -- {fixtures,features}/*`.split("\0")
6
+ s.name = "middleman-blog"
7
+ s.version = Middleman::Blog::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Thomas Reynolds", "Ben Hollis"]
10
+ s.email = ["me@tdreyno.com", "ben@benhollis.net"]
11
+ s.homepage = "https://github.com/middleman/middleman-blog"
12
+ s.summary = %q{Blog engine for Middleman}
13
+ s.description = %q{Blog engine for Middleman}
14
+ s.license = "MIT"
15
+ s.files = `git ls-files -z`.split("\0")
16
+ s.test_files = `git ls-files -z -- {fixtures,features}/*`.split("\0")
19
17
  s.require_paths = ["lib"]
20
-
21
18
  s.add_dependency("middleman-core", ["~> 3.0"])
22
- s.add_dependency("maruku", ["~> 0.6.0"])
19
+ s.add_dependency("middleman-more", ["~> 3.0"])
23
20
  s.add_dependency("tzinfo", ["~> 0.3.0"])
24
21
  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.2.0
4
+ version: 3.3.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: 2013-03-11 00:00:00.000000000 Z
12
+ date: 2013-09-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: middleman-core
@@ -26,19 +26,19 @@ dependencies:
26
26
  - !ruby/object:Gem::Version
27
27
  version: '3.0'
28
28
  - !ruby/object:Gem::Dependency
29
- name: maruku
29
+ name: middleman-more
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - ~>
33
33
  - !ruby/object:Gem::Version
34
- version: 0.6.0
34
+ version: '3.0'
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - ~>
40
40
  - !ruby/object:Gem::Version
41
- version: 0.6.0
41
+ version: '3.0'
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: tzinfo
44
44
  requirement: !ruby/object:Gem::Requirement
@@ -53,7 +53,7 @@ dependencies:
53
53
  - - ~>
54
54
  - !ruby/object:Gem::Version
55
55
  version: 0.3.0
56
- description: A blog foundation using Middleman
56
+ description: Blog engine for Middleman
57
57
  email:
58
58
  - me@tdreyno.com
59
59
  - ben@benhollis.net
@@ -66,8 +66,10 @@ files:
66
66
  - .travis.yml
67
67
  - .yardopts
68
68
  - CHANGELOG.md
69
+ - CONTRIBUTING.md
69
70
  - Gemfile
70
- - LICENSE
71
+ - Gemfile-3.0
72
+ - LICENSE.md
71
73
  - README.md
72
74
  - Rakefile
73
75
  - features/article_cli.feature
@@ -75,19 +77,24 @@ files:
75
77
  - features/blog_sources.feature
76
78
  - features/calendar-and-tag.feature
77
79
  - features/calendar.feature
80
+ - features/calendar_multiblog.feature
78
81
  - features/directory_indexes.feature
79
- - features/encoding.feature
80
82
  - features/filename_date.feature
81
83
  - features/future_date.feature
82
84
  - features/layouts.feature
85
+ - features/multiblog.feature
83
86
  - features/next_previous.feature
84
87
  - features/no_date.feature
85
88
  - features/paginate.feature
89
+ - features/paginate_multiblog.feature
86
90
  - features/preview.feature
87
91
  - features/published.feature
92
+ - features/summary.feature
88
93
  - features/support/env.rb
89
94
  - features/support/time_steps.rb
90
95
  - features/tags.feature
96
+ - features/tags_multiblog.feature
97
+ - features/time_zone.feature
91
98
  - fixtures/article-dirs-app/config.rb
92
99
  - fixtures/article-dirs-app/source/blog/2011-01-01-new-article.html.markdown
93
100
  - fixtures/article-dirs-app/source/blog/2011-01-01-new-article/example.txt
@@ -96,6 +103,7 @@ files:
96
103
  - fixtures/blog-sources-app/config.rb
97
104
  - fixtures/blog-sources-app/source/_article_template.erb
98
105
  - fixtures/blog-sources-app/source/blog/2011-01-01-new-article.html.markdown
106
+ - fixtures/blog-sources-app/source/blog/2013-08-08-slug-from-filename.html.markdown
99
107
  - fixtures/blog-sources-app/source/index.html.erb
100
108
  - fixtures/blog-sources-app/source/layout.erb
101
109
  - fixtures/calendar-and-tag-app/config-directory-indexes.rb
@@ -112,6 +120,26 @@ files:
112
120
  - fixtures/calendar-app/source/calendar.html.erb
113
121
  - fixtures/calendar-app/source/index.html.erb
114
122
  - fixtures/calendar-app/source/layout.erb
123
+ - fixtures/calendar-multiblog-app/config.rb
124
+ - fixtures/calendar-multiblog-app/source/blog1/2011-01-01-new-article.html.markdown
125
+ - fixtures/calendar-multiblog-app/source/blog1/2011-01-02-another-article.html.markdown
126
+ - fixtures/calendar-multiblog-app/source/blog2/2011-01-01-new-article.html.markdown
127
+ - fixtures/calendar-multiblog-app/source/blog2/2011-01-02-another-article.html.markdown
128
+ - fixtures/calendar-multiblog-app/source/calendar1.html.erb
129
+ - fixtures/calendar-multiblog-app/source/calendar2.html.erb
130
+ - fixtures/calendar-multiblog-app/source/index.html.erb
131
+ - fixtures/calendar-multiblog-app/source/layout.erb
132
+ - fixtures/default-template-app/Gemfile
133
+ - fixtures/default-template-app/config.rb
134
+ - fixtures/default-template-app/source/2013-04-01-new-article.html.markdown
135
+ - fixtures/default-template-app/source/about-me.html.erb
136
+ - fixtures/default-template-app/source/archives.html.erb
137
+ - fixtures/default-template-app/source/index.html.erb
138
+ - fixtures/default-template-app/source/javascripts/_zepto.pjax.js
139
+ - fixtures/default-template-app/source/javascripts/app.js
140
+ - fixtures/default-template-app/source/javascripts/modernizr.js
141
+ - fixtures/default-template-app/source/layouts/layout.erb
142
+ - fixtures/default-template-app/source/stylesheets/app.css.scss
115
143
  - fixtures/filename-date-app/config.rb
116
144
  - fixtures/filename-date-app/source/2011-01-01-new-article.html.markdown
117
145
  - fixtures/filename-date-app/source/2011-01-03-filename-and-frontmatter.html.markdown
@@ -137,6 +165,11 @@ files:
137
165
  - fixtures/layouts-app/source/layouts/layout.erb
138
166
  - fixtures/layouts-app/source/layouts/second.html.erb
139
167
  - fixtures/layouts-app/source/layouts/third.html.erb
168
+ - fixtures/multiblog-app/config.rb
169
+ - fixtures/multiblog-app/source/blog1/2012-12-12-other-article.html.markdown
170
+ - fixtures/multiblog-app/source/blog2/2011/01/01/new-article.html.markdown
171
+ - fixtures/multiblog-app/source/index.html.erb
172
+ - fixtures/multiblog-app/source/layout.erb
140
173
  - fixtures/no-date-app/config.rb
141
174
  - fixtures/no-date-app/source/_article_template.erb
142
175
  - fixtures/no-date-app/source/blog/new-article.html.markdown
@@ -145,6 +178,10 @@ files:
145
178
  - fixtures/no-day-app/config.rb
146
179
  - fixtures/no-day-app/source/2012-08-testing.html.markdown
147
180
  - fixtures/no-day-app/source/layout.erb
181
+ - fixtures/no-title-app/config.rb
182
+ - fixtures/no-title-app/source/2013-08-07.html.markdown
183
+ - fixtures/no-title-app/source/2013-08-08.html.markdown
184
+ - fixtures/no-title-app/source/layout.erb
148
185
  - fixtures/paginate-app/config-directory-indexes.rb
149
186
  - fixtures/paginate-app/config-paginate-off.rb
150
187
  - fixtures/paginate-app/config.rb
@@ -159,6 +196,35 @@ files:
159
196
  - fixtures/paginate-app/source/index.html.erb
160
197
  - fixtures/paginate-app/source/layout.erb
161
198
  - fixtures/paginate-app/source/tag.html.erb
199
+ - fixtures/paginate-multiblog-app/config.rb
200
+ - fixtures/paginate-multiblog-app/source/blog1/2011-01-01-test-article.html.markdown
201
+ - fixtures/paginate-multiblog-app/source/blog1/2011-01-02-test-article.html.markdown
202
+ - fixtures/paginate-multiblog-app/source/blog1/2011-01-03-test-article.html.markdown
203
+ - fixtures/paginate-multiblog-app/source/blog1/2011-01-04-test-article.html.markdown
204
+ - fixtures/paginate-multiblog-app/source/blog1/2011-01-05-test-article.html.markdown
205
+ - fixtures/paginate-multiblog-app/source/blog1/2011-02-01-test-article.html.markdown
206
+ - fixtures/paginate-multiblog-app/source/blog1/index.html.erb
207
+ - fixtures/paginate-multiblog-app/source/blog2/2011-01-01-test-article.html.markdown
208
+ - fixtures/paginate-multiblog-app/source/blog2/2011-01-02-test-article.html.markdown
209
+ - fixtures/paginate-multiblog-app/source/blog2/2011-01-03-test-article.html.markdown
210
+ - fixtures/paginate-multiblog-app/source/blog2/2011-01-04-test-article.html.markdown
211
+ - fixtures/paginate-multiblog-app/source/blog2/2011-01-05-test-article.html.markdown
212
+ - fixtures/paginate-multiblog-app/source/blog2/index.html.erb
213
+ - fixtures/paginate-multiblog-app/source/blog3/2011-01-01-test-article.html.markdown
214
+ - fixtures/paginate-multiblog-app/source/blog3/2011-01-02-test-article.html.markdown
215
+ - fixtures/paginate-multiblog-app/source/blog3/2011-01-03-test-article.html.markdown
216
+ - fixtures/paginate-multiblog-app/source/blog3/2011-01-04-test-article.html.markdown
217
+ - fixtures/paginate-multiblog-app/source/blog3/2011-01-05-test-article.html.markdown
218
+ - fixtures/paginate-multiblog-app/source/blog3/2011-02-01-test-article.html.markdown
219
+ - fixtures/paginate-multiblog-app/source/blog3/2011-02-02-test-article.html.markdown
220
+ - fixtures/paginate-multiblog-app/source/blog3/index.html.erb
221
+ - fixtures/paginate-multiblog-app/source/calendar1.html.erb
222
+ - fixtures/paginate-multiblog-app/source/calendar2.html.erb
223
+ - fixtures/paginate-multiblog-app/source/calendar3.html.erb
224
+ - fixtures/paginate-multiblog-app/source/layout.erb
225
+ - fixtures/paginate-multiblog-app/source/tag1.html.erb
226
+ - fixtures/paginate-multiblog-app/source/tag2.html.erb
227
+ - fixtures/paginate-multiblog-app/source/tag3.html.erb
162
228
  - fixtures/preview-app/config.rb
163
229
  - fixtures/preview-app/source/2011/01/01/new-article.html.markdown
164
230
  - fixtures/preview-app/source/index.html.erb
@@ -170,6 +236,12 @@ files:
170
236
  - fixtures/published-app/source/blog/2012-06-19-draft-article/example.txt
171
237
  - fixtures/published-app/source/index.html.erb
172
238
  - fixtures/published-app/source/layout.erb
239
+ - fixtures/summary-app/config.rb
240
+ - fixtures/summary-app/source/2011-01-01-article-with-no-summary-separator-and-comments-in-the-summary.html.erb
241
+ - fixtures/summary-app/source/2011-01-01-article-with-standard-summary-separator.html.markdown
242
+ - fixtures/summary-app/source/2012-06-19-article-with-no-summary-separator.html.markdown
243
+ - fixtures/summary-app/source/2013-05-08-article-with-custom-separator.html.markdown
244
+ - fixtures/summary-app/source/index.html.erb
173
245
  - fixtures/tags-app/config-directory-indexes.rb
174
246
  - fixtures/tags-app/config.rb
175
247
  - fixtures/tags-app/source/blog/2011-01-01-new-article.html.markdown
@@ -177,13 +249,25 @@ files:
177
249
  - fixtures/tags-app/source/index.html.erb
178
250
  - fixtures/tags-app/source/layout.erb
179
251
  - fixtures/tags-app/source/tag.html.erb
252
+ - fixtures/tags-multiblog-app/config.rb
253
+ - fixtures/tags-multiblog-app/source/blog1/2011-01-01-new-article.html.markdown
254
+ - fixtures/tags-multiblog-app/source/blog1/2011-01-02-another-article.html.markdown
255
+ - fixtures/tags-multiblog-app/source/blog2/2011-01-01-new-article.html.markdown
256
+ - fixtures/tags-multiblog-app/source/blog2/2011-01-02-another-article.html.markdown
257
+ - fixtures/tags-multiblog-app/source/index.html.erb
258
+ - fixtures/tags-multiblog-app/source/layout.erb
259
+ - fixtures/tags-multiblog-app/source/tag1.html.erb
260
+ - fixtures/tags-multiblog-app/source/tag2.html.erb
261
+ - fixtures/time-zone-app/config.rb
262
+ - fixtures/time-zone-app/source/blog/2013-06-24-hello.html.erb
180
263
  - lib/middleman-blog.rb
181
264
  - lib/middleman-blog/blog_article.rb
182
265
  - lib/middleman-blog/blog_data.rb
183
266
  - lib/middleman-blog/calendar_pages.rb
184
267
  - lib/middleman-blog/commands/article.rb
185
268
  - lib/middleman-blog/commands/article.tt
186
- - lib/middleman-blog/extension.rb
269
+ - lib/middleman-blog/extension_3_0.rb
270
+ - lib/middleman-blog/extension_3_1.rb
187
271
  - lib/middleman-blog/paginator.rb
188
272
  - lib/middleman-blog/tag_pages.rb
189
273
  - lib/middleman-blog/template.rb
@@ -200,7 +284,8 @@ files:
200
284
  - lib/middleman_extension.rb
201
285
  - middleman-blog.gemspec
202
286
  homepage: https://github.com/middleman/middleman-blog
203
- licenses: []
287
+ licenses:
288
+ - MIT
204
289
  metadata: {}
205
290
  post_install_message:
206
291
  rdoc_options: []
@@ -217,30 +302,35 @@ required_rubygems_version: !ruby/object:Gem::Requirement
217
302
  - !ruby/object:Gem::Version
218
303
  version: '0'
219
304
  requirements: []
220
- rubyforge_project: middleman-blog
221
- rubygems_version: 2.0.0
305
+ rubyforge_project:
306
+ rubygems_version: 2.0.3
222
307
  signing_key:
223
308
  specification_version: 4
224
- summary: A blog foundation using Middleman
309
+ summary: Blog engine for Middleman
225
310
  test_files:
226
311
  - features/article_cli.feature
227
312
  - features/article_dirs.feature
228
313
  - features/blog_sources.feature
229
314
  - features/calendar-and-tag.feature
230
315
  - features/calendar.feature
316
+ - features/calendar_multiblog.feature
231
317
  - features/directory_indexes.feature
232
- - features/encoding.feature
233
318
  - features/filename_date.feature
234
319
  - features/future_date.feature
235
320
  - features/layouts.feature
321
+ - features/multiblog.feature
236
322
  - features/next_previous.feature
237
323
  - features/no_date.feature
238
324
  - features/paginate.feature
325
+ - features/paginate_multiblog.feature
239
326
  - features/preview.feature
240
327
  - features/published.feature
328
+ - features/summary.feature
241
329
  - features/support/env.rb
242
330
  - features/support/time_steps.rb
243
331
  - features/tags.feature
332
+ - features/tags_multiblog.feature
333
+ - features/time_zone.feature
244
334
  - fixtures/article-dirs-app/config.rb
245
335
  - fixtures/article-dirs-app/source/blog/2011-01-01-new-article.html.markdown
246
336
  - fixtures/article-dirs-app/source/blog/2011-01-01-new-article/example.txt
@@ -249,6 +339,7 @@ test_files:
249
339
  - fixtures/blog-sources-app/config.rb
250
340
  - fixtures/blog-sources-app/source/_article_template.erb
251
341
  - fixtures/blog-sources-app/source/blog/2011-01-01-new-article.html.markdown
342
+ - fixtures/blog-sources-app/source/blog/2013-08-08-slug-from-filename.html.markdown
252
343
  - fixtures/blog-sources-app/source/index.html.erb
253
344
  - fixtures/blog-sources-app/source/layout.erb
254
345
  - fixtures/calendar-and-tag-app/config-directory-indexes.rb
@@ -265,6 +356,26 @@ test_files:
265
356
  - fixtures/calendar-app/source/calendar.html.erb
266
357
  - fixtures/calendar-app/source/index.html.erb
267
358
  - fixtures/calendar-app/source/layout.erb
359
+ - fixtures/calendar-multiblog-app/config.rb
360
+ - fixtures/calendar-multiblog-app/source/blog1/2011-01-01-new-article.html.markdown
361
+ - fixtures/calendar-multiblog-app/source/blog1/2011-01-02-another-article.html.markdown
362
+ - fixtures/calendar-multiblog-app/source/blog2/2011-01-01-new-article.html.markdown
363
+ - fixtures/calendar-multiblog-app/source/blog2/2011-01-02-another-article.html.markdown
364
+ - fixtures/calendar-multiblog-app/source/calendar1.html.erb
365
+ - fixtures/calendar-multiblog-app/source/calendar2.html.erb
366
+ - fixtures/calendar-multiblog-app/source/index.html.erb
367
+ - fixtures/calendar-multiblog-app/source/layout.erb
368
+ - fixtures/default-template-app/Gemfile
369
+ - fixtures/default-template-app/config.rb
370
+ - fixtures/default-template-app/source/2013-04-01-new-article.html.markdown
371
+ - fixtures/default-template-app/source/about-me.html.erb
372
+ - fixtures/default-template-app/source/archives.html.erb
373
+ - fixtures/default-template-app/source/index.html.erb
374
+ - fixtures/default-template-app/source/javascripts/_zepto.pjax.js
375
+ - fixtures/default-template-app/source/javascripts/app.js
376
+ - fixtures/default-template-app/source/javascripts/modernizr.js
377
+ - fixtures/default-template-app/source/layouts/layout.erb
378
+ - fixtures/default-template-app/source/stylesheets/app.css.scss
268
379
  - fixtures/filename-date-app/config.rb
269
380
  - fixtures/filename-date-app/source/2011-01-01-new-article.html.markdown
270
381
  - fixtures/filename-date-app/source/2011-01-03-filename-and-frontmatter.html.markdown
@@ -290,6 +401,11 @@ test_files:
290
401
  - fixtures/layouts-app/source/layouts/layout.erb
291
402
  - fixtures/layouts-app/source/layouts/second.html.erb
292
403
  - fixtures/layouts-app/source/layouts/third.html.erb
404
+ - fixtures/multiblog-app/config.rb
405
+ - fixtures/multiblog-app/source/blog1/2012-12-12-other-article.html.markdown
406
+ - fixtures/multiblog-app/source/blog2/2011/01/01/new-article.html.markdown
407
+ - fixtures/multiblog-app/source/index.html.erb
408
+ - fixtures/multiblog-app/source/layout.erb
293
409
  - fixtures/no-date-app/config.rb
294
410
  - fixtures/no-date-app/source/_article_template.erb
295
411
  - fixtures/no-date-app/source/blog/new-article.html.markdown
@@ -298,6 +414,10 @@ test_files:
298
414
  - fixtures/no-day-app/config.rb
299
415
  - fixtures/no-day-app/source/2012-08-testing.html.markdown
300
416
  - fixtures/no-day-app/source/layout.erb
417
+ - fixtures/no-title-app/config.rb
418
+ - fixtures/no-title-app/source/2013-08-07.html.markdown
419
+ - fixtures/no-title-app/source/2013-08-08.html.markdown
420
+ - fixtures/no-title-app/source/layout.erb
301
421
  - fixtures/paginate-app/config-directory-indexes.rb
302
422
  - fixtures/paginate-app/config-paginate-off.rb
303
423
  - fixtures/paginate-app/config.rb
@@ -312,6 +432,35 @@ test_files:
312
432
  - fixtures/paginate-app/source/index.html.erb
313
433
  - fixtures/paginate-app/source/layout.erb
314
434
  - fixtures/paginate-app/source/tag.html.erb
435
+ - fixtures/paginate-multiblog-app/config.rb
436
+ - fixtures/paginate-multiblog-app/source/blog1/2011-01-01-test-article.html.markdown
437
+ - fixtures/paginate-multiblog-app/source/blog1/2011-01-02-test-article.html.markdown
438
+ - fixtures/paginate-multiblog-app/source/blog1/2011-01-03-test-article.html.markdown
439
+ - fixtures/paginate-multiblog-app/source/blog1/2011-01-04-test-article.html.markdown
440
+ - fixtures/paginate-multiblog-app/source/blog1/2011-01-05-test-article.html.markdown
441
+ - fixtures/paginate-multiblog-app/source/blog1/2011-02-01-test-article.html.markdown
442
+ - fixtures/paginate-multiblog-app/source/blog1/index.html.erb
443
+ - fixtures/paginate-multiblog-app/source/blog2/2011-01-01-test-article.html.markdown
444
+ - fixtures/paginate-multiblog-app/source/blog2/2011-01-02-test-article.html.markdown
445
+ - fixtures/paginate-multiblog-app/source/blog2/2011-01-03-test-article.html.markdown
446
+ - fixtures/paginate-multiblog-app/source/blog2/2011-01-04-test-article.html.markdown
447
+ - fixtures/paginate-multiblog-app/source/blog2/2011-01-05-test-article.html.markdown
448
+ - fixtures/paginate-multiblog-app/source/blog2/index.html.erb
449
+ - fixtures/paginate-multiblog-app/source/blog3/2011-01-01-test-article.html.markdown
450
+ - fixtures/paginate-multiblog-app/source/blog3/2011-01-02-test-article.html.markdown
451
+ - fixtures/paginate-multiblog-app/source/blog3/2011-01-03-test-article.html.markdown
452
+ - fixtures/paginate-multiblog-app/source/blog3/2011-01-04-test-article.html.markdown
453
+ - fixtures/paginate-multiblog-app/source/blog3/2011-01-05-test-article.html.markdown
454
+ - fixtures/paginate-multiblog-app/source/blog3/2011-02-01-test-article.html.markdown
455
+ - fixtures/paginate-multiblog-app/source/blog3/2011-02-02-test-article.html.markdown
456
+ - fixtures/paginate-multiblog-app/source/blog3/index.html.erb
457
+ - fixtures/paginate-multiblog-app/source/calendar1.html.erb
458
+ - fixtures/paginate-multiblog-app/source/calendar2.html.erb
459
+ - fixtures/paginate-multiblog-app/source/calendar3.html.erb
460
+ - fixtures/paginate-multiblog-app/source/layout.erb
461
+ - fixtures/paginate-multiblog-app/source/tag1.html.erb
462
+ - fixtures/paginate-multiblog-app/source/tag2.html.erb
463
+ - fixtures/paginate-multiblog-app/source/tag3.html.erb
315
464
  - fixtures/preview-app/config.rb
316
465
  - fixtures/preview-app/source/2011/01/01/new-article.html.markdown
317
466
  - fixtures/preview-app/source/index.html.erb
@@ -323,6 +472,12 @@ test_files:
323
472
  - fixtures/published-app/source/blog/2012-06-19-draft-article/example.txt
324
473
  - fixtures/published-app/source/index.html.erb
325
474
  - fixtures/published-app/source/layout.erb
475
+ - fixtures/summary-app/config.rb
476
+ - fixtures/summary-app/source/2011-01-01-article-with-no-summary-separator-and-comments-in-the-summary.html.erb
477
+ - fixtures/summary-app/source/2011-01-01-article-with-standard-summary-separator.html.markdown
478
+ - fixtures/summary-app/source/2012-06-19-article-with-no-summary-separator.html.markdown
479
+ - fixtures/summary-app/source/2013-05-08-article-with-custom-separator.html.markdown
480
+ - fixtures/summary-app/source/index.html.erb
326
481
  - fixtures/tags-app/config-directory-indexes.rb
327
482
  - fixtures/tags-app/config.rb
328
483
  - fixtures/tags-app/source/blog/2011-01-01-new-article.html.markdown
@@ -330,4 +485,15 @@ test_files:
330
485
  - fixtures/tags-app/source/index.html.erb
331
486
  - fixtures/tags-app/source/layout.erb
332
487
  - fixtures/tags-app/source/tag.html.erb
488
+ - fixtures/tags-multiblog-app/config.rb
489
+ - fixtures/tags-multiblog-app/source/blog1/2011-01-01-new-article.html.markdown
490
+ - fixtures/tags-multiblog-app/source/blog1/2011-01-02-another-article.html.markdown
491
+ - fixtures/tags-multiblog-app/source/blog2/2011-01-01-new-article.html.markdown
492
+ - fixtures/tags-multiblog-app/source/blog2/2011-01-02-another-article.html.markdown
493
+ - fixtures/tags-multiblog-app/source/index.html.erb
494
+ - fixtures/tags-multiblog-app/source/layout.erb
495
+ - fixtures/tags-multiblog-app/source/tag1.html.erb
496
+ - fixtures/tags-multiblog-app/source/tag2.html.erb
497
+ - fixtures/time-zone-app/config.rb
498
+ - fixtures/time-zone-app/source/blog/2013-06-24-hello.html.erb
333
499
  has_rdoc: