jekyll 4.0.1 → 4.1.0
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 +48 -19
- data/lib/jekyll.rb +3 -0
- data/lib/jekyll/collection.rb +1 -1
- data/lib/jekyll/command.rb +4 -2
- data/lib/jekyll/commands/new.rb +2 -2
- data/lib/jekyll/commands/serve.rb +9 -1
- data/lib/jekyll/configuration.rb +1 -1
- data/lib/jekyll/converters/identity.rb +2 -2
- data/lib/jekyll/converters/markdown/kramdown_parser.rb +70 -1
- data/lib/jekyll/convertible.rb +15 -15
- data/lib/jekyll/document.rb +18 -4
- data/lib/jekyll/drops/document_drop.rb +12 -0
- data/lib/jekyll/drops/page_drop.rb +18 -0
- data/lib/jekyll/drops/url_drop.rb +8 -0
- data/lib/jekyll/entry_filter.rb +19 -6
- data/lib/jekyll/excerpt.rb +1 -1
- data/lib/jekyll/filters.rb +99 -14
- data/lib/jekyll/filters/url_filters.rb +41 -14
- data/lib/jekyll/frontmatter_defaults.rb +12 -17
- data/lib/jekyll/hooks.rb +2 -5
- data/lib/jekyll/inclusion.rb +32 -0
- data/lib/jekyll/liquid_renderer.rb +18 -15
- data/lib/jekyll/liquid_renderer/table.rb +1 -21
- data/lib/jekyll/page.rb +43 -0
- data/lib/jekyll/page_excerpt.rb +26 -0
- data/lib/jekyll/profiler.rb +58 -0
- data/lib/jekyll/readers/collection_reader.rb +1 -0
- data/lib/jekyll/readers/data_reader.rb +1 -0
- data/lib/jekyll/readers/layout_reader.rb +1 -0
- data/lib/jekyll/readers/page_reader.rb +1 -0
- data/lib/jekyll/readers/post_reader.rb +1 -0
- data/lib/jekyll/readers/static_file_reader.rb +1 -0
- data/lib/jekyll/readers/theme_assets_reader.rb +1 -0
- data/lib/jekyll/renderer.rb +9 -15
- data/lib/jekyll/site.rb +14 -5
- data/lib/jekyll/static_file.rb +14 -9
- data/lib/jekyll/tags/include.rb +58 -3
- data/lib/jekyll/theme.rb +6 -0
- data/lib/jekyll/utils.rb +4 -4
- data/lib/jekyll/utils/win_tz.rb +1 -1
- data/lib/jekyll/version.rb +1 -1
- data/lib/theme_template/theme.gemspec.erb +1 -4
- metadata +14 -31
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8de141f536d43289d9c0f6dcea9282eca345760cb15208d11971128f0e9c9b23
|
4
|
+
data.tar.gz: d3f2ed7b92cc8a96b1c56c183912247d60399fb13bf899b874093797d1b8c574
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 188a24d699ba093c3a55048cacb969158cb027a4df37cdc62bd31c22dd8223c8c8b138a190b5eaee85fb811be771fa3e8256bde4b1c8f6fdfbac8a69dbc221c4
|
7
|
+
data.tar.gz: d2eb7caccefdaebfeec3cce77f749d4ade2d463eb39d85ab9f3fe9a54afadc193fcfc7218692124e217843443f0ae9b0a3ee71a9ffb6ececc245fc063c370f1e
|
data/.rubocop.yml
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
---
|
2
|
+
inherit_from: .rubocop_todo.yml
|
2
3
|
|
3
4
|
require:
|
4
5
|
- rubocop-performance
|
@@ -20,30 +21,51 @@ AllCops:
|
|
20
21
|
- script/**/*
|
21
22
|
- vendor/**/*
|
22
23
|
- tmp/**/*
|
23
|
-
|
24
|
+
|
25
|
+
Layout/EmptyComment:
|
26
|
+
Enabled: false
|
27
|
+
Layout/EmptyLinesAroundAttributeAccessor:
|
28
|
+
Enabled: true
|
29
|
+
Layout/EndAlignment:
|
30
|
+
Severity: error
|
31
|
+
Layout/HashAlignment:
|
24
32
|
EnforcedHashRocketStyle: table
|
25
33
|
Layout/IndentationWidth:
|
26
34
|
Severity: error
|
27
|
-
Layout/
|
35
|
+
Layout/FirstArrayElementIndentation:
|
28
36
|
EnforcedStyle: consistent
|
29
|
-
Layout/
|
37
|
+
Layout/FirstHashElementIndentation:
|
30
38
|
EnforcedStyle: consistent
|
39
|
+
Layout/LineLength:
|
40
|
+
Exclude:
|
41
|
+
- !ruby/regexp /features\/.*.rb/
|
42
|
+
- Rakefile
|
43
|
+
- rake/*.rake
|
44
|
+
- Gemfile
|
45
|
+
Max: 100
|
46
|
+
Severity: warning
|
31
47
|
Layout/MultilineMethodCallIndentation:
|
32
48
|
EnforcedStyle: indented
|
33
49
|
Layout/MultilineOperationIndentation:
|
34
50
|
EnforcedStyle: indented
|
51
|
+
Layout/SpaceAroundMethodCallOperator:
|
52
|
+
Enabled: true
|
53
|
+
|
35
54
|
Lint/NestedPercentLiteral:
|
36
55
|
Exclude:
|
37
56
|
- test/test_site.rb
|
38
|
-
|
39
|
-
Enabled:
|
40
|
-
|
41
|
-
|
57
|
+
Lint/DeprecatedOpenSSLConstant:
|
58
|
+
Enabled: true
|
59
|
+
Lint/RaiseException:
|
60
|
+
Enabled: true
|
61
|
+
Lint/StructNewOverride:
|
62
|
+
Enabled: true
|
42
63
|
Lint/UnreachableCode:
|
43
64
|
Severity: error
|
44
65
|
Lint/Void:
|
45
66
|
Exclude:
|
46
67
|
- lib/jekyll/site.rb
|
68
|
+
|
47
69
|
Metrics/AbcSize:
|
48
70
|
Max: 21
|
49
71
|
Metrics/BlockLength:
|
@@ -64,24 +86,19 @@ Metrics/CyclomaticComplexity:
|
|
64
86
|
Exclude:
|
65
87
|
- lib/jekyll/utils.rb
|
66
88
|
- lib/jekyll/commands/serve.rb
|
67
|
-
Metrics/LineLength:
|
68
|
-
Exclude:
|
69
|
-
- !ruby/regexp /features\/.*.rb/
|
70
|
-
- Rakefile
|
71
|
-
- rake/*.rake
|
72
|
-
- Gemfile
|
73
|
-
Max: 100
|
74
|
-
Severity: warning
|
75
89
|
Metrics/MethodLength:
|
76
90
|
CountComments: false
|
77
91
|
Max: 20
|
78
92
|
Severity: error
|
79
93
|
Metrics/ModuleLength:
|
80
94
|
Max: 240
|
95
|
+
Exclude:
|
96
|
+
- lib/jekyll/filters.rb
|
81
97
|
Metrics/ParameterLists:
|
82
98
|
Max: 4
|
83
99
|
Metrics/PerceivedComplexity:
|
84
100
|
Max: 8
|
101
|
+
|
85
102
|
Naming/FileName:
|
86
103
|
Enabled: false
|
87
104
|
Naming/HeredocDelimiterNaming:
|
@@ -93,6 +110,7 @@ Naming/MemoizedInstanceVariableName:
|
|
93
110
|
- lib/jekyll/drops/site_drop.rb
|
94
111
|
- lib/jekyll/drops/unified_payload_drop.rb
|
95
112
|
- lib/jekyll/page_without_a_file.rb
|
113
|
+
|
96
114
|
Security/MarshalLoad:
|
97
115
|
Exclude:
|
98
116
|
- !ruby/regexp /test\/.*.rb$/
|
@@ -101,31 +119,40 @@ Security/YAMLLoad:
|
|
101
119
|
Exclude:
|
102
120
|
- !ruby/regexp /features\/.*.rb/
|
103
121
|
- !ruby/regexp /test\/.*.rb$/
|
122
|
+
|
104
123
|
Style/AccessModifierDeclarations:
|
105
124
|
Enabled: false
|
106
125
|
Style/Alias:
|
107
126
|
EnforcedStyle: prefer_alias_method
|
108
127
|
Style/AndOr:
|
109
128
|
Severity: error
|
110
|
-
Style/BracesAroundHashParameters:
|
111
|
-
Enabled: false
|
112
129
|
Style/ClassAndModuleChildren:
|
113
130
|
Exclude:
|
114
131
|
- test/**/*.rb
|
115
|
-
Style/FrozenStringLiteralComment:
|
116
|
-
EnforcedStyle: always
|
117
132
|
Style/Documentation:
|
118
133
|
Enabled: false
|
119
134
|
Style/DoubleNegation:
|
120
135
|
Enabled: false
|
136
|
+
Style/ExponentialNotation:
|
137
|
+
Enabled: true
|
121
138
|
Style/FormatStringToken:
|
122
139
|
Exclude:
|
123
140
|
- lib/jekyll/utils/ansi.rb
|
141
|
+
- lib/jekyll/liquid_renderer/table.rb
|
142
|
+
- lib/jekyll/profiler.rb
|
143
|
+
Style/FrozenStringLiteralComment:
|
144
|
+
EnforcedStyle: always
|
124
145
|
Style/GuardClause:
|
125
146
|
Enabled: false
|
147
|
+
Style/HashEachMethods:
|
148
|
+
Enabled: true
|
126
149
|
Style/HashSyntax:
|
127
150
|
EnforcedStyle: hash_rockets
|
128
151
|
Severity: error
|
152
|
+
Style/HashTransformKeys:
|
153
|
+
Enabled: false
|
154
|
+
Style/HashTransformValues:
|
155
|
+
Enabled: true
|
129
156
|
Style/MixinUsage:
|
130
157
|
Exclude:
|
131
158
|
- test/helper.rb
|
@@ -151,6 +178,8 @@ Style/SafeNavigation:
|
|
151
178
|
- lib/jekyll/document.rb
|
152
179
|
Style/SignalException:
|
153
180
|
EnforcedStyle: only_raise
|
181
|
+
Style/SlicingWithRange:
|
182
|
+
Enabled: false
|
154
183
|
Style/StringLiterals:
|
155
184
|
EnforcedStyle: double_quotes
|
156
185
|
Style/StringLiteralsInInterpolation:
|
data/lib/jekyll.rb
CHANGED
@@ -50,10 +50,12 @@ module Jekyll
|
|
50
50
|
autoload :EntryFilter, "jekyll/entry_filter"
|
51
51
|
autoload :Errors, "jekyll/errors"
|
52
52
|
autoload :Excerpt, "jekyll/excerpt"
|
53
|
+
autoload :PageExcerpt, "jekyll/page_excerpt"
|
53
54
|
autoload :External, "jekyll/external"
|
54
55
|
autoload :FrontmatterDefaults, "jekyll/frontmatter_defaults"
|
55
56
|
autoload :Hooks, "jekyll/hooks"
|
56
57
|
autoload :Layout, "jekyll/layout"
|
58
|
+
autoload :Inclusion, "jekyll/inclusion"
|
57
59
|
autoload :Cache, "jekyll/cache"
|
58
60
|
autoload :CollectionReader, "jekyll/readers/collection_reader"
|
59
61
|
autoload :DataReader, "jekyll/readers/data_reader"
|
@@ -68,6 +70,7 @@ module Jekyll
|
|
68
70
|
autoload :PathManager, "jekyll/path_manager"
|
69
71
|
autoload :PluginManager, "jekyll/plugin_manager"
|
70
72
|
autoload :Publisher, "jekyll/publisher"
|
73
|
+
autoload :Profiler, "jekyll/profiler"
|
71
74
|
autoload :Reader, "jekyll/reader"
|
72
75
|
autoload :Regenerator, "jekyll/regenerator"
|
73
76
|
autoload :RelatedPosts, "jekyll/related_posts"
|
data/lib/jekyll/collection.rb
CHANGED
@@ -239,7 +239,7 @@ module Jekyll
|
|
239
239
|
|
240
240
|
# Fall back to `Document#<=>` if the properties were equal or were non-sortable
|
241
241
|
# Otherwise continue with current sort-order
|
242
|
-
if order.
|
242
|
+
if order.nil? || order.zero?
|
243
243
|
apples[-1] <=> olives[-1]
|
244
244
|
else
|
245
245
|
order
|
data/lib/jekyll/command.rb
CHANGED
@@ -67,6 +67,8 @@ module Jekyll
|
|
67
67
|
cmd.option "show_drafts", "-D", "--drafts", "Render posts in the _drafts folder"
|
68
68
|
cmd.option "unpublished", "--unpublished",
|
69
69
|
"Render posts that were marked as unpublished"
|
70
|
+
cmd.option "disable_disk_cache", "--disable-disk-cache",
|
71
|
+
"Disable caching to disk in non-safe mode"
|
70
72
|
cmd.option "quiet", "-q", "--quiet", "Silence output."
|
71
73
|
cmd.option "verbose", "-V", "--verbose", "Print verbose output."
|
72
74
|
cmd.option "incremental", "-I", "--incremental", "Enable incremental rebuild."
|
@@ -84,7 +86,7 @@ module Jekyll
|
|
84
86
|
# klass - an array of Jekyll::Command subclasses associated with the command
|
85
87
|
#
|
86
88
|
# Note that all exceptions are rescued..
|
87
|
-
# rubocop: disable RescueException
|
89
|
+
# rubocop: disable Lint/RescueException
|
88
90
|
def process_with_graceful_fail(cmd, options, *klass)
|
89
91
|
klass.each { |k| k.process(options) if k.respond_to?(:process) }
|
90
92
|
rescue Exception => e
|
@@ -97,7 +99,7 @@ module Jekyll
|
|
97
99
|
Jekyll.logger.error "", " for any additional information or backtrace. "
|
98
100
|
Jekyll.logger.abort_with "", dashes
|
99
101
|
end
|
100
|
-
# rubocop: enable RescueException
|
102
|
+
# rubocop: enable Lint/RescueException
|
101
103
|
end
|
102
104
|
end
|
103
105
|
end
|
data/lib/jekyll/commands/new.rb
CHANGED
@@ -91,13 +91,13 @@ module Jekyll
|
|
91
91
|
|
92
92
|
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
|
93
93
|
# and associated library.
|
94
|
-
|
94
|
+
platforms :mingw, :x64_mingw, :mswin, :jruby do
|
95
95
|
gem "tzinfo", "~> 1.2"
|
96
96
|
gem "tzinfo-data"
|
97
97
|
end
|
98
98
|
|
99
99
|
# Performance-booster for watching directories on Windows
|
100
|
-
gem "wdm", "~> 0.1.1", :
|
100
|
+
gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin]
|
101
101
|
|
102
102
|
RUBY
|
103
103
|
end
|
@@ -307,7 +307,15 @@ module Jekyll
|
|
307
307
|
require "webrick/https"
|
308
308
|
|
309
309
|
opts[:SSLCertificate] = OpenSSL::X509::Certificate.new(read_file(src, cert))
|
310
|
-
|
310
|
+
begin
|
311
|
+
opts[:SSLPrivateKey] = OpenSSL::PKey::RSA.new(read_file(src, key))
|
312
|
+
rescue StandardError
|
313
|
+
if defined?(OpenSSL::PKey::EC)
|
314
|
+
opts[:SSLPrivateKey] = OpenSSL::PKey::EC.new(read_file(src, key))
|
315
|
+
else
|
316
|
+
raise
|
317
|
+
end
|
318
|
+
end
|
311
319
|
opts[:SSLEnable] = true
|
312
320
|
end
|
313
321
|
|
data/lib/jekyll/configuration.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module Jekyll
|
4
4
|
module Converters
|
5
|
-
#
|
5
|
+
# Identity converter. Returns same content as given.
|
6
6
|
# For more info on converters see https://jekyllrb.com/docs/plugins/converters/
|
7
7
|
class Identity < Converter
|
8
8
|
safe true
|
@@ -12,7 +12,7 @@ module Jekyll
|
|
12
12
|
# Public: Does the given extension match this converter's list of acceptable extensions?
|
13
13
|
# Takes one argument: the file's extension (including the dot).
|
14
14
|
#
|
15
|
-
#
|
15
|
+
# _ext - The String extension to check (not relevant here)
|
16
16
|
#
|
17
17
|
# Returns true since it always matches.
|
18
18
|
def matches(_ext)
|
@@ -1,5 +1,73 @@
|
|
1
1
|
# Frozen-string-literal: true
|
2
2
|
|
3
|
+
module Kramdown
|
4
|
+
# A Kramdown::Document subclass meant to optimize memory usage from initializing
|
5
|
+
# a kramdown document for parsing.
|
6
|
+
#
|
7
|
+
# The optimization is by using the same options Hash (and its derivatives) for
|
8
|
+
# converting all Markdown documents in a Jekyll site.
|
9
|
+
class JekyllDocument < Document
|
10
|
+
class << self
|
11
|
+
attr_reader :options, :parser
|
12
|
+
|
13
|
+
# The implementation is basically the core logic in +Kramdown::Document#initialize+
|
14
|
+
#
|
15
|
+
# rubocop:disable Naming/MemoizedInstanceVariableName
|
16
|
+
def setup(options)
|
17
|
+
@cache ||= {}
|
18
|
+
|
19
|
+
# reset variables on a subsequent set up with a different options Hash
|
20
|
+
unless @cache[:id] == options.hash
|
21
|
+
@options = @parser = nil
|
22
|
+
@cache[:id] = options.hash
|
23
|
+
end
|
24
|
+
|
25
|
+
@options ||= Options.merge(options).freeze
|
26
|
+
@parser ||= begin
|
27
|
+
parser_name = (@options[:input] || "kramdown").to_s
|
28
|
+
parser_name = parser_name[0..0].upcase + parser_name[1..-1]
|
29
|
+
try_require("parser", parser_name)
|
30
|
+
|
31
|
+
if Parser.const_defined?(parser_name)
|
32
|
+
Parser.const_get(parser_name)
|
33
|
+
else
|
34
|
+
raise Kramdown::Error, "kramdown has no parser to handle the specified " \
|
35
|
+
"input format: #{@options[:input]}"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
# rubocop:enable Naming/MemoizedInstanceVariableName
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def try_require(type, name)
|
44
|
+
require "kramdown/#{type}/#{Utils.snake_case(name)}"
|
45
|
+
rescue LoadError
|
46
|
+
false
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def initialize(source, options = {})
|
51
|
+
JekyllDocument.setup(options)
|
52
|
+
|
53
|
+
@options = JekyllDocument.options
|
54
|
+
@root, @warnings = JekyllDocument.parser.parse(source, @options)
|
55
|
+
end
|
56
|
+
|
57
|
+
# Use Kramdown::Converter::Html class to convert this document into HTML.
|
58
|
+
#
|
59
|
+
# The implementation is basically an optimized version of core logic in
|
60
|
+
# +Kramdown::Document#method_missing+ from kramdown-2.1.0.
|
61
|
+
def to_html
|
62
|
+
output, warnings = Kramdown::Converter::Html.convert(@root, @options)
|
63
|
+
@warnings.concat(warnings)
|
64
|
+
output
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
#
|
70
|
+
|
3
71
|
module Jekyll
|
4
72
|
module Converters
|
5
73
|
class Markdown
|
@@ -31,13 +99,14 @@ module Jekyll
|
|
31
99
|
def setup
|
32
100
|
@config["syntax_highlighter"] ||= highlighter
|
33
101
|
@config["syntax_highlighter_opts"] ||= {}
|
102
|
+
@config["syntax_highlighter_opts"]["default_lang"] ||= "plaintext"
|
34
103
|
@config["syntax_highlighter_opts"]["guess_lang"] = @config["guess_lang"]
|
35
104
|
@config["coderay"] ||= {} # XXX: Legacy.
|
36
105
|
modernize_coderay_config
|
37
106
|
end
|
38
107
|
|
39
108
|
def convert(content)
|
40
|
-
document = Kramdown::
|
109
|
+
document = Kramdown::JekyllDocument.new(content, @config)
|
41
110
|
html_output = document.to_html
|
42
111
|
if @config["show_warnings"]
|
43
112
|
document.warnings.each do |warning|
|
data/lib/jekyll/convertible.rb
CHANGED
@@ -78,7 +78,7 @@ module Jekyll
|
|
78
78
|
#
|
79
79
|
# Returns the transformed contents.
|
80
80
|
def transform
|
81
|
-
|
81
|
+
renderer.convert(content)
|
82
82
|
end
|
83
83
|
|
84
84
|
# Determine the extension depending on content_type.
|
@@ -86,7 +86,7 @@ module Jekyll
|
|
86
86
|
# Returns the String extension for the output file.
|
87
87
|
# e.g. ".html" for an HTML output file.
|
88
88
|
def output_ext
|
89
|
-
|
89
|
+
renderer.output_ext
|
90
90
|
end
|
91
91
|
|
92
92
|
# Determine which converter to use based on this convertible's
|
@@ -94,7 +94,7 @@ module Jekyll
|
|
94
94
|
#
|
95
95
|
# Returns the Converter instance.
|
96
96
|
def converters
|
97
|
-
|
97
|
+
renderer.converters
|
98
98
|
end
|
99
99
|
|
100
100
|
# Render Liquid in the content
|
@@ -105,7 +105,7 @@ module Jekyll
|
|
105
105
|
#
|
106
106
|
# Returns the converted content
|
107
107
|
def render_liquid(content, payload, info, path)
|
108
|
-
|
108
|
+
renderer.render_liquid(content, payload, info, path)
|
109
109
|
end
|
110
110
|
|
111
111
|
# Convert this Convertible's data to a Hash suitable for use by Liquid.
|
@@ -191,10 +191,10 @@ module Jekyll
|
|
191
191
|
#
|
192
192
|
# Returns nothing
|
193
193
|
def render_all_layouts(layouts, payload, info)
|
194
|
-
|
195
|
-
self.output =
|
194
|
+
renderer.layouts = layouts
|
195
|
+
self.output = renderer.place_in_layouts(output, payload, info)
|
196
196
|
ensure
|
197
|
-
@
|
197
|
+
@renderer = nil # this will allow the modifications above to disappear
|
198
198
|
end
|
199
199
|
|
200
200
|
# Add any necessary layouts to this convertible document.
|
@@ -204,15 +204,15 @@ module Jekyll
|
|
204
204
|
#
|
205
205
|
# Returns nothing.
|
206
206
|
def do_layout(payload, layouts)
|
207
|
-
self.output =
|
208
|
-
|
209
|
-
|
207
|
+
self.output = renderer.tap do |doc_renderer|
|
208
|
+
doc_renderer.layouts = layouts
|
209
|
+
doc_renderer.payload = payload
|
210
210
|
end.run
|
211
211
|
|
212
212
|
Jekyll.logger.debug "Post-Render Hooks:", relative_path
|
213
213
|
Jekyll::Hooks.trigger hook_owner, :post_render, self
|
214
214
|
ensure
|
215
|
-
@
|
215
|
+
@renderer = nil # this will allow the modifications above to disappear
|
216
216
|
end
|
217
217
|
|
218
218
|
# Write the generated page file to the destination directory.
|
@@ -241,12 +241,12 @@ module Jekyll
|
|
241
241
|
end
|
242
242
|
end
|
243
243
|
|
244
|
-
|
245
|
-
|
246
|
-
def _renderer
|
247
|
-
@_renderer ||= Jekyll::Renderer.new(site, self)
|
244
|
+
def renderer
|
245
|
+
@renderer ||= Jekyll::Renderer.new(site, self)
|
248
246
|
end
|
249
247
|
|
248
|
+
private
|
249
|
+
|
250
250
|
def no_layout?
|
251
251
|
data["layout"] == "none"
|
252
252
|
end
|