middleman-blog 4.0.2 → 4.0.3

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 (68) hide show
  1. checksums.yaml +5 -5
  2. data/.rubocop.yml +69 -0
  3. data/.travis.yml +20 -28
  4. data/CHANGELOG.md +4 -4
  5. data/Gemfile +20 -21
  6. data/Gemfile-4.x +38 -0
  7. data/README.md +0 -6
  8. data/Rakefile +14 -12
  9. data/features/summary.feature +3 -6
  10. data/features/support/env.rb +7 -10
  11. data/features/support/time_steps.rb +7 -10
  12. data/features/tags.feature +1 -1
  13. data/fixtures/article-dirs-app/config-directory-indexes.rb +2 -2
  14. data/fixtures/article-dirs-app/config-permalink-with-dot.rb +2 -2
  15. data/fixtures/article-dirs-app/config.rb +2 -2
  16. data/fixtures/blog-sources-app/config.rb +2 -5
  17. data/fixtures/blog-sources-no-date-app/config.rb +2 -5
  18. data/fixtures/blog-sources-no-day-app/config.rb +2 -5
  19. data/fixtures/blog-sources-no-title-app/config.rb +1 -4
  20. data/fixtures/blog-sources-subdirs-app/config.rb +3 -6
  21. data/fixtures/calendar-and-tag-app/config-directory-indexes.rb +3 -3
  22. data/fixtures/calendar-and-tag-app/config.rb +4 -4
  23. data/fixtures/calendar-app/config-directory-indexes.rb +5 -7
  24. data/fixtures/calendar-app/config-only-year.rb +7 -9
  25. data/fixtures/calendar-app/config.rb +5 -7
  26. data/fixtures/calendar-multiblog-app/config.rb +12 -12
  27. data/fixtures/custom-collections-app/config-blog-prefix.rb +7 -7
  28. data/fixtures/custom-collections-app/config-directory-indexes.rb +6 -6
  29. data/fixtures/custom-collections-app/config.rb +6 -6
  30. data/fixtures/custom-collections-multiblog-app/config.rb +14 -14
  31. data/fixtures/custom-collections-sources-app/config.rb +5 -5
  32. data/fixtures/custom-permalinks-app/config-directory-indexes.rb +3 -3
  33. data/fixtures/custom-permalinks-app/config.rb +3 -3
  34. data/fixtures/default-template-app/Gemfile +5 -5
  35. data/fixtures/default-template-app/config.rb +11 -11
  36. data/fixtures/filename-date-app/config.rb +1 -1
  37. data/fixtures/future-date-app/config.rb +2 -2
  38. data/fixtures/indexes-app/config.rb +2 -2
  39. data/fixtures/lang-path-app/config.rb +2 -2
  40. data/fixtures/layouts-app/config.rb +1 -1
  41. data/fixtures/paginate-app/config-directory-indexes.rb +12 -14
  42. data/fixtures/paginate-app/config-paginate-off.rb +12 -14
  43. data/fixtures/paginate-app/config.rb +12 -14
  44. data/fixtures/paginate-multiblog-app/config.rb +13 -13
  45. data/fixtures/permalink-app/config.rb +3 -6
  46. data/fixtures/preview-app/config.rb +2 -2
  47. data/fixtures/published-app/config.rb +2 -2
  48. data/fixtures/tags-app/config-directory-indexes.rb +5 -5
  49. data/fixtures/tags-app/config.rb +5 -5
  50. data/fixtures/tags-multiblog-app/config.rb +10 -10
  51. data/lib/middleman-blog.rb +6 -8
  52. data/lib/middleman-blog/blog_article.rb +20 -40
  53. data/lib/middleman-blog/blog_data.rb +20 -27
  54. data/lib/middleman-blog/calendar_pages.rb +8 -14
  55. data/lib/middleman-blog/commands/article.rb +54 -63
  56. data/lib/middleman-blog/custom_pages.rb +8 -9
  57. data/lib/middleman-blog/extension.rb +7 -8
  58. data/lib/middleman-blog/helpers.rb +17 -26
  59. data/lib/middleman-blog/paginator.rb +5 -4
  60. data/lib/middleman-blog/tag_pages.rb +11 -23
  61. data/lib/middleman-blog/truncate_html.rb +8 -7
  62. data/lib/middleman-blog/uri_templates.rb +31 -17
  63. data/lib/middleman-blog/version.rb +1 -3
  64. data/lib/middleman_extension.rb +1 -1
  65. data/middleman-blog.gemspec +15 -15
  66. data/spec/spec_helper.rb +1 -4
  67. data/spec/uri_templates_spec.rb +23 -30
  68. metadata +10 -9
@@ -1,18 +1,16 @@
1
- activate :blog do | blog |
1
+ activate :blog do |blog|
2
+ blog.sources = 'blog/:year-:month-:day-:title.html'
3
+ blog.permalink = 'blog/:year-:month-:day-:title.html'
4
+ blog.calendar_template = 'calendar.html'
5
+ blog.tag_template = 'tag.html'
6
+ blog.paginate = true
7
+ blog.per_page = 5
2
8
 
3
- blog.sources = "blog/:year-:month-:day-:title.html"
4
- blog.permalink = "blog/:year-:month-:day-:title.html"
5
- blog.calendar_template = 'calendar.html'
6
- blog.tag_template = 'tag.html'
7
- blog.paginate = true
8
- blog.per_page = 5
9
+ blog.custom_collections = {
9
10
 
10
- blog.custom_collections = {
11
-
12
- :category => {
13
- :link => '/categories/:category.html',
14
- :template => '/category.html'
15
- }
11
+ category: {
12
+ link: '/categories/:category.html',
13
+ template: '/category.html'
16
14
  }
17
-
15
+ }
18
16
  end
@@ -1,8 +1,8 @@
1
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"
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
6
  blog.calendar_template = 'calendar1.html'
7
7
  blog.tag_template = 'tag1.html'
8
8
  blog.paginate = true
@@ -10,10 +10,10 @@ activate :blog do |blog|
10
10
  end
11
11
 
12
12
  activate :blog do |blog2|
13
- blog2.name = "blog_name_2"
14
- blog2.prefix = "blog2"
15
- blog2.sources = ":year-:month-:day-:title.html"
16
- blog2.permalink = ":year-:month-:day-:title.html"
13
+ blog2.name = 'blog_name_2'
14
+ blog2.prefix = 'blog2'
15
+ blog2.sources = ':year-:month-:day-:title.html'
16
+ blog2.permalink = ':year-:month-:day-:title.html'
17
17
  blog2.calendar_template = 'calendar2.html'
18
18
  blog2.tag_template = 'tag2.html'
19
19
  blog2.paginate = true
@@ -21,11 +21,11 @@ activate :blog do |blog2|
21
21
  end
22
22
 
23
23
  activate :blog do |blog3|
24
- blog3.name = "blog_name_3"
25
- blog3.prefix = "blog3"
26
- blog3.sources = ":year-:month-:day-:title.html"
27
- blog3.permalink = ":year-:month-:day-:title.html"
24
+ blog3.name = 'blog_name_3'
25
+ blog3.prefix = 'blog3'
26
+ blog3.sources = ':year-:month-:day-:title.html'
27
+ blog3.permalink = ':year-:month-:day-:title.html'
28
28
  blog3.calendar_template = 'calendar3.html'
29
29
  blog3.tag_template = 'tag3.html'
30
30
  blog3.paginate = false
31
- end
31
+ end
@@ -1,7 +1,4 @@
1
-
2
- activate :blog do | blog |
3
-
4
- blog.sources = ":category/:year-:month-:day-:title.html"
5
- blog.permalink = ":category/:custom-:year-:month-:day-:title.html"
6
-
1
+ activate :blog do |blog|
2
+ blog.sources = ':category/:year-:month-:day-:title.html'
3
+ blog.permalink = ':category/:custom-:year-:month-:day-:title.html'
7
4
  end
@@ -1,3 +1,3 @@
1
1
  activate :blog do |blog|
2
- blog.sources = ":year/:month/:day/:title.html"
3
- end
2
+ blog.sources = ':year/:month/:day/:title.html'
3
+ end
@@ -1,3 +1,3 @@
1
1
  activate :blog do |blog|
2
- blog.sources = "blog/:year-:month-:day-:title.html"
3
- end
2
+ blog.sources = 'blog/:year-:month-:day-:title.html'
3
+ end
@@ -1,9 +1,9 @@
1
- require "middleman-blog"
1
+ require 'middleman-blog'
2
2
 
3
- activate :blog do | blog |
4
- blog.sources = "blog/:year-:month-:day-:title.html"
5
- blog.permalink = "blog/:year-:month-:day-:title.html"
6
- blog.tag_template = "/tag.html"
3
+ activate :blog do |blog|
4
+ blog.sources = 'blog/:year-:month-:day-:title.html'
5
+ blog.permalink = 'blog/:year-:month-:day-:title.html'
6
+ blog.tag_template = '/tag.html'
7
7
  end
8
8
 
9
9
  activate :directory_indexes
@@ -1,7 +1,7 @@
1
- require "middleman-blog"
1
+ require 'middleman-blog'
2
2
 
3
- activate :blog do | blog |
4
- blog.sources = "blog/:year-:month-:day-:title.html"
5
- blog.permalink = "blog/:year-:month-:day-:title.html"
6
- blog.tag_template = "/tag.html"
3
+ activate :blog do |blog|
4
+ blog.sources = 'blog/:year-:month-:day-:title.html'
5
+ blog.permalink = 'blog/:year-:month-:day-:title.html'
6
+ blog.tag_template = '/tag.html'
7
7
  end
@@ -1,15 +1,15 @@
1
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
- blog.tag_template = "tag1.html"
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
+ blog.tag_template = 'tag1.html'
7
7
  end
8
8
 
9
9
  activate :blog do |blog|
10
- blog.name = "blog_name_2"
11
- blog.prefix = "blog2"
12
- blog.sources = ":year-:month-:day-:title.html"
13
- blog.permalink = ":year-:month-:day-:title.html"
14
- blog.tag_template = "tag2.html"
10
+ blog.name = 'blog_name_2'
11
+ blog.prefix = 'blog2'
12
+ blog.sources = ':year-:month-:day-:title.html'
13
+ blog.permalink = ':year-:month-:day-:title.html'
14
+ blog.tag_template = 'tag2.html'
15
15
  end
@@ -1,11 +1,9 @@
1
- require "middleman-core"
2
- require "middleman-blog/version"
1
+ require 'middleman-core'
2
+ require 'middleman-blog/version'
3
3
 
4
- ::Middleman::Extensions.register( :blog ) do
5
-
6
- require "middleman-blog/extension"
7
- require "middleman-blog/commands/article"
8
-
9
- ::Middleman::BlogExtension
4
+ ::Middleman::Extensions.register(:blog) do
5
+ require 'middleman-blog/extension'
6
+ require 'middleman-blog/commands/article'
10
7
 
8
+ ::Middleman::BlogExtension
11
9
  end
@@ -1,12 +1,9 @@
1
- # -*- coding: utf-8 -*-
2
1
  require 'active_support/time_with_zone'
3
2
  require 'active_support/core_ext/time/acts_like'
4
3
  require 'active_support/core_ext/time/calculations'
5
4
 
6
5
  module Middleman
7
-
8
6
  module Blog
9
-
10
7
  ##
11
8
  # A module that adds blog-article-specific methods to Resources. A
12
9
  # {BlogArticle} can be retrieved via {Blog::Helpers#current_article} or
@@ -15,7 +12,6 @@ module Middleman
15
12
  # @see http://rdoc.info/github/middleman/middleman/Middleman/Sitemap/Resource Middleman::Sitemap::Resource
16
13
  ##
17
14
  module BlogArticle
18
-
19
15
  extend Gem::Deprecate
20
16
 
21
17
  ##
@@ -49,9 +45,8 @@ module Middleman
49
45
  #
50
46
  # @return [String]
51
47
  ##
52
- def render(opts={}, locs={}, &block)
53
-
54
- unless opts.has_key?( :layout )
48
+ def render(opts = {}, locs = {}, &block)
49
+ unless opts.key?(:layout)
55
50
 
56
51
  opts[:layout] = metadata[:options][:layout]
57
52
  opts[:layout] = blog_options.layout if opts[:layout].nil? || opts[:layout] == :_auto_layout
@@ -63,9 +58,7 @@ module Middleman
63
58
 
64
59
  content = super(opts, locs, &block)
65
60
 
66
- unless opts[:keep_separator]
67
- content.sub!(blog_options.summary_separator, '')
68
- end
61
+ content.sub!(blog_options.summary_separator, '') unless opts[:keep_separator]
69
62
 
70
63
  content
71
64
  end
@@ -76,7 +69,7 @@ module Middleman
76
69
  # @return [String]
77
70
  ##
78
71
  def title
79
- data['title']
72
+ data['title'].to_s
80
73
  end
81
74
 
82
75
  ##
@@ -120,7 +113,7 @@ module Middleman
120
113
  # @param [String] ellipsis The ellipsis string to use when content is trimmed.
121
114
  # @return [String]
122
115
  ##
123
- def summary(length=nil, ellipsis='...')
116
+ def summary(length = nil, ellipsis = '...')
124
117
  rendered = render layout: false, keep_separator: true
125
118
 
126
119
  if blog_options.summary_generator
@@ -128,7 +121,6 @@ module Middleman
128
121
  else
129
122
  default_summary_generator(rendered, length, ellipsis)
130
123
  end
131
-
132
124
  end
133
125
 
134
126
  ##
@@ -142,7 +134,6 @@ module Middleman
142
134
  # @param [String] ellipsis The ellipsis string to use when content is trimmed.
143
135
  ##
144
136
  def default_summary_generator(rendered, length, ellipsis)
145
-
146
137
  if blog_options.summary_separator && rendered.match(blog_options.summary_separator)
147
138
  require 'middleman-blog/truncate_html'
148
139
  TruncateHTML.truncate_at_separator(rendered, blog_options.summary_separator)
@@ -151,14 +142,13 @@ module Middleman
151
142
  require 'middleman-blog/truncate_html'
152
143
  TruncateHTML.truncate_at_length(rendered, length, ellipsis)
153
144
 
154
- elsif blog_options.summary_length && blog_options.summary_length > 0
145
+ elsif blog_options.summary_length&.positive?
155
146
  require 'middleman-blog/truncate_html'
156
147
  TruncateHTML.truncate_at_length(rendered, blog_options.summary_length, ellipsis)
157
148
 
158
149
  else
159
150
  rendered
160
151
  end
161
-
162
152
  end
163
153
 
164
154
  ##
@@ -167,7 +157,6 @@ module Middleman
167
157
  # @return [Array<String>] (never +nil+)
168
158
  ##
169
159
  def tags
170
-
171
160
  article_tags = data['tags']
172
161
 
173
162
  if article_tags.is_a? String
@@ -175,7 +164,6 @@ module Middleman
175
164
  else
176
165
  Array(article_tags).map(&:to_s)
177
166
  end
178
-
179
167
  end
180
168
 
181
169
  ##
@@ -188,21 +176,18 @@ module Middleman
188
176
  # @return [Symbol] Language code (for example, +:en+ or +:de+)
189
177
  ##
190
178
  def locale
191
-
192
179
  frontmatter_locale = data['locale'] || data['lang']
193
180
  filename_locale = path_part('locale') || path_part('lang')
194
181
 
195
- if frontmatter_locale && filename_locale && frontmatter_locale != filename_locale
196
- raise "The locale in #{path}'s filename (#{filename_locale.inspect}) doesn't match the lang in its frontmatter (#{frontmatter_locale.inspect})"
197
- end
182
+ raise "The locale in #{path}'s filename (#{filename_locale.inspect}) doesn't match the lang in its frontmatter (#{frontmatter_locale.inspect})" if frontmatter_locale && filename_locale && frontmatter_locale != filename_locale
198
183
 
199
184
  default_locale = I18n.default_locale if defined? ::I18n
200
185
 
201
186
  found_locale = frontmatter_locale || filename_locale || default_locale
202
- found_locale && found_locale.to_sym
187
+ found_locale&.to_sym
203
188
  end
204
189
 
205
- alias_method :lang, :locale
190
+ alias lang locale
206
191
 
207
192
  ##
208
193
  # Attempt to figure out the date of the post. The date should be
@@ -213,17 +198,16 @@ module Middleman
213
198
  # @return [TimeWithZone]
214
199
  ##
215
200
  def date
216
-
217
201
  return @_date if @_date
218
202
 
219
203
  frontmatter_date = data['date']
220
204
 
221
205
  # First get the date from frontmatter
222
- if frontmatter_date.is_a? Time
223
- @_date = frontmatter_date.in_time_zone
224
- else
225
- @_date = Time.zone.parse(frontmatter_date.to_s)
226
- end
206
+ @_date = if frontmatter_date.is_a? Time
207
+ frontmatter_date.in_time_zone
208
+ else
209
+ Time.zone.parse(frontmatter_date.to_s)
210
+ end
227
211
 
228
212
  # Next figure out the date from the filename
229
213
  source_vars = blog_data.source_template.variables
@@ -244,7 +228,6 @@ module Middleman
244
228
  raise "Blog post #{path} needs a date in its filename or frontmatter" unless @_date
245
229
 
246
230
  @_date
247
-
248
231
  end
249
232
 
250
233
  ##
@@ -279,7 +262,7 @@ module Middleman
279
262
  # @return [BlogArticle]
280
263
  ##
281
264
  def previous_article
282
- article_previous()
265
+ article_previous
283
266
  end
284
267
  deprecate :previous_article, :article_previous, 2017, 5
285
268
 
@@ -292,7 +275,7 @@ module Middleman
292
275
  # @return [Middleman::Sitemap::Resource]
293
276
  ##
294
277
  def next_article
295
- article_next()
278
+ article_next
296
279
  end
297
280
  deprecate :next_article, :article_next, 2017, 5
298
281
 
@@ -303,7 +286,7 @@ module Middleman
303
286
  # @return [BlogArticle]
304
287
  ##
305
288
  def article_previous
306
- blog_data.articles.find { |a| a.date < self.date }
289
+ blog_data.articles.find { |a| a.date < date }
307
290
  end
308
291
 
309
292
  ##
@@ -313,7 +296,7 @@ module Middleman
313
296
  # @return [Middleman::Sitemap::Resource]
314
297
  ##
315
298
  def article_next
316
- blog_data.articles.reverse.find { |a| a.date > self.date }
299
+ blog_data.articles.reverse.find { |a| a.date > date }
317
300
  end
318
301
 
319
302
  ##
@@ -323,7 +306,7 @@ module Middleman
323
306
  # @return [BlogArticle]
324
307
  ##
325
308
  def article_locale_previous
326
- blog_data.local_articles.find { |a| a.date < self.date }
309
+ blog_data.local_articles.find { |a| a.date < date }
327
310
  end
328
311
 
329
312
  ##
@@ -333,7 +316,7 @@ module Middleman
333
316
  # @return [Middleman::Sitemap::Resource]
334
317
  ##
335
318
  def article_locale_next
336
- blog_data.local_articles.reverse.find { |a| a.date > self.date }
319
+ blog_data.local_articles.reverse.find { |a| a.date > date }
337
320
  end
338
321
 
339
322
  ##
@@ -357,9 +340,6 @@ module Middleman
357
340
  @_path_parts ||= Blog::UriTemplates.extract_params(blog_data.source_template, path)
358
341
  @_path_parts[part.to_s]
359
342
  end
360
-
361
343
  end
362
-
363
344
  end
364
-
365
345
  end
@@ -1,16 +1,13 @@
1
1
  require 'middleman-blog/uri_templates'
2
2
 
3
3
  module Middleman
4
-
5
4
  module Blog
6
-
7
5
  ##
8
6
  # A store of all the blog articles in the site, with accessors
9
7
  # for the articles by various dimensions. Accessed via "blog" in
10
8
  # templates.
11
9
  ##
12
10
  class BlogData
13
-
14
11
  include UriTemplates
15
12
  extend Gem::Deprecate
16
13
 
@@ -42,8 +39,8 @@ module Middleman
42
39
 
43
40
  @source_template = uri_template options.sources
44
41
  @permalink_template = uri_template options.permalink
45
- @subdir_template = uri_template options.sources.sub(/(\.[^.{}\/]+)?$/, "/{+path}" )
46
- @subdir_permalink_template = uri_template options.permalink.sub(/(\.[^.{}\/]+)?$/, "/{+path}" )
42
+ @subdir_template = uri_template options.sources.sub(/(\.[^.{}\/]+)?$/, '/{+path}')
43
+ @subdir_permalink_template = uri_template options.permalink.sub(/(\.[^.{}\/]+)?$/, '/{+path}')
47
44
  end
48
45
 
49
46
  ##
@@ -52,7 +49,7 @@ module Middleman
52
49
  # @return [Array<Middleman::Sitemap::Resource>]
53
50
  ##
54
51
  def articles
55
- @_articles.select( &( options.filter || proc { | a | a } ) ).sort_by( &:date ).reverse
52
+ @_articles.select(&(options.filter || proc { |a| a })).sort_by(&:date).reverse
56
53
  end
57
54
 
58
55
  ##
@@ -64,8 +61,8 @@ module Middleman
64
61
  # @param [Symbol] locale Language to match (optional, defaults to I18n.locale).
65
62
  # @return [Array<Middleman::Sitemap::Resource>]
66
63
  ##
67
- def local_articles( locale = ::I18n.locale )
68
- articles_by_locale( locale )
64
+ def local_articles(locale = ::I18n.locale)
65
+ articles_by_locale(locale)
69
66
  end
70
67
  deprecate :local_articles, :articles_by_locale, 2017, 5
71
68
 
@@ -78,9 +75,9 @@ module Middleman
78
75
  #
79
76
  # @todo should use the @_articles if represented in this method.
80
77
  ##
81
- def articles_by_locale( locale = ::I18n.locale )
82
- locale = locale.to_sym if locale.kind_of? String
83
- articles.select { | article | article.locale == locale }
78
+ def articles_by_locale(locale = ::I18n.locale)
79
+ locale = locale.to_sym if locale.is_a? String
80
+ articles.select { |article| article.locale == locale }
84
81
  end
85
82
 
86
83
  ##
@@ -90,19 +87,16 @@ module Middleman
90
87
  # @return [Hash<String, Array<Middleman::Sitemap::Resource>>]
91
88
  ##
92
89
  def tags
93
-
94
90
  tags = {}
95
91
 
96
92
  # Reference the filtered articles
97
93
  articles.each do |article|
98
-
99
94
  # Reference the tags assigned to an article
100
95
  article.tags.each do |tag|
101
96
  # tag = safe_parameterize(tag)
102
97
  tags[tag] ||= []
103
98
  tags[tag] << article
104
99
  end
105
-
106
100
  end
107
101
 
108
102
  # Return tags
@@ -144,7 +138,7 @@ module Middleman
144
138
  next unless publishable?(article)
145
139
 
146
140
  # Add extra parameters from the URL to the page metadata
147
- extra_data = params.except *%w(year month day title lang locale)
141
+ extra_data = params.except 'year', 'month', 'day', 'title', 'lang', 'locale'
148
142
  article.add_metadata page: extra_data unless extra_data.empty?
149
143
 
150
144
  # compute output path: substitute date parts to path pattern
@@ -158,13 +152,13 @@ module Middleman
158
152
  # figure out the matching article for this subdirectory file
159
153
  article_path = @source_template.expand(params).to_s
160
154
 
161
- if article = @app.sitemap.find_resource_by_path(article_path)
155
+ if (article = @app.sitemap.find_resource_by_path(article_path))
162
156
  # The article may not yet have been processed, so convert it here.
163
157
  article = convert_to_article(article)
164
158
  next unless publishable?(article)
165
159
 
166
160
  # Add extra parameters from the URL to the page metadata
167
- extra_data = params.except *%w(year month day title lang locale)
161
+ extra_data = params.except 'year', 'month', 'day', 'title', 'lang', 'locale'
168
162
  article.add_metadata page: extra_data unless extra_data.empty?
169
163
 
170
164
  # The subdir path is the article path with the index file name
@@ -208,25 +202,25 @@ module Middleman
208
202
  # @param [Hash] extra More options to be merged in on top.
209
203
  # @return [Hash] options
210
204
  ##
211
- def permalink_options(resource, extra={})
205
+ def permalink_options(resource, extra = {})
212
206
  # Allow any frontmatter data to be substituted into the permalink URL
213
- params = resource.metadata[:page].slice *@permalink_template.variables.map(&:to_sym)
207
+ params = resource.metadata[:page].slice(*@permalink_template.variables.map(&:to_sym))
214
208
 
215
209
  params.each do |k, v|
216
210
  params[k] = safe_parameterize(v)
217
211
  end
218
212
 
219
- params.
220
- merge(date_to_params(resource.date)).
221
- merge(lang: resource.lang.to_s, locale: resource.locale.to_s, title: resource.slug).
222
- merge(extra)
213
+ params
214
+ .merge(date_to_params(resource.date))
215
+ .merge(lang: resource.lang.to_s, locale: resource.locale.to_s, title: resource.slug)
216
+ .merge(extra)
223
217
  end
224
218
 
225
219
  ##
226
220
  #
227
221
  ##
228
- def convert_to_article( resource )
229
- return resource if resource.is_a?( BlogArticle )
222
+ def convert_to_article(resource)
223
+ return resource if resource.is_a?(BlogArticle)
230
224
 
231
225
  resource.extend BlogArticle
232
226
  resource.blog_controller = controller
@@ -241,10 +235,9 @@ module Middleman
241
235
  ##
242
236
  #
243
237
  ##
244
- def template_path(template, article, extras={})
238
+ def template_path(template, article, extras = {})
245
239
  apply_uri_template template, permalink_options(article, extras)
246
240
  end
247
-
248
241
  end
249
242
  end
250
243
  end