middleman-blog 3.3.0 → 3.4.1
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.
- checksums.yaml +4 -4
- data/Gemfile +1 -2
- data/Gemfile-3.0 +1 -1
- data/features/custom_collections.feature +70 -0
- data/features/custom_collections_multiblog.feature +58 -0
- data/features/custom_permalinks_feature.feature +33 -0
- data/features/tags_multiblog.feature +28 -2
- data/fixtures/calendar-and-tag-app/config-directory-indexes.rb +0 -1
- data/fixtures/calendar-app/config-directory-indexes.rb +0 -1
- data/fixtures/custom-collections-app/config-blog-prefix.rb +13 -0
- data/fixtures/custom-collections-app/config-directory-indexes.rb +13 -0
- data/fixtures/custom-collections-app/config.rb +12 -0
- data/fixtures/custom-collections-app/source/blog/2011-01-01-new-article.html.markdown +8 -0
- data/fixtures/custom-collections-app/source/blog/2011-01-02-another-article.html.markdown +9 -0
- data/fixtures/custom-collections-app/source/category.html.erb +7 -0
- data/fixtures/custom-collections-app/source/index.html.erb +5 -0
- data/fixtures/custom-collections-app/source/layout.erb +13 -0
- data/fixtures/custom-collections-multiblog-app/config.rb +27 -0
- data/fixtures/custom-collections-multiblog-app/source/blog1/2011-01-01-new-article.html.markdown +7 -0
- data/fixtures/custom-collections-multiblog-app/source/blog1/2011-01-02-another-article.html.markdown +7 -0
- data/fixtures/custom-collections-multiblog-app/source/blog2/2011-01-01-new-article.html.markdown +7 -0
- data/fixtures/custom-collections-multiblog-app/source/blog2/2011-01-02-another-article.html.markdown +7 -0
- data/fixtures/custom-collections-multiblog-app/source/category1.html.erb +7 -0
- data/fixtures/custom-collections-multiblog-app/source/category2.html.erb +7 -0
- data/fixtures/custom-collections-multiblog-app/source/index.html.erb +8 -0
- data/fixtures/custom-collections-multiblog-app/source/layout.erb +13 -0
- data/fixtures/custom-permalinks-app/config-directory-indexes.rb +7 -0
- data/fixtures/custom-permalinks-app/config.rb +5 -0
- data/fixtures/custom-permalinks-app/source/blog/2011-01-01-new-article.html.markdown +7 -0
- data/fixtures/custom-permalinks-app/source/blog/2011-01-02-another-article.html.markdown +7 -0
- data/fixtures/custom-permalinks-app/source/blog/2011-01-03-third-article.html.markdown +7 -0
- data/fixtures/custom-permalinks-app/source/index.html.erb +3 -0
- data/fixtures/custom-permalinks-app/source/layout.erb +13 -0
- data/fixtures/indexes-app/config.rb +0 -1
- data/fixtures/layouts-app/config.rb +0 -2
- data/fixtures/multiblog-app/source/index.html.erb +1 -3
- data/fixtures/paginate-app/config-directory-indexes.rb +0 -1
- data/fixtures/tags-app/config-directory-indexes.rb +0 -1
- data/fixtures/tags-app/config.rb +1 -1
- data/fixtures/tags-multiblog-app/config.rb +1 -1
- data/fixtures/tags-multiblog-app/source/blog1/frontmatter_blog_tags.html.erb +9 -0
- data/fixtures/tags-multiblog-app/source/blog1/named_blog_tags.html.erb +5 -0
- data/fixtures/tags-multiblog-app/source/blog2/frontmatter_blog_tags.html.erb +9 -0
- data/fixtures/tags-multiblog-app/source/blog2/named_blog_tags.html.erb +5 -0
- data/lib/middleman-blog/blog_article.rb +7 -2
- data/lib/middleman-blog/blog_data.rb +37 -20
- data/lib/middleman-blog/custom_pages.rb +85 -0
- data/lib/middleman-blog/extension_3_0.rb +28 -1
- data/lib/middleman-blog/extension_3_1.rb +71 -1
- data/lib/middleman-blog/paginator.rb +2 -2
- data/lib/middleman-blog/template/source/feed.xml.builder +1 -1
- data/lib/middleman-blog/template/source/layout.erb +1 -0
- data/lib/middleman-blog/version.rb +1 -1
- data/middleman-blog.gemspec +1 -2
- metadata +67 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 557a6f4be03e753999b53fa39a8d3310c13b8e89
|
4
|
+
data.tar.gz: a341051be4806dfdf9a6096b8efa3299bab8c57e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3423447600f0594c2a50a0553db7441c7ccf2cab3ef1eb5208c8dd2f6058c79e0f49b778fafa007ee58bbe95613908d9791978fcd384712686a6a5edf139acd0
|
7
|
+
data.tar.gz: 1910cadf0f09c54260ef60d41a9ecf89dc83d0aa65a46bcf5e3da4a67eb2b1e5cf8bab63f43dd28d92a57f536e96d2e583b31a0bf879a16312fb5d3e6a234645
|
data/Gemfile
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
|
3
3
|
gem "middleman-core", :github => "middleman/middleman"
|
4
|
-
gem "middleman-more", :github => "middleman/middleman"
|
5
4
|
|
6
5
|
# Specify your gem's dependencies in middleman-blog.gemspec
|
7
6
|
gemspec
|
@@ -17,7 +16,7 @@ gem "rspec", "~> 2.12"
|
|
17
16
|
gem "simplecov"
|
18
17
|
|
19
18
|
gem "timecop", "~> 0.4.0"
|
20
|
-
gem "nokogiri", "~> 1.6.0
|
19
|
+
gem "nokogiri", "~> 1.5.0" # 1.6.0 requires Ruby 1.9+ but we still test on 1.8
|
21
20
|
gem "kramdown"
|
22
21
|
|
23
22
|
# Code Quality
|
data/Gemfile-3.0
CHANGED
@@ -0,0 +1,70 @@
|
|
1
|
+
Feature: Custom collection pages
|
2
|
+
|
3
|
+
Scenario: Collection pages are accessible from the preview server
|
4
|
+
Given the Server is running at "custom-collections-app"
|
5
|
+
When I go to "/categories/ruby-on-rails.html"
|
6
|
+
Then I should see "/2011-01-01-new-article.html"
|
7
|
+
Then I should not see "/2011-01-02-another-article.html"
|
8
|
+
When I go to "/categories/html5.html"
|
9
|
+
Then I should not see "/2011-01-01-new-article.html"
|
10
|
+
Then I should see "/2011-01-02-another-article.html"
|
11
|
+
When I go to "/index.html"
|
12
|
+
Then I should see "Category Path: '/categories/ruby-on-rails.html'"
|
13
|
+
|
14
|
+
Scenario: Collection pages are accessbile from preview server with directory_indexes
|
15
|
+
Given a fixture app "custom-collections-app"
|
16
|
+
And app "custom-collections-app" is using config "directory-indexes"
|
17
|
+
And the Server is running
|
18
|
+
When I go to "/categories/ruby-on-rails.html"
|
19
|
+
Then I should see "File Not Found"
|
20
|
+
When I go to "/categories/ruby-on-rails"
|
21
|
+
Then I should not see "/2011-01-01-new-article.html"
|
22
|
+
Then I should see "/2011-01-01-new-article"
|
23
|
+
When I go to "/index.html"
|
24
|
+
Then I should see "Category Path: '/categories/ruby-on-rails/'"
|
25
|
+
|
26
|
+
Scenario: Collection pages also get built
|
27
|
+
Given a successfully built app at "custom-collections-app"
|
28
|
+
When I cd to "build"
|
29
|
+
Then the following files should exist:
|
30
|
+
| categories/ruby-on-rails.html |
|
31
|
+
| categories/html5.html |
|
32
|
+
Then the following files should not exist:
|
33
|
+
| categories.html |
|
34
|
+
|
35
|
+
And the file "categories/ruby-on-rails.html" should contain "Category: ruby-on-rails"
|
36
|
+
And the file "categories/ruby-on-rails.html" should contain "/2011-01-01-new-article.html"
|
37
|
+
And the file "categories/ruby-on-rails.html" should not contain "/2011-01-02-another-article.html"
|
38
|
+
|
39
|
+
And the file "categories/html5.html" should contain "Category: html5"
|
40
|
+
And the file "categories/html5.html" should not contain "/2011-01-01-new-article.html"
|
41
|
+
And the file "categories/html5.html" should contain "/2011-01-02-another-article.html"
|
42
|
+
|
43
|
+
Scenario: Adding a post to a collection adds a collection page
|
44
|
+
Given the Server is running at "custom-collections-app"
|
45
|
+
When I go to "/categories/ruby-on-rails.html"
|
46
|
+
Then I should see "/2011-01-01-new-article.html"
|
47
|
+
When I go to "/categories/newcat.html"
|
48
|
+
Then I should see "Not Found"
|
49
|
+
And the file "source/blog/2011-01-01-new-article.html.markdown" has the contents
|
50
|
+
"""
|
51
|
+
---
|
52
|
+
title: "Newest Article"
|
53
|
+
date: 2011-01-01
|
54
|
+
category: newcat
|
55
|
+
---
|
56
|
+
|
57
|
+
Newer Article Content
|
58
|
+
"""
|
59
|
+
When I go to "/categories/bar.html"
|
60
|
+
Then I should see "Not Found"
|
61
|
+
When I go to "/categories/newcat.html"
|
62
|
+
Then I should see "/2011-01-01-new-article.html"
|
63
|
+
|
64
|
+
Scenario: Collection pages are properly nested when using a blog prefix
|
65
|
+
Given a fixture app "custom-collections-app"
|
66
|
+
And app "custom-collections-app" is using config "blog-prefix"
|
67
|
+
And the Server is running
|
68
|
+
When I go to "/blog/categories/ruby-on-rails.html"
|
69
|
+
Then I should see "/2011-01-01-new-article.html"
|
70
|
+
Then I should not see "/2011-01-02-another-article.html"
|
@@ -0,0 +1,58 @@
|
|
1
|
+
@three_one
|
2
|
+
Feature: Use custom collections with multiple blogs
|
3
|
+
|
4
|
+
Scenario: Custom collection pages are accessible from preview server
|
5
|
+
Given the Server is running at "custom-collections-multiblog-app"
|
6
|
+
When I go to "/blog1/categories/ruby-on-rails.html"
|
7
|
+
Then I should see "/blog1/2011-01-01-new-article.html"
|
8
|
+
Then I should not see "/blog1/2011-01-02-another-article.html"
|
9
|
+
Then I should see "Category1: ruby-on-rails"
|
10
|
+
When I go to "/blog2/categories/javascript.html"
|
11
|
+
Then I should see "/blog2/2011-01-01-new-article.html"
|
12
|
+
Then I should not see "/blog2/2011-01-02-another-article.html"
|
13
|
+
Then I should see "Category2: javascript"
|
14
|
+
When I go to "/blog1/categories/html5.html"
|
15
|
+
Then I should not see "/blog1/2011-01-01-new-article.html"
|
16
|
+
Then I should see "/blog1/2011-01-02-another-article.html"
|
17
|
+
Then I should see "Category1: html5"
|
18
|
+
When I go to "/blog2/categories/html5.html"
|
19
|
+
Then I should not see "/blog2/2011-01-01-new-article.html"
|
20
|
+
Then I should see "/blog2/2011-01-02-another-article.html"
|
21
|
+
Then I should not see "/blog1/2011-01-02-another-article.html"
|
22
|
+
Then I should see "Category2: html5"
|
23
|
+
When I go to "/index.html"
|
24
|
+
Then I should see "Category Path1: '/blog1/categories/ruby-on-rails.html'"
|
25
|
+
Then I should see "Category Path2: '/blog2/categories/javascript.html'"
|
26
|
+
|
27
|
+
Scenario: Custom pages also get built
|
28
|
+
Given a successfully built app at "custom-collections-multiblog-app"
|
29
|
+
When I cd to "build"
|
30
|
+
Then the following files should exist:
|
31
|
+
| blog1/categories/ruby-on-rails.html |
|
32
|
+
| blog1/categories/html5.html |
|
33
|
+
| blog2/categories/javascript.html |
|
34
|
+
| blog2/categories/html5.html |
|
35
|
+
Then the following files should not exist:
|
36
|
+
| category1.html |
|
37
|
+
| category2.html |
|
38
|
+
|
39
|
+
And the file "blog1/categories/ruby-on-rails.html" should contain "Category1: ruby-on-rails"
|
40
|
+
And the file "blog1/categories/ruby-on-rails.html" should contain "/blog1/2011-01-01-new-article.html"
|
41
|
+
And the file "blog1/categories/ruby-on-rails.html" should not contain "/blog1/2011-01-02-another-article.html"
|
42
|
+
And the file "blog1/categories/ruby-on-rails.html" should not contain "/blog2/2011-01-01-new-article.html"
|
43
|
+
And the file "blog1/categories/ruby-on-rails.html" should not contain "/blog2/2011-01-02-another-article.html"
|
44
|
+
|
45
|
+
And the file "blog1/categories/html5.html" should contain "Category1: html5"
|
46
|
+
And the file "blog1/categories/html5.html" should not contain "/blog1/2011-01-01-new-article.html"
|
47
|
+
And the file "blog1/categories/html5.html" should contain "/blog1/2011-01-02-another-article.html"
|
48
|
+
|
49
|
+
And the file "blog2/categories/javascript.html" should contain "Category2: javascript"
|
50
|
+
And the file "blog2/categories/javascript.html" should contain "/blog2/2011-01-01-new-article.html"
|
51
|
+
And the file "blog2/categories/javascript.html" should not contain "/blog2/2011-01-02-another-article.html"
|
52
|
+
And the file "blog2/categories/javascript.html" should not contain "/blog1/2011-01-01-new-article.html"
|
53
|
+
And the file "blog2/categories/javascript.html" should not contain "/blog1/2011-01-02-another-article.html"
|
54
|
+
|
55
|
+
And the file "blog2/categories/html5.html" should contain "Category2: html5"
|
56
|
+
And the file "blog2/categories/html5.html" should not contain "/blog2/2011-01-01-new-article.html"
|
57
|
+
And the file "blog2/categories/html5.html" should contain "/blog2/2011-01-02-another-article.html"
|
58
|
+
And the file "blog2/categories/html5.html" should not contain "/blog1/2011-01-02-another-article.html"
|
@@ -0,0 +1,33 @@
|
|
1
|
+
Feature: Custom permalinks
|
2
|
+
|
3
|
+
Scenario: Articles list links using custom permalink
|
4
|
+
Given the Server is running at "custom-permalinks-app"
|
5
|
+
When I go to "/index.html"
|
6
|
+
Then I should see "/blog/ruby-on-rails/new-article.html"
|
7
|
+
Then I should see "/blog/html5/another-article.html"
|
8
|
+
Then I should see "/blog/ruby-on-rails/third-article.html"
|
9
|
+
|
10
|
+
Scenario: Articles can be accessed through permalinks with frontmatter data
|
11
|
+
Given the Server is running at "custom-permalinks-app"
|
12
|
+
When I go to "/blog/ruby-on-rails/new-article.html"
|
13
|
+
Then I should see "Newer Article Content"
|
14
|
+
When I go to "/blog/html5/another-article.html"
|
15
|
+
Then I should see "Another Article Content"
|
16
|
+
|
17
|
+
Scenario: Custom permalinks can be accessed from preview server with directory_indexes
|
18
|
+
Given a fixture app "custom-permalinks-app"
|
19
|
+
And app "tags-app" is using config "directory-indexes"
|
20
|
+
And the Server is running
|
21
|
+
When I go to "/blog/ruby-on-rails/new-article.html"
|
22
|
+
Then I should see "File Not Found"
|
23
|
+
When I go to "/blog/ruby-on-rails/new-article"
|
24
|
+
Then I should see "Newer Article Content"
|
25
|
+
When I go to "/blog/html5/another-article"
|
26
|
+
Then I should see "Another Article Content"
|
27
|
+
|
28
|
+
Scenario: Custom permalinks also get built
|
29
|
+
Given a successfully built app at "custom-permalinks-app"
|
30
|
+
When I cd to "build"
|
31
|
+
Then the following files should exist:
|
32
|
+
| blog/ruby-on-rails/new-article.html |
|
33
|
+
| blog/html5/another-article.html |
|
@@ -89,7 +89,7 @@ Feature: Tag pages with multiple blogs
|
|
89
89
|
Then I should see "Not Found"
|
90
90
|
And the file "source/blog1/2011-01-01-new-article.html.markdown" has the contents
|
91
91
|
"""
|
92
|
-
---
|
92
|
+
---
|
93
93
|
title: "Newest Article"
|
94
94
|
date: 2011-01-01
|
95
95
|
tags: newtag1, newtagX
|
@@ -99,7 +99,7 @@ Feature: Tag pages with multiple blogs
|
|
99
99
|
"""
|
100
100
|
And the file "source/blog2/2011-01-01-new-article.html.markdown" has the contents
|
101
101
|
"""
|
102
|
-
---
|
102
|
+
---
|
103
103
|
title: "Newest Article"
|
104
104
|
date: 2011-01-01
|
105
105
|
tags: newtag2, newtagX
|
@@ -123,3 +123,29 @@ Feature: Tag pages with multiple blogs
|
|
123
123
|
When I go to "/blog2/tags/newtagx.html"
|
124
124
|
Then I should see "/blog2/2011-01-01-new-article.html"
|
125
125
|
Then I should not see "/blog1/2011-01-01-new-article.html"
|
126
|
+
|
127
|
+
Scenario: Blog data should work when blog name is specified
|
128
|
+
Given the Server is running at "tags-multiblog-app"
|
129
|
+
When I go to "/blog1/named_blog_tags.html"
|
130
|
+
Then I should see "foo1 (2)"
|
131
|
+
Then I should see "bar1 (1)"
|
132
|
+
Then I should see "fooX (2)"
|
133
|
+
Then I should see "barX (1)"
|
134
|
+
When I go to "/blog2/named_blog_tags.html"
|
135
|
+
Then I should see "foo2 (2)"
|
136
|
+
Then I should see "bar2 (1)"
|
137
|
+
Then I should see "fooX (2)"
|
138
|
+
Then I should see "barX (1)"
|
139
|
+
|
140
|
+
Scenario: Blog data should use blog name in frontmatter
|
141
|
+
Given the Server is running at "tags-multiblog-app"
|
142
|
+
When I go to "/blog1/frontmatter_blog_tags.html"
|
143
|
+
Then I should see "foo1 (2)"
|
144
|
+
Then I should see "bar1 (1)"
|
145
|
+
Then I should see "fooX (2)"
|
146
|
+
Then I should see "barX (1)"
|
147
|
+
When I go to "/blog2/frontmatter_blog_tags.html"
|
148
|
+
Then I should see "foo2 (2)"
|
149
|
+
Then I should see "bar2 (1)"
|
150
|
+
Then I should see "fooX (2)"
|
151
|
+
Then I should see "barX (1)"
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require "middleman-blog"
|
2
|
+
activate :blog do |blog|
|
3
|
+
blog.prefix = "blog/"
|
4
|
+
blog.sources = ":year-:month-:day-:title.html"
|
5
|
+
blog.permalink = ":year-:month-:day-:title.html"
|
6
|
+
|
7
|
+
blog.custom_collections = {
|
8
|
+
:category => {
|
9
|
+
:link => '/categories/:category.html',
|
10
|
+
:template => '/category.html'
|
11
|
+
}
|
12
|
+
}
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require "middleman-blog"
|
2
|
+
activate :blog do |blog|
|
3
|
+
blog.sources = "blog/:year-:month-:day-:title.html"
|
4
|
+
blog.permalink = "blog/:year-:month-:day-:title.html"
|
5
|
+
blog.custom_collections = {
|
6
|
+
:category => {
|
7
|
+
:link => '/categories/:category.html',
|
8
|
+
:template => '/category.html'
|
9
|
+
}
|
10
|
+
}
|
11
|
+
end
|
12
|
+
|
13
|
+
activate :directory_indexes
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require "middleman-blog"
|
2
|
+
activate :blog do |blog|
|
3
|
+
blog.sources = "blog/:year-:month-:day-:title.html"
|
4
|
+
blog.permalink = "blog/:year-:month-:day-:title.html"
|
5
|
+
|
6
|
+
blog.custom_collections = {
|
7
|
+
:category => {
|
8
|
+
:link => '/categories/:category.html',
|
9
|
+
:template => '/category.html'
|
10
|
+
}
|
11
|
+
}
|
12
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
activate :blog do |blog|
|
2
|
+
blog.name = "blog_name_1"
|
3
|
+
blog.prefix = "blog1"
|
4
|
+
blog.sources = ":year-:month-:day-:title.html"
|
5
|
+
blog.permalink = ":year-:month-:day-:title.html"
|
6
|
+
|
7
|
+
blog.custom_collections = {
|
8
|
+
:category => {
|
9
|
+
:link => 'categories/:category.html',
|
10
|
+
:template => 'category1.html'
|
11
|
+
}
|
12
|
+
}
|
13
|
+
end
|
14
|
+
|
15
|
+
activate :blog do |blog|
|
16
|
+
blog.name = "blog_name_2"
|
17
|
+
blog.prefix = "blog2"
|
18
|
+
blog.sources = ":year-:month-:day-:title.html"
|
19
|
+
blog.permalink = ":year-:month-:day-:title.html"
|
20
|
+
|
21
|
+
blog.custom_collections = {
|
22
|
+
:category => {
|
23
|
+
:link => 'categories/:category.html',
|
24
|
+
:template => 'category2.html'
|
25
|
+
}
|
26
|
+
}
|
27
|
+
end
|