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.
- checksums.yaml +5 -5
- data/.rubocop.yml +69 -0
- data/.travis.yml +20 -28
- data/CHANGELOG.md +4 -4
- data/Gemfile +20 -21
- data/Gemfile-4.x +38 -0
- data/README.md +0 -6
- data/Rakefile +14 -12
- data/features/summary.feature +3 -6
- data/features/support/env.rb +7 -10
- data/features/support/time_steps.rb +7 -10
- data/features/tags.feature +1 -1
- data/fixtures/article-dirs-app/config-directory-indexes.rb +2 -2
- data/fixtures/article-dirs-app/config-permalink-with-dot.rb +2 -2
- data/fixtures/article-dirs-app/config.rb +2 -2
- data/fixtures/blog-sources-app/config.rb +2 -5
- data/fixtures/blog-sources-no-date-app/config.rb +2 -5
- data/fixtures/blog-sources-no-day-app/config.rb +2 -5
- data/fixtures/blog-sources-no-title-app/config.rb +1 -4
- data/fixtures/blog-sources-subdirs-app/config.rb +3 -6
- data/fixtures/calendar-and-tag-app/config-directory-indexes.rb +3 -3
- data/fixtures/calendar-and-tag-app/config.rb +4 -4
- data/fixtures/calendar-app/config-directory-indexes.rb +5 -7
- data/fixtures/calendar-app/config-only-year.rb +7 -9
- data/fixtures/calendar-app/config.rb +5 -7
- data/fixtures/calendar-multiblog-app/config.rb +12 -12
- data/fixtures/custom-collections-app/config-blog-prefix.rb +7 -7
- data/fixtures/custom-collections-app/config-directory-indexes.rb +6 -6
- data/fixtures/custom-collections-app/config.rb +6 -6
- data/fixtures/custom-collections-multiblog-app/config.rb +14 -14
- data/fixtures/custom-collections-sources-app/config.rb +5 -5
- data/fixtures/custom-permalinks-app/config-directory-indexes.rb +3 -3
- data/fixtures/custom-permalinks-app/config.rb +3 -3
- data/fixtures/default-template-app/Gemfile +5 -5
- data/fixtures/default-template-app/config.rb +11 -11
- data/fixtures/filename-date-app/config.rb +1 -1
- data/fixtures/future-date-app/config.rb +2 -2
- data/fixtures/indexes-app/config.rb +2 -2
- data/fixtures/lang-path-app/config.rb +2 -2
- data/fixtures/layouts-app/config.rb +1 -1
- data/fixtures/paginate-app/config-directory-indexes.rb +12 -14
- data/fixtures/paginate-app/config-paginate-off.rb +12 -14
- data/fixtures/paginate-app/config.rb +12 -14
- data/fixtures/paginate-multiblog-app/config.rb +13 -13
- data/fixtures/permalink-app/config.rb +3 -6
- data/fixtures/preview-app/config.rb +2 -2
- data/fixtures/published-app/config.rb +2 -2
- data/fixtures/tags-app/config-directory-indexes.rb +5 -5
- data/fixtures/tags-app/config.rb +5 -5
- data/fixtures/tags-multiblog-app/config.rb +10 -10
- data/lib/middleman-blog.rb +6 -8
- data/lib/middleman-blog/blog_article.rb +20 -40
- data/lib/middleman-blog/blog_data.rb +20 -27
- data/lib/middleman-blog/calendar_pages.rb +8 -14
- data/lib/middleman-blog/commands/article.rb +54 -63
- data/lib/middleman-blog/custom_pages.rb +8 -9
- data/lib/middleman-blog/extension.rb +7 -8
- data/lib/middleman-blog/helpers.rb +17 -26
- data/lib/middleman-blog/paginator.rb +5 -4
- data/lib/middleman-blog/tag_pages.rb +11 -23
- data/lib/middleman-blog/truncate_html.rb +8 -7
- data/lib/middleman-blog/uri_templates.rb +31 -17
- data/lib/middleman-blog/version.rb +1 -3
- data/lib/middleman_extension.rb +1 -1
- data/middleman-blog.gemspec +15 -15
- data/spec/spec_helper.rb +1 -4
- data/spec/uri_templates_spec.rb +23 -30
- metadata +10 -9
@@ -1,15 +1,12 @@
|
|
1
1
|
require 'middleman-blog/uri_templates'
|
2
2
|
|
3
3
|
module Middleman
|
4
|
-
|
5
4
|
module Blog
|
6
|
-
|
7
5
|
##
|
8
6
|
# A sitemap resource manipulator that adds a tag page to the sitemap for
|
9
7
|
# each tag in the associated blog
|
10
8
|
##
|
11
9
|
class TagPages
|
12
|
-
|
13
10
|
include UriTemplates
|
14
11
|
|
15
12
|
##
|
@@ -18,7 +15,7 @@ module Middleman
|
|
18
15
|
# @param app [Object] Middleman app
|
19
16
|
# @param blog_controller [Object] Blog controller
|
20
17
|
##
|
21
|
-
def initialize(
|
18
|
+
def initialize(app, blog_controller)
|
22
19
|
@sitemap = app.sitemap
|
23
20
|
@blog_controller = blog_controller
|
24
21
|
@tag_link_template = uri_template blog_controller.options.taglink
|
@@ -33,8 +30,8 @@ module Middleman
|
|
33
30
|
# @param tag [String] Tag name
|
34
31
|
# @return [String] Safe Tag URL
|
35
32
|
##
|
36
|
-
def link(
|
37
|
-
apply_uri_template @tag_link_template, tag: safe_parameterize(
|
33
|
+
def link(tag)
|
34
|
+
apply_uri_template @tag_link_template, tag: safe_parameterize(tag)
|
38
35
|
end
|
39
36
|
|
40
37
|
##
|
@@ -43,14 +40,12 @@ module Middleman
|
|
43
40
|
# @param resources [Object] Tag name
|
44
41
|
# @return [void]
|
45
42
|
##
|
46
|
-
def manipulate_resource_list(
|
47
|
-
|
43
|
+
def manipulate_resource_list(resources)
|
48
44
|
return resources unless @generate_tag_pages
|
49
45
|
|
50
|
-
resources + @blog_data.tags.map do |
|
51
|
-
tag_page_resource(
|
46
|
+
resources + @blog_data.tags.map do |tag, articles|
|
47
|
+
tag_page_resource(tag, articles)
|
52
48
|
end
|
53
|
-
|
54
49
|
end
|
55
50
|
|
56
51
|
private
|
@@ -64,27 +59,20 @@ module Middleman
|
|
64
59
|
#
|
65
60
|
# @todo Can we inject the correct locale into the metadata here
|
66
61
|
##
|
67
|
-
def tag_page_resource(
|
68
|
-
|
69
|
-
Sitemap::ProxyResource.new( @sitemap, link( tag ), @tag_template ).tap do | p |
|
70
|
-
|
62
|
+
def tag_page_resource(tag, articles)
|
63
|
+
Sitemap::ProxyResource.new(@sitemap, link(tag), @tag_template).tap do |p|
|
71
64
|
# Detect "formatted" tag in first article - trying to guess the correct format to show
|
72
65
|
# tagname = articles.first.tags.detect { |article_tag| safe_parameterize(article_tag) == tag }
|
73
66
|
|
74
67
|
# Add metadata in local variables so it's accessible to later extensions
|
75
68
|
p.add_metadata locals: {
|
76
|
-
'page_type'
|
77
|
-
'tagname'
|
78
|
-
'articles'
|
69
|
+
'page_type' => 'tag',
|
70
|
+
'tagname' => tag,
|
71
|
+
'articles' => articles,
|
79
72
|
'blog_controller' => @blog_controller
|
80
73
|
}
|
81
|
-
|
82
74
|
end
|
83
|
-
|
84
75
|
end
|
85
|
-
|
86
76
|
end
|
87
|
-
|
88
77
|
end
|
89
|
-
|
90
78
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
begin
|
2
|
-
require
|
2
|
+
require 'nokogiri'
|
3
3
|
rescue LoadError
|
4
4
|
raise "Nokogiri is required for blog post summaries. Add 'nokogiri' to your Gemfile."
|
5
5
|
end
|
@@ -13,7 +13,7 @@ module TruncateHTML
|
|
13
13
|
doc.inner_html
|
14
14
|
end
|
15
15
|
|
16
|
-
def self.truncate_at_length(text, max_length, ellipsis =
|
16
|
+
def self.truncate_at_length(text, max_length, ellipsis = '...')
|
17
17
|
ellipsis_length = ellipsis.length
|
18
18
|
text = text.encode('UTF-8') if text.respond_to?(:encode)
|
19
19
|
doc = Nokogiri::HTML::DocumentFragment.parse text
|
@@ -31,12 +31,14 @@ module NokogiriTruncator
|
|
31
31
|
module NodeWithChildren
|
32
32
|
def truncate(max_length, ellipsis)
|
33
33
|
return self if inner_text.length <= max_length
|
34
|
-
|
34
|
+
|
35
|
+
truncated_node = dup
|
35
36
|
truncated_node.children.remove
|
36
37
|
|
37
|
-
|
38
|
+
children.each do |node|
|
38
39
|
remaining_length = max_length - truncated_node.inner_text.length
|
39
40
|
break if remaining_length <= 0
|
41
|
+
|
40
42
|
truncated_node.add_child node.truncate(remaining_length, ellipsis)
|
41
43
|
end
|
42
44
|
truncated_node
|
@@ -54,15 +56,14 @@ module NokogiriTruncator
|
|
54
56
|
end
|
55
57
|
|
56
58
|
module CommentNode
|
57
|
-
def truncate(*
|
59
|
+
def truncate(*_args)
|
58
60
|
# Don't truncate comments, since they aren't visible
|
59
61
|
self
|
60
62
|
end
|
61
63
|
end
|
62
|
-
|
63
64
|
end
|
64
65
|
|
65
66
|
Nokogiri::HTML::DocumentFragment.send(:include, NokogiriTruncator::NodeWithChildren)
|
66
67
|
Nokogiri::XML::Element.send(:include, NokogiriTruncator::NodeWithChildren)
|
67
68
|
Nokogiri::XML::Text.send(:include, NokogiriTruncator::TextNode)
|
68
|
-
Nokogiri::XML::Comment.send(:include, NokogiriTruncator::CommentNode)
|
69
|
+
Nokogiri::XML::Comment.send(:include, NokogiriTruncator::CommentNode)
|
@@ -4,12 +4,9 @@ require 'active_support/inflector'
|
|
4
4
|
require 'active_support/inflector/transliterate'
|
5
5
|
|
6
6
|
module Middleman
|
7
|
-
|
8
7
|
module Blog
|
9
|
-
|
10
8
|
# Handy methods for dealing with URI templates. Mix into whatever class.
|
11
9
|
module UriTemplates
|
12
|
-
|
13
10
|
module_function
|
14
11
|
|
15
12
|
##
|
@@ -22,9 +19,7 @@ module Middleman
|
|
22
19
|
##
|
23
20
|
def uri_template(tmpl_src)
|
24
21
|
# Support the RFC6470 templates directly if people use them
|
25
|
-
if tmpl_src.include?(':')
|
26
|
-
tmpl_src = tmpl_src.gsub(/:([A-Za-z0-9]+)/, '{\1}')
|
27
|
-
end
|
22
|
+
tmpl_src = tmpl_src.gsub(/:([A-Za-z0-9]+)/, '{\1}') if tmpl_src.include?(':')
|
28
23
|
|
29
24
|
Addressable::Template.new ::Middleman::Util.normalize_path(tmpl_src)
|
30
25
|
end
|
@@ -52,15 +47,37 @@ module Middleman
|
|
52
47
|
template.extract(path, BlogTemplateProcessor)
|
53
48
|
end
|
54
49
|
|
55
|
-
##
|
56
50
|
# Parametrize a string preserving any multi-byte characters
|
57
51
|
# Reimplementation of this, preserves un-transliterate-able multibyte chars.
|
58
52
|
#
|
59
53
|
# @see http://api.rubyonrails.org/classes/ActiveSupport/Inflector.html#method-i-parameterize
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
54
|
+
def safe_parameterize(str, sep = '-')
|
55
|
+
# Remove ending ?
|
56
|
+
str = str.to_s.gsub(/\?$/, '')
|
57
|
+
|
58
|
+
# Reimplementation of http://api.rubyonrails.org/classes/ActiveSupport/Inflector.html#method-i-parameterize that preserves un-transliterate-able multibyte chars.
|
59
|
+
parameterized_string = ::ActiveSupport::Inflector.transliterate(str.to_s).downcase
|
60
|
+
parameterized_string.gsub!(/[^a-z0-9\-_\?]+/, sep)
|
61
|
+
|
62
|
+
# Check for multibytes and sub back in
|
63
|
+
parameterized_string.chars.to_a.each_with_index do |char, i|
|
64
|
+
next unless char == '?' && str[i].bytes.count != 1
|
65
|
+
|
66
|
+
parameterized_string[i] = str[i]
|
67
|
+
end
|
68
|
+
|
69
|
+
re_sep = ::Regexp.escape(sep)
|
70
|
+
|
71
|
+
# No more than one of the separator in a row.
|
72
|
+
parameterized_string.gsub!(/#{re_sep}{2,}/, sep)
|
73
|
+
|
74
|
+
# Remove leading/trailing separator.
|
75
|
+
parameterized_string.gsub!(/^#{re_sep}|#{re_sep}$/, '')
|
76
|
+
parameterized_string.tr!('_', '-')
|
77
|
+
parameterized_string.delete!('?')
|
78
|
+
|
79
|
+
# Replace all ?
|
80
|
+
parameterized_string
|
64
81
|
end
|
65
82
|
|
66
83
|
##
|
@@ -71,7 +88,7 @@ module Middleman
|
|
71
88
|
# @return [Hash] parameters
|
72
89
|
##
|
73
90
|
def date_to_params(date)
|
74
|
-
|
91
|
+
{
|
75
92
|
year: date.year.to_s,
|
76
93
|
month: date.month.to_s.rjust(2, '0'),
|
77
94
|
day: date.day.to_s.rjust(2, '0')
|
@@ -81,13 +98,12 @@ module Middleman
|
|
81
98
|
##
|
82
99
|
#
|
83
100
|
##
|
84
|
-
def extract_directory_path(
|
101
|
+
def extract_directory_path(article_path)
|
85
102
|
uri = Addressable::URI.parse article_path
|
86
103
|
|
87
104
|
# Remove file extension from the article path
|
88
|
-
|
105
|
+
uri.path.gsub(uri.extname, '')
|
89
106
|
end
|
90
|
-
|
91
107
|
end
|
92
108
|
|
93
109
|
##
|
@@ -106,7 +122,5 @@ module Middleman
|
|
106
122
|
end
|
107
123
|
end
|
108
124
|
end
|
109
|
-
|
110
125
|
end
|
111
|
-
|
112
126
|
end
|
data/lib/middleman_extension.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
require
|
1
|
+
require 'middleman-blog'
|
data/middleman-blog.gemspec
CHANGED
@@ -1,25 +1,25 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
$:.push File.expand_path(
|
3
|
-
require
|
2
|
+
$:.push File.expand_path( "../lib", __FILE__ )
|
3
|
+
require "middleman-blog/version"
|
4
4
|
|
5
|
-
Gem::Specification.new do |s|
|
5
|
+
Gem::Specification.new do | s |
|
6
6
|
|
7
|
-
s.name =
|
7
|
+
s.name = "middleman-blog"
|
8
8
|
s.version = Middleman::Blog::VERSION
|
9
9
|
s.platform = Gem::Platform::RUBY
|
10
|
-
s.authors = [
|
11
|
-
s.email = [
|
12
|
-
s.homepage =
|
10
|
+
s.authors = [ "Thomas Reynolds", "Ben Hollis", "Ian Warner" ]
|
11
|
+
s.email = [ "me@tdreyno.com", "ben@benhollis.net", "ian.warner@drykiss.com" ]
|
12
|
+
s.homepage = "https://github.com/middleman/middleman-blog"
|
13
13
|
s.summary = %q{ Blog engine for Middleman }
|
14
14
|
s.description = %q{ Blog engine for Middleman }
|
15
|
-
s.license =
|
16
|
-
s.files = `git ls-files -z`.split("\0")
|
17
|
-
s.test_files = `git ls-files -z -- {fixtures,features}/*`.split("\0")
|
18
|
-
s.require_paths = [
|
19
|
-
s.required_ruby_version = '>= 2.
|
15
|
+
s.license = "MIT"
|
16
|
+
s.files = `git ls-files -z`.split( "\0" )
|
17
|
+
s.test_files = `git ls-files -z -- {fixtures,features}/*`.split( "\0" )
|
18
|
+
s.require_paths = [ "lib" ]
|
19
|
+
s.required_ruby_version = '>= 2.3.0'
|
20
20
|
|
21
|
-
s.add_dependency(
|
22
|
-
s.add_dependency(
|
23
|
-
s.add_dependency(
|
21
|
+
s.add_dependency( "middleman-core", [ ">= 4.0.0" ] )
|
22
|
+
s.add_dependency( "tzinfo", [ ">= 0.3.0" ] )
|
23
|
+
s.add_dependency( "addressable", [ "~> 2.3" ] )
|
24
24
|
|
25
25
|
end
|
data/spec/spec_helper.rb
CHANGED
data/spec/uri_templates_spec.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
|
3
1
|
require 'middleman-blog/uri_templates'
|
4
2
|
|
5
3
|
describe 'Middleman::Blog::UriTemplates' do
|
@@ -7,24 +5,24 @@ describe 'Middleman::Blog::UriTemplates' do
|
|
7
5
|
|
8
6
|
describe 'safe_parameterize' do
|
9
7
|
it 'can parameterize normal strings' do
|
10
|
-
expect(safe_parameterize('Some FUN stuff!'))
|
8
|
+
expect(safe_parameterize('Some FUN stuff!')).to eq 'some-fun-stuff'
|
11
9
|
end
|
12
10
|
|
13
11
|
it "doesn't mangle unicode strings" do
|
14
|
-
expect(safe_parameterize('☆☆☆'))
|
15
|
-
expect(safe_parameterize('明日がある'))
|
12
|
+
expect(safe_parameterize('☆☆☆')).to eq '☆☆☆'
|
13
|
+
expect(safe_parameterize('明日がある')).to eq '明日がある'
|
16
14
|
end
|
17
15
|
|
18
16
|
it "still transliterates when it's safe" do
|
19
|
-
expect(safe_parameterize('Schlagwörter'))
|
17
|
+
expect(safe_parameterize('Schlagwörter')).to eq 'schlagworter'
|
20
18
|
end
|
21
19
|
|
22
|
-
it
|
23
|
-
expect(safe_parameterize('What ☆☆☆!'))
|
20
|
+
it 'can handle mixed strings' do
|
21
|
+
expect(safe_parameterize('What ☆☆☆!')).to eq 'what-☆☆☆'
|
24
22
|
end
|
25
23
|
|
26
|
-
it
|
27
|
-
expect(safe_parameterize(1))
|
24
|
+
it 'can handle numbers' do
|
25
|
+
expect(safe_parameterize(1)).to eq '1'
|
28
26
|
end
|
29
27
|
end
|
30
28
|
|
@@ -33,47 +31,42 @@ describe 'Middleman::Blog::UriTemplates' do
|
|
33
31
|
template = uri_template('{year}/{month}/{day}/{title}/{+path}')
|
34
32
|
params = extract_params(template, '2013/12/13/foo-bar/foo/bar.html')
|
35
33
|
|
36
|
-
expect(params['year'])
|
37
|
-
expect(params['month'])
|
38
|
-
expect(params['day'])
|
39
|
-
expect(params['title'])
|
40
|
-
expect(params['path'])
|
34
|
+
expect(params['year']).to eq '2013'
|
35
|
+
expect(params['month']).to eq '12'
|
36
|
+
expect(params['day']).to eq '13'
|
37
|
+
expect(params['title']).to eq 'foo-bar'
|
38
|
+
expect(params['path']).to eq 'foo/bar.html'
|
41
39
|
end
|
42
40
|
|
43
41
|
it 'returns nil if there is no match' do
|
44
42
|
template = uri_template('{year}/{month}/{day}/{title}/{+path}')
|
45
|
-
expect(extract_params(template, 'foo/bar.html'))
|
43
|
+
expect(extract_params(template, 'foo/bar.html')).nil?
|
46
44
|
end
|
47
45
|
|
48
46
|
it 'returns nil if there is no match in the date bits' do
|
49
47
|
template = uri_template('{year}/{month}/{day}/{title}/{+path}')
|
50
|
-
|
48
|
+
extract_params(template, '2a13/1a2/1s3/foo-bar/foo/bar.html')
|
51
49
|
end
|
52
50
|
|
53
51
|
it 'matches even when the path contains spaces' do
|
54
52
|
template = uri_template('{year}/{month}/{day}/{title}/{+path}')
|
55
53
|
params = extract_params(template, '2013/12/13/foo - bar/foo/bar.html')
|
56
54
|
|
57
|
-
expect(params['year'])
|
58
|
-
expect(params['month'])
|
59
|
-
expect(params['day'])
|
60
|
-
expect(params['title'])
|
61
|
-
expect(params['path'])
|
55
|
+
expect(params['year']).to eq '2013'
|
56
|
+
expect(params['month']).to eq '12'
|
57
|
+
expect(params['day']).to eq '13'
|
58
|
+
expect(params['title']).to eq 'foo - bar'
|
59
|
+
expect(params['path']).to eq 'foo/bar.html'
|
62
60
|
end
|
63
61
|
end
|
64
62
|
|
65
63
|
describe 'extract_directory_path' do
|
66
|
-
|
67
64
|
it 'can extract a directory path' do
|
68
|
-
|
69
|
-
|
70
|
-
params = extract_params( template, '2013/12/13/foo-bar/foo/bar.html' )
|
65
|
+
template = uri_template('{year}/{month}/{day}/{title}/{+path}')
|
66
|
+
params = extract_params(template, '2013/12/13/foo-bar/foo/bar.html')
|
71
67
|
article_path = apply_uri_template template, params
|
72
68
|
|
73
|
-
expect(
|
74
|
-
|
69
|
+
expect(extract_directory_path(article_path)).to eq '2013/12/13/foo-bar/foo/bar'
|
75
70
|
end
|
76
|
-
|
77
71
|
end
|
78
|
-
|
79
72
|
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: 4.0.
|
4
|
+
version: 4.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Reynolds
|
@@ -10,22 +10,22 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2018-12-27 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: middleman-core
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
|
-
- - "
|
19
|
+
- - ">="
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
21
|
+
version: 4.0.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
|
-
- - "
|
26
|
+
- - ">="
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version:
|
28
|
+
version: 4.0.0
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: tzinfo
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
@@ -65,11 +65,13 @@ extra_rdoc_files: []
|
|
65
65
|
files:
|
66
66
|
- ".editorconfig"
|
67
67
|
- ".gitignore"
|
68
|
+
- ".rubocop.yml"
|
68
69
|
- ".travis.yml"
|
69
70
|
- ".yardopts"
|
70
71
|
- CHANGELOG.md
|
71
72
|
- CONTRIBUTING.md
|
72
73
|
- Gemfile
|
74
|
+
- Gemfile-4.x
|
73
75
|
- ISSUE_TEMPLATE.md
|
74
76
|
- LICENSE.md
|
75
77
|
- README.md
|
@@ -371,15 +373,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
371
373
|
requirements:
|
372
374
|
- - ">="
|
373
375
|
- !ruby/object:Gem::Version
|
374
|
-
version: 2.
|
376
|
+
version: 2.3.0
|
375
377
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
376
378
|
requirements:
|
377
379
|
- - ">="
|
378
380
|
- !ruby/object:Gem::Version
|
379
381
|
version: '0'
|
380
382
|
requirements: []
|
381
|
-
|
382
|
-
rubygems_version: 2.6.11
|
383
|
+
rubygems_version: 3.0.1
|
383
384
|
signing_key:
|
384
385
|
specification_version: 4
|
385
386
|
summary: Blog engine for Middleman
|