jekyll 4.1.0 → 4.1.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/.rubocop.yml +9 -0
- data/lib/jekyll/cleaner.rb +2 -2
- data/lib/jekyll/collection.rb +1 -1
- data/lib/jekyll/entry_filter.rb +0 -2
- data/lib/jekyll/filters.rb +1 -2
- data/lib/jekyll/page.rb +16 -35
- data/lib/jekyll/page_excerpt.rb +5 -6
- data/lib/jekyll/tags/include.rb +3 -3
- data/lib/jekyll/utils.rb +1 -1
- data/lib/jekyll/version.rb +1 -1
- metadata +5 -6
- data/lib/jekyll/drops/page_drop.rb +0 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b74631944252558b9ad068a1df651f0890577d11c6ac24d06050fe76e9a41d60
|
4
|
+
data.tar.gz: c34826fe92efe4fe968692fa3517c4f8ddf600b9c99af1776d305804e313a1fe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d89ea1ca35864a53aa21d21847ef357d33a28f8e094bc4c39bc519c2895ea6e8a87d86669252af4b9431a23634209bf38e909ea7b0686ba22bcac898a43488cc
|
7
|
+
data.tar.gz: 950488593a4b255d8196baf07dfdd04a85bd062cf7b612531b6253eb4118d77ab8209290f535621dd2dc6aec2a73f8079092d243aaa002411e855b6264a5c33a
|
data/.rubocop.yml
CHANGED
@@ -56,6 +56,8 @@ Lint/NestedPercentLiteral:
|
|
56
56
|
- test/test_site.rb
|
57
57
|
Lint/DeprecatedOpenSSLConstant:
|
58
58
|
Enabled: true
|
59
|
+
Lint/MixedRegexpCaptureTypes:
|
60
|
+
Enabled: false
|
59
61
|
Lint/RaiseException:
|
60
62
|
Enabled: true
|
61
63
|
Lint/StructNewOverride:
|
@@ -86,6 +88,7 @@ Metrics/CyclomaticComplexity:
|
|
86
88
|
Exclude:
|
87
89
|
- lib/jekyll/utils.rb
|
88
90
|
- lib/jekyll/commands/serve.rb
|
91
|
+
Max: 11
|
89
92
|
Metrics/MethodLength:
|
90
93
|
CountComments: false
|
91
94
|
Max: 20
|
@@ -169,6 +172,12 @@ Style/PercentLiteralDelimiters:
|
|
169
172
|
"%w": "()"
|
170
173
|
"%W": "()"
|
171
174
|
"%x": "()"
|
175
|
+
Style/RedundantFetchBlock:
|
176
|
+
Enabled: false
|
177
|
+
Style/RedundantRegexpCharacterClass:
|
178
|
+
Enabled: true
|
179
|
+
Style/RedundantRegexpEscape:
|
180
|
+
Enabled: true
|
172
181
|
Style/RegexpLiteral:
|
173
182
|
EnforcedStyle: percent_r
|
174
183
|
Style/RescueModifier:
|
data/lib/jekyll/cleaner.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
module Jekyll
|
4
4
|
# Handles the cleanup of a site's destination before it is built.
|
5
5
|
class Cleaner
|
6
|
-
HIDDEN_FILE_REGEX = %r
|
6
|
+
HIDDEN_FILE_REGEX = %r!/\.{1,2}$!.freeze
|
7
7
|
attr_reader :site
|
8
8
|
|
9
9
|
def initialize(site)
|
@@ -105,7 +105,7 @@ module Jekyll
|
|
105
105
|
#
|
106
106
|
# Returns the regular expression
|
107
107
|
def keep_file_regex
|
108
|
-
%r!\A#{Regexp.quote(site.dest)}
|
108
|
+
%r!\A#{Regexp.quote(site.dest)}/(#{Regexp.union(site.keep_files).source})!
|
109
109
|
end
|
110
110
|
end
|
111
111
|
end
|
data/lib/jekyll/collection.rb
CHANGED
@@ -166,7 +166,7 @@ module Jekyll
|
|
166
166
|
#
|
167
167
|
# Returns a sanitized version of the label.
|
168
168
|
def sanitize_label(label)
|
169
|
-
label.gsub(%r![^a-z0-9_
|
169
|
+
label.gsub(%r![^a-z0-9_\-.]!i, "")
|
170
170
|
end
|
171
171
|
|
172
172
|
# Produce a representation of this Collection for use in Liquid.
|
data/lib/jekyll/entry_filter.rb
CHANGED
@@ -28,7 +28,6 @@ module Jekyll
|
|
28
28
|
)
|
29
29
|
end
|
30
30
|
|
31
|
-
# rubocop:disable Metrics/CyclomaticComplexity
|
32
31
|
def filter(entries)
|
33
32
|
entries.reject do |e|
|
34
33
|
# Reject this entry if it is just a "dot" representation.
|
@@ -51,7 +50,6 @@ module Jekyll
|
|
51
50
|
special?(e) || backup?(e)
|
52
51
|
end
|
53
52
|
end
|
54
|
-
# rubocop:enable Metrics/CyclomaticComplexity
|
55
53
|
|
56
54
|
def included?(entry)
|
57
55
|
glob_include?(site.include, entry) ||
|
data/lib/jekyll/filters.rb
CHANGED
@@ -399,7 +399,6 @@ module Jekyll
|
|
399
399
|
|
400
400
|
# `where` filter helper
|
401
401
|
#
|
402
|
-
# rubocop:disable Metrics/CyclomaticComplexity
|
403
402
|
# rubocop:disable Metrics/PerceivedComplexity
|
404
403
|
def compare_property_vs_target(property, target)
|
405
404
|
case target
|
@@ -421,7 +420,7 @@ module Jekyll
|
|
421
420
|
|
422
421
|
false
|
423
422
|
end
|
424
|
-
|
423
|
+
|
425
424
|
# rubocop:enable Metrics/PerceivedComplexity
|
426
425
|
|
427
426
|
def item_property(item, property)
|
data/lib/jekyll/page.rb
CHANGED
@@ -49,6 +49,7 @@ module Jekyll
|
|
49
49
|
|
50
50
|
process(name)
|
51
51
|
read_yaml(PathManager.join(base, dir), name)
|
52
|
+
generate_excerpt if site.config["page_excerpts"]
|
52
53
|
|
53
54
|
data.default_proc = proc do |_, key|
|
54
55
|
site.frontmatter_defaults.find(relative_path, type, key)
|
@@ -71,38 +72,6 @@ module Jekyll
|
|
71
72
|
end
|
72
73
|
end
|
73
74
|
|
74
|
-
# For backwards-compatibility in subclasses that do not redefine
|
75
|
-
# the `:to_liquid` method, stash existing definition under a new name
|
76
|
-
#
|
77
|
-
# TODO: Remove in Jekyll 5.0
|
78
|
-
alias_method :legacy_to_liquid, :to_liquid
|
79
|
-
private :legacy_to_liquid
|
80
|
-
|
81
|
-
# Private
|
82
|
-
# Subclasses can choose to optimize their `:to_liquid` method by wrapping
|
83
|
-
# it around this definition.
|
84
|
-
#
|
85
|
-
# TODO: Remove in Jekyll 5.0
|
86
|
-
def liquid_drop
|
87
|
-
@liquid_drop ||= begin
|
88
|
-
defaults = site.frontmatter_defaults.all(relative_path, type)
|
89
|
-
unless defaults.empty?
|
90
|
-
Utils.deep_merge_hashes!(data, Utils.deep_merge_hashes!(defaults, data))
|
91
|
-
end
|
92
|
-
Drops::PageDrop.new(self)
|
93
|
-
end
|
94
|
-
end
|
95
|
-
private :liquid_drop
|
96
|
-
|
97
|
-
# Public
|
98
|
-
#
|
99
|
-
# Liquid representation of current page
|
100
|
-
#
|
101
|
-
# TODO: Remove optional parameter in Jekyll 5.0
|
102
|
-
def to_liquid(attrs = nil)
|
103
|
-
self.class == Jekyll::Page ? liquid_drop : legacy_to_liquid(attrs)
|
104
|
-
end
|
105
|
-
|
106
75
|
# The full path and filename of the post. Defined in the YAML of the post
|
107
76
|
# body.
|
108
77
|
#
|
@@ -178,7 +147,7 @@ module Jekyll
|
|
178
147
|
|
179
148
|
# The path to the page source file, relative to the site source
|
180
149
|
def relative_path
|
181
|
-
@relative_path ||= File.join(*[@dir, @name].map(&:to_s).reject(&:empty?)).sub(%r!\A
|
150
|
+
@relative_path ||= File.join(*[@dir, @name].map(&:to_s).reject(&:empty?)).sub(%r!\A/!, "")
|
182
151
|
end
|
183
152
|
|
184
153
|
# Obtain destination path.
|
@@ -221,9 +190,21 @@ module Jekyll
|
|
221
190
|
end
|
222
191
|
|
223
192
|
def excerpt
|
224
|
-
return
|
193
|
+
return @excerpt if defined?(@excerpt)
|
194
|
+
|
195
|
+
@excerpt = data["excerpt"]&.to_s
|
196
|
+
end
|
197
|
+
|
198
|
+
def generate_excerpt?
|
199
|
+
!excerpt_separator.empty? && self.class == Jekyll::Page && html?
|
200
|
+
end
|
201
|
+
|
202
|
+
private
|
203
|
+
|
204
|
+
def generate_excerpt
|
205
|
+
return unless generate_excerpt?
|
225
206
|
|
226
|
-
data["excerpt"] ||= Jekyll::PageExcerpt.new(self)
|
207
|
+
data["excerpt"] ||= Jekyll::PageExcerpt.new(self)
|
227
208
|
end
|
228
209
|
end
|
229
210
|
end
|
data/lib/jekyll/page_excerpt.rb
CHANGED
@@ -2,15 +2,14 @@
|
|
2
2
|
|
3
3
|
module Jekyll
|
4
4
|
class PageExcerpt < Excerpt
|
5
|
-
attr_reader :
|
5
|
+
attr_reader :doc
|
6
6
|
alias_method :id, :relative_path
|
7
7
|
|
8
|
-
|
9
|
-
|
8
|
+
EXCERPT_ATTRIBUTES = (Page::ATTRIBUTES_FOR_LIQUID - %w(excerpt)).freeze
|
9
|
+
private_constant :EXCERPT_ATTRIBUTES
|
10
10
|
|
11
|
-
def
|
12
|
-
|
13
|
-
self.output = Renderer.new(site, self, site.site_payload).run
|
11
|
+
def to_liquid
|
12
|
+
@to_liquid ||= doc.to_liquid(EXCERPT_ATTRIBUTES)
|
14
13
|
end
|
15
14
|
|
16
15
|
def render_with_liquid?
|
data/lib/jekyll/tags/include.rb
CHANGED
@@ -5,15 +5,15 @@ module Jekyll
|
|
5
5
|
class IncludeTag < Liquid::Tag
|
6
6
|
VALID_SYNTAX = %r!
|
7
7
|
([\w-]+)\s*=\s*
|
8
|
-
(?:"([^"\\]*(?:\\.[^"\\]*)*)"|'([^'\\]*(?:\\.[^'\\]*)*)'|([\w
|
8
|
+
(?:"([^"\\]*(?:\\.[^"\\]*)*)"|'([^'\\]*(?:\\.[^'\\]*)*)'|([\w.-]+))
|
9
9
|
!x.freeze
|
10
10
|
VARIABLE_SYNTAX = %r!
|
11
|
-
(?<variable>[^{]*(\{\{\s*[\w
|
11
|
+
(?<variable>[^{]*(\{\{\s*[\w\-.]+\s*(\|.*)?\}\}[^\s{}]*)+)
|
12
12
|
(?<params>.*)
|
13
13
|
!mx.freeze
|
14
14
|
|
15
15
|
FULL_VALID_SYNTAX = %r!\A\s*(?:#{VALID_SYNTAX}(?=\s|\z)\s*)*\z!.freeze
|
16
|
-
VALID_FILENAME_CHARS = %r!^[\w
|
16
|
+
VALID_FILENAME_CHARS = %r!^[\w/.-]+$!.freeze
|
17
17
|
INVALID_SEQUENCES = %r![./]{2,}!.freeze
|
18
18
|
|
19
19
|
def initialize(tag_name, markup, tokens)
|
data/lib/jekyll/utils.rb
CHANGED
@@ -215,7 +215,7 @@ module Jekyll
|
|
215
215
|
slug = replace_character_sequence_with_hyphen(string, :mode => mode)
|
216
216
|
|
217
217
|
# Remove leading/trailing hyphen
|
218
|
-
slug.gsub!(%r
|
218
|
+
slug.gsub!(%r!^-|-$!i, "")
|
219
219
|
|
220
220
|
slug.downcase! unless cased
|
221
221
|
Jekyll.logger.warn("Warning:", "Empty `slug` generated for '#{string}'.") if slug.empty?
|
data/lib/jekyll/version.rb
CHANGED
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.1.
|
4
|
+
version: 4.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tom Preston-Werner
|
8
8
|
- Parker Moore
|
9
9
|
- Matt Rogers
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: exe
|
12
12
|
cert_chain: []
|
13
|
-
date: 2020-
|
13
|
+
date: 2020-06-24 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: addressable
|
@@ -257,7 +257,6 @@ files:
|
|
257
257
|
- lib/jekyll/drops/drop.rb
|
258
258
|
- lib/jekyll/drops/excerpt_drop.rb
|
259
259
|
- lib/jekyll/drops/jekyll_drop.rb
|
260
|
-
- lib/jekyll/drops/page_drop.rb
|
261
260
|
- lib/jekyll/drops/site_drop.rb
|
262
261
|
- lib/jekyll/drops/static_file_drop.rb
|
263
262
|
- lib/jekyll/drops/unified_payload_drop.rb
|
@@ -349,7 +348,7 @@ metadata:
|
|
349
348
|
bug_tracker_uri: https://github.com/jekyll/jekyll/issues
|
350
349
|
changelog_uri: https://github.com/jekyll/jekyll/releases
|
351
350
|
homepage_uri: https://jekyllrb.com
|
352
|
-
post_install_message:
|
351
|
+
post_install_message:
|
353
352
|
rdoc_options:
|
354
353
|
- "--charset=UTF-8"
|
355
354
|
require_paths:
|
@@ -366,7 +365,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
366
365
|
version: 2.7.0
|
367
366
|
requirements: []
|
368
367
|
rubygems_version: 3.1.2
|
369
|
-
signing_key:
|
368
|
+
signing_key:
|
370
369
|
specification_version: 4
|
371
370
|
summary: A simple, blog aware, static site generator.
|
372
371
|
test_files: []
|
@@ -1,18 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Jekyll
|
4
|
-
module Drops
|
5
|
-
class PageDrop < Drop
|
6
|
-
extend Forwardable
|
7
|
-
|
8
|
-
mutable false
|
9
|
-
|
10
|
-
def_delegators :@obj, :content, :dir, :name, :path, :url, :excerpt
|
11
|
-
private def_delegator :@obj, :data, :fallback_data
|
12
|
-
|
13
|
-
def title
|
14
|
-
@obj.data["title"]
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|