middleman-blog 3.5.3 → 3.6.0.beta.2
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/features/paginate.feature +70 -6
- data/fixtures/paginate-app/config-directory-indexes.rb +7 -0
- data/fixtures/paginate-app/config-paginate-off.rb +7 -0
- data/fixtures/paginate-app/config.rb +7 -0
- data/fixtures/paginate-app/source/blog/2011-01-01-test-article.html.markdown +1 -0
- data/fixtures/paginate-app/source/blog/2011-01-02-test-article.html.markdown +1 -0
- data/fixtures/paginate-app/source/blog/2011-01-03-test-article.html.markdown +1 -0
- data/fixtures/paginate-app/source/blog/2011-01-04-test-article.html.markdown +1 -0
- data/fixtures/paginate-app/source/blog/2011-01-05-test-article.html.markdown +1 -0
- data/fixtures/paginate-app/source/blog/2011-02-01-test-article.html.markdown +1 -0
- data/fixtures/paginate-app/source/blog/2011-02-02-test-article.html.markdown +1 -0
- data/fixtures/paginate-app/source/category.html.erb +23 -0
- data/lib/middleman-blog.rb +7 -1
- data/lib/middleman-blog/blog_article.rb +1 -1
- data/lib/middleman-blog/commands/article.rb +1 -1
- data/lib/middleman-blog/commands/article.tt +1 -1
- data/lib/middleman-blog/extension.rb +7 -7
- data/lib/middleman-blog/helpers.rb +19 -2
- data/lib/middleman-blog/paginator.rb +2 -2
- data/lib/middleman-blog/version.rb +1 -1
- data/middleman-blog.gemspec +1 -1
- metadata +10 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6fd8e5447b47c113fc7c58ae2cd7555cc070adcf
|
4
|
+
data.tar.gz: d4586b9545fc038a1af9d415255952b0e3cdda76
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f35f5e4c6bb2c3b56e3bde38ff60928ecd49b56656acba2a338b7752ad6406d707b323fbea63e82041ad2fa5837205cdcefedbd791b65defd7741138814aa8c0
|
7
|
+
data.tar.gz: d8fbcc07cce2c0c330e1b0969ffe0eee303d1964752398d2d5f4d028394f6a09df65b43932c943fb41c6bd8c279fe7460968b0d07d60cef6fb870840ab5bccdc
|
data/features/paginate.feature
CHANGED
@@ -50,6 +50,31 @@ Feature: Pagination
|
|
50
50
|
Then I should not see "/2011-01-04-test-article.html"
|
51
51
|
Then I should not see "/2011-01-03-test-article.html"
|
52
52
|
|
53
|
+
When I go to "/categories/ruby-on-rails.html"
|
54
|
+
Then I should see "Paginate: true"
|
55
|
+
Then I should see "Article Count: 2"
|
56
|
+
Then I should see "Num Pages: 3"
|
57
|
+
Then I should see "Page Start: 1"
|
58
|
+
Then I should see "Page End: 2"
|
59
|
+
Then I should see "Next Page: '/categories/ruby-on-rails/page/2.html'"
|
60
|
+
Then I should see "Prev Page: ''"
|
61
|
+
Then I should see "/2011-01-05-test-article.html"
|
62
|
+
Then I should see "/2011-01-04-test-article.html"
|
63
|
+
Then I should not see "/2011-01-03-test-article.html"
|
64
|
+
Then I should not see "/2011-01-02-test-article.html"
|
65
|
+
|
66
|
+
When I go to "/categories/ruby-on-rails/page/2.html"
|
67
|
+
Then I should see "Article Count: 2"
|
68
|
+
Then I should see "Num Pages: 3"
|
69
|
+
Then I should see "Page Start: 3"
|
70
|
+
Then I should see "Page End: 4"
|
71
|
+
Then I should see "Next Page: '/categories/ruby-on-rails/page/3.html'"
|
72
|
+
Then I should see "Prev Page: '/categories/ruby-on-rails.html'"
|
73
|
+
Then I should not see "/2011-01-05-test-article.html"
|
74
|
+
Then I should not see "/2011-01-04-test-article.html"
|
75
|
+
Then I should see "/2011-01-03-test-article.html"
|
76
|
+
Then I should see "/2011-01-02-test-article.html"
|
77
|
+
|
53
78
|
Scenario: Index pages are accessible from preview server, with pagination off
|
54
79
|
Given a fixture app "paginate-app"
|
55
80
|
And app "paginate-app" is using config "paginate-off"
|
@@ -96,6 +121,21 @@ Feature: Pagination
|
|
96
121
|
Then I should not see "/2011-01-04-test-article.html"
|
97
122
|
Then I should not see "/2011-01-03-test-article.html"
|
98
123
|
|
124
|
+
When I go to "/categories/ruby-on-rails.html"
|
125
|
+
Then I should see "Paginate: false"
|
126
|
+
Then I should see "Article Count: 2"
|
127
|
+
Then I should see "/2011-01-05-test-article.html"
|
128
|
+
Then I should see "/2011-01-04-test-article.html"
|
129
|
+
Then I should not see "/2011-01-03-test-article.html"
|
130
|
+
Then I should not see "/2011-01-02-test-article.html"
|
131
|
+
|
132
|
+
When I go to "/categories/travel.html"
|
133
|
+
Then I should see "Paginate: false"
|
134
|
+
Then I should see "Article Count: 2"
|
135
|
+
Then I should see "/2011-02-02-test-article.html"
|
136
|
+
Then I should see "/2011-02-01-test-article.html"
|
137
|
+
Then I should not see "/2011-01-05-test-article.html"
|
138
|
+
|
99
139
|
Scenario: Index pages are accessible from preview server, with directory_indexes on
|
100
140
|
Given a fixture app "paginate-app"
|
101
141
|
And app "paginate-app" is using config "directory-indexes"
|
@@ -114,19 +154,27 @@ Feature: Pagination
|
|
114
154
|
When I go to "/tags/bar/"
|
115
155
|
Then I should see "Next Page: '/tags/bar/page/2/'"
|
116
156
|
|
157
|
+
When I go to "/categories/ruby-on-rails/"
|
158
|
+
Then I should see "Next Page: '/categories/ruby-on-rails/page/2/'"
|
159
|
+
|
117
160
|
Scenario: Index pages also get built
|
118
161
|
Given a successfully built app at "paginate-app"
|
119
162
|
When I cd to "build"
|
120
163
|
Then the following files should exist:
|
121
|
-
| tags/foo.html
|
122
|
-
| tags/bar.html
|
123
|
-
| tags/bar/page/2.html
|
124
|
-
| tags/bar/page/3.html
|
125
|
-
|
|
126
|
-
|
|
164
|
+
| tags/foo.html |
|
165
|
+
| tags/bar.html |
|
166
|
+
| tags/bar/page/2.html |
|
167
|
+
| tags/bar/page/3.html |
|
168
|
+
| categories/ruby-on-rails.html |
|
169
|
+
| categories/ruby-on-rails/page/2.html |
|
170
|
+
| categories/ruby-on-rails/page/3.html |
|
171
|
+
| categories/travel.html |
|
172
|
+
| 2011.html |
|
173
|
+
| 2011/page/2.html |
|
127
174
|
Then the following files should not exist:
|
128
175
|
| tags.html |
|
129
176
|
| calendar.html |
|
177
|
+
| category.html |
|
130
178
|
|
131
179
|
And the file "2011/page/2.html" should contain "Year: '2011'"
|
132
180
|
And the file "2011/page/2.html" should contain "Month: ''"
|
@@ -148,6 +196,13 @@ Feature: Pagination
|
|
148
196
|
And the file "tags/bar/page/3.html" should contain "Next Page: ''"
|
149
197
|
And the file "tags/bar/page/3.html" should contain "/2011-01-03-test-article.html"
|
150
198
|
|
199
|
+
And the file "categories/ruby-on-rails/page/2.html" should contain "Category: ruby-on-rails"
|
200
|
+
And the file "categories/ruby-on-rails/page/2.html" should contain "Article Count: 2"
|
201
|
+
And the file "categories/ruby-on-rails/page/2.html" should contain "Prev Page: '/categories/ruby-on-rails.html'"
|
202
|
+
And the file "categories/ruby-on-rails/page/2.html" should contain "Next Page: '/categories/ruby-on-rails/page/3.html'"
|
203
|
+
And the file "categories/ruby-on-rails/page/2.html" should contain "/2011-01-03-test-article.html"
|
204
|
+
And the file "categories/ruby-on-rails/page/2.html" should contain "/2011-01-02-test-article.html"
|
205
|
+
|
151
206
|
Scenario: Adding a tag to a post in preview adds a new index page
|
152
207
|
Given the Server is running at "paginate-app"
|
153
208
|
When I go to "/tags/foo.html"
|
@@ -163,6 +218,7 @@ Feature: Pagination
|
|
163
218
|
title: "Newest Article"
|
164
219
|
date: 2011-02-03
|
165
220
|
tags: foo
|
221
|
+
category: ruby-on-rails
|
166
222
|
---
|
167
223
|
|
168
224
|
Newer Article Content
|
@@ -174,3 +230,11 @@ Feature: Pagination
|
|
174
230
|
|
175
231
|
When I go to "/tags/foo/page/2.html"
|
176
232
|
Then I should see "/2011-01-01-test-article.html"
|
233
|
+
|
234
|
+
When I go to "/categories/ruby-on-rails.html"
|
235
|
+
Then I should see "Next Page: '/categories/ruby-on-rails/page/2.html'"
|
236
|
+
Then I should see "/2011-02-03-new-article.html"
|
237
|
+
Then I should not see "/2011-01-04-test-article.html"
|
238
|
+
|
239
|
+
When I go to "/categories/ruby-on-rails/page/2.html"
|
240
|
+
Then I should see "/2011-01-04-test-article.html"
|
@@ -5,6 +5,13 @@ activate :blog do |blog|
|
|
5
5
|
blog.tag_template = 'tag.html'
|
6
6
|
blog.paginate = true
|
7
7
|
blog.per_page = 5
|
8
|
+
|
9
|
+
blog.custom_collections = {
|
10
|
+
:category => {
|
11
|
+
:link => '/categories/:category.html',
|
12
|
+
:template => '/category.html'
|
13
|
+
}
|
14
|
+
}
|
8
15
|
end
|
9
16
|
|
10
17
|
activate :directory_indexes
|
@@ -0,0 +1,23 @@
|
|
1
|
+
---
|
2
|
+
pageable: true
|
3
|
+
per_page: 2
|
4
|
+
---
|
5
|
+
Category: <%= category %>
|
6
|
+
|
7
|
+
Paginate: <%= paginate %>
|
8
|
+
Article Count: <%= page_articles.size %>
|
9
|
+
<% if paginate %>
|
10
|
+
Page Num: <%= page_number %>
|
11
|
+
Num Pages: <%= num_pages %>
|
12
|
+
Per Page: <%= per_page %>
|
13
|
+
Page Start: <%= page_start %>
|
14
|
+
Page End: <%= page_end %>
|
15
|
+
Next Page: '<%= next_page.url if next_page %>'
|
16
|
+
Prev Page: '<%= prev_page.url if prev_page %>'
|
17
|
+
<% end %>
|
18
|
+
|
19
|
+
<% if page_articles %>
|
20
|
+
<% page_articles.each do |article| %>
|
21
|
+
<li><a href="<%= article.url %>"><%= article.title %></a> <time><%= article.date.strftime('%b %e') %></time></li>
|
22
|
+
<% end %>
|
23
|
+
<% end %>
|
data/lib/middleman-blog.rb
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
require "middleman-core"
|
2
2
|
|
3
3
|
require "middleman-blog/version"
|
4
|
-
|
4
|
+
|
5
|
+
begin
|
6
|
+
require "middleman-blog/template"
|
7
|
+
rescue LoadError
|
8
|
+
# v4
|
9
|
+
end
|
10
|
+
|
5
11
|
require "middleman-blog/commands/article"
|
6
12
|
|
7
13
|
::Middleman::Extensions.register(:blog) do
|
@@ -57,7 +57,7 @@ module Middleman
|
|
57
57
|
# An article is considered published in the following scenarios:
|
58
58
|
#
|
59
59
|
# 1. Frontmatter does not set +published+ to false and either
|
60
|
-
# 2. The blog option +
|
60
|
+
# 2. The blog option +publish_future_dated+ is true or
|
61
61
|
# 3. The article's date is after the current time
|
62
62
|
# @return [Boolean]
|
63
63
|
def published?
|
@@ -28,7 +28,7 @@ module Middleman
|
|
28
28
|
desc: "The date to create the post with (defaults to now)"
|
29
29
|
method_option "lang",
|
30
30
|
aliases: "-l",
|
31
|
-
desc: "The language to create the post with (defaults to I18n.default_locale if
|
31
|
+
desc: "The language to create the post with (defaults to I18n.default_locale if available)"
|
32
32
|
method_option "blog",
|
33
33
|
aliases: "-b",
|
34
34
|
desc: "The name of the blog to create the post inside (for multi-blog apps, defaults to the only blog in single-blog apps)"
|
@@ -86,7 +86,7 @@ module Middleman
|
|
86
86
|
end
|
87
87
|
|
88
88
|
def after_configuration
|
89
|
-
@name ||= :"blog#{
|
89
|
+
@name ||= :"blog#{::Middleman::Blog.instances.keys.length}"
|
90
90
|
|
91
91
|
# TODO: break up into private methods?
|
92
92
|
|
@@ -96,7 +96,7 @@ module Middleman
|
|
96
96
|
@app.ignore(options.day_template) if options.day_template
|
97
97
|
@app.ignore options.tag_template if options.tag_template
|
98
98
|
|
99
|
-
|
99
|
+
::Middleman::Blog.instances[@name] = self
|
100
100
|
|
101
101
|
# Make sure ActiveSupport's TimeZone stuff has something to work with,
|
102
102
|
# allowing people to set their desired time zone via Time.zone or
|
@@ -128,16 +128,16 @@ module Middleman
|
|
128
128
|
@app.sitemap.register_resource_list_manipulator(:"blog_#{name}_calendar", @calendar_pages, false)
|
129
129
|
end
|
130
130
|
|
131
|
+
if options.custom_collections
|
132
|
+
require 'middleman-blog/custom_pages'
|
133
|
+
register_custom_pages
|
134
|
+
end
|
135
|
+
|
131
136
|
if options.paginate
|
132
137
|
require 'middleman-blog/paginator'
|
133
138
|
@paginator = Blog::Paginator.new(@app, self)
|
134
139
|
@app.sitemap.register_resource_list_manipulator(:"blog_#{name}_paginate", @paginator, false)
|
135
140
|
end
|
136
|
-
|
137
|
-
if options.custom_collections
|
138
|
-
require 'middleman-blog/custom_pages'
|
139
|
-
register_custom_pages
|
140
|
-
end
|
141
141
|
end
|
142
142
|
|
143
143
|
private
|
@@ -1,14 +1,26 @@
|
|
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
|
+
|
3
11
|
# Blog-related helpers that are available to the Middleman application in +config.rb+ and in templates.
|
4
12
|
module Helpers
|
13
|
+
def self.included(base)
|
14
|
+
::Middleman::Blog.instances = {}
|
15
|
+
end
|
16
|
+
|
5
17
|
# All the blog instances known to this Middleman app, keyed by name. A new blog is added
|
6
18
|
# every time the blog extension is activated. Name them by setting the +:name+
|
7
19
|
# option when activating - otherwise they get an automatic name like 'blog0', 'blog1', etc.
|
8
20
|
#
|
9
21
|
# @return [Hash<Symbol,BlogExtension>] a hash of all blog instances by name
|
10
22
|
def blog_instances
|
11
|
-
|
23
|
+
::Middleman::Blog.instances
|
12
24
|
end
|
13
25
|
|
14
26
|
# Retrieve a {BlogExtension} instance.
|
@@ -33,7 +45,12 @@ module Middleman
|
|
33
45
|
|
34
46
|
# In multiblog situations, force people to specify the blog
|
35
47
|
if !blog_name && blog_instances.size > 1
|
36
|
-
raise "You must either
|
48
|
+
raise "You have more than one blog so you must either use the flag --blog (ex. --blog 'myBlog') when calling this method, or add blog: [blog_name] to your page's frontmatter"
|
49
|
+
end
|
50
|
+
|
51
|
+
# Warn if a non-existent blog name provided
|
52
|
+
if blog_name && !blog_instances.keys.include?(blog_name)
|
53
|
+
raise "Non-existent blog name provided: #{blog_name}."
|
37
54
|
end
|
38
55
|
|
39
56
|
blog_name ||= blog_instances.keys.first
|
@@ -144,9 +144,9 @@ module Middleman
|
|
144
144
|
res.path
|
145
145
|
else
|
146
146
|
page_url = apply_uri_template page_link, num: page_num
|
147
|
-
index_re = %r{(^|/)#{Regexp.escape(@app.index_file)}$}
|
147
|
+
index_re = %r{(^|/)#{Regexp.escape(@app.config[:index_file])}$}
|
148
148
|
if res.path =~ index_re
|
149
|
-
res.path.sub(index_re, "\\1#{page_url}/#{@app.index_file}")
|
149
|
+
res.path.sub(index_re, "\\1#{page_url}/#{@app.config[:index_file]}")
|
150
150
|
else
|
151
151
|
res.path.sub(%r{(^|/)([^/]*)\.([^/]*)$}, "\\1\\2/#{page_url}.\\3")
|
152
152
|
end
|
data/middleman-blog.gemspec
CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |s|
|
|
17
17
|
s.require_paths = ["lib"]
|
18
18
|
s.required_ruby_version = '>= 1.9.3'
|
19
19
|
|
20
|
-
s.add_dependency("middleman-core", ["
|
20
|
+
s.add_dependency("middleman-core", [">= 3.3"])
|
21
21
|
s.add_dependency("tzinfo", [">= 0.3.0"])
|
22
22
|
s.add_dependency("addressable", ["~> 2.3.5"])
|
23
23
|
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.
|
4
|
+
version: 3.6.0.beta.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Reynolds
|
@@ -9,22 +9,22 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-12-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: middleman-core
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - "
|
18
|
+
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '3.
|
20
|
+
version: '3.3'
|
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.
|
27
|
+
version: '3.3'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: tzinfo
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -252,6 +252,7 @@ files:
|
|
252
252
|
- fixtures/paginate-app/source/blog/2011-02-01-test-article.html.markdown
|
253
253
|
- fixtures/paginate-app/source/blog/2011-02-02-test-article.html.markdown
|
254
254
|
- fixtures/paginate-app/source/calendar.html.erb
|
255
|
+
- fixtures/paginate-app/source/category.html.erb
|
255
256
|
- fixtures/paginate-app/source/index.html.erb
|
256
257
|
- fixtures/paginate-app/source/layout.erb
|
257
258
|
- fixtures/paginate-app/source/tag.html.erb
|
@@ -369,9 +370,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
369
370
|
version: 1.9.3
|
370
371
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
371
372
|
requirements:
|
372
|
-
- - "
|
373
|
+
- - ">"
|
373
374
|
- !ruby/object:Gem::Version
|
374
|
-
version:
|
375
|
+
version: 1.3.1
|
375
376
|
requirements: []
|
376
377
|
rubyforge_project:
|
377
378
|
rubygems_version: 2.2.2
|
@@ -560,6 +561,7 @@ test_files:
|
|
560
561
|
- fixtures/paginate-app/source/blog/2011-02-01-test-article.html.markdown
|
561
562
|
- fixtures/paginate-app/source/blog/2011-02-02-test-article.html.markdown
|
562
563
|
- fixtures/paginate-app/source/calendar.html.erb
|
564
|
+
- fixtures/paginate-app/source/category.html.erb
|
563
565
|
- fixtures/paginate-app/source/index.html.erb
|
564
566
|
- fixtures/paginate-app/source/layout.erb
|
565
567
|
- fixtures/paginate-app/source/tag.html.erb
|