jekyll 3.8.7 → 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.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +71 -62
  3. data/LICENSE +1 -1
  4. data/README.markdown +46 -17
  5. data/lib/blank_template/_config.yml +3 -0
  6. data/lib/blank_template/_layouts/default.html +12 -0
  7. data/lib/blank_template/_sass/main.scss +9 -0
  8. data/lib/blank_template/assets/css/main.scss +4 -0
  9. data/lib/blank_template/index.md +8 -0
  10. data/lib/jekyll.rb +10 -1
  11. data/lib/jekyll/cache.rb +190 -0
  12. data/lib/jekyll/cleaner.rb +5 -4
  13. data/lib/jekyll/collection.rb +82 -10
  14. data/lib/jekyll/command.rb +33 -6
  15. data/lib/jekyll/commands/build.rb +11 -20
  16. data/lib/jekyll/commands/clean.rb +2 -0
  17. data/lib/jekyll/commands/doctor.rb +15 -8
  18. data/lib/jekyll/commands/help.rb +1 -1
  19. data/lib/jekyll/commands/new.rb +37 -35
  20. data/lib/jekyll/commands/new_theme.rb +30 -28
  21. data/lib/jekyll/commands/serve.rb +55 -81
  22. data/lib/jekyll/commands/serve/live_reload_reactor.rb +6 -10
  23. data/lib/jekyll/commands/serve/servlet.rb +22 -25
  24. data/lib/jekyll/commands/serve/websockets.rb +1 -1
  25. data/lib/jekyll/configuration.rb +61 -149
  26. data/lib/jekyll/converters/identity.rb +18 -0
  27. data/lib/jekyll/converters/markdown.rb +49 -40
  28. data/lib/jekyll/converters/markdown/kramdown_parser.rb +84 -11
  29. data/lib/jekyll/converters/smartypants.rb +34 -14
  30. data/lib/jekyll/convertible.rb +30 -31
  31. data/lib/jekyll/deprecator.rb +1 -3
  32. data/lib/jekyll/document.rb +89 -61
  33. data/lib/jekyll/drops/collection_drop.rb +2 -3
  34. data/lib/jekyll/drops/document_drop.rb +14 -1
  35. data/lib/jekyll/drops/drop.rb +17 -14
  36. data/lib/jekyll/drops/excerpt_drop.rb +4 -0
  37. data/lib/jekyll/drops/page_drop.rb +18 -0
  38. data/lib/jekyll/drops/site_drop.rb +6 -5
  39. data/lib/jekyll/drops/unified_payload_drop.rb +1 -0
  40. data/lib/jekyll/drops/url_drop.rb +53 -1
  41. data/lib/jekyll/entry_filter.rb +42 -45
  42. data/lib/jekyll/excerpt.rb +45 -34
  43. data/lib/jekyll/external.rb +10 -5
  44. data/lib/jekyll/filters.rb +200 -40
  45. data/lib/jekyll/filters/date_filters.rb +6 -3
  46. data/lib/jekyll/filters/grouping_filters.rb +1 -2
  47. data/lib/jekyll/filters/url_filters.rb +46 -14
  48. data/lib/jekyll/frontmatter_defaults.rb +46 -35
  49. data/lib/jekyll/hooks.rb +4 -8
  50. data/lib/jekyll/inclusion.rb +32 -0
  51. data/lib/jekyll/liquid_extensions.rb +0 -2
  52. data/lib/jekyll/liquid_renderer.rb +31 -16
  53. data/lib/jekyll/liquid_renderer/file.rb +24 -3
  54. data/lib/jekyll/liquid_renderer/table.rb +36 -77
  55. data/lib/jekyll/log_adapter.rb +5 -1
  56. data/lib/jekyll/mime.types +53 -11
  57. data/lib/jekyll/page.rb +54 -12
  58. data/lib/jekyll/page_excerpt.rb +26 -0
  59. data/lib/jekyll/page_without_a_file.rb +0 -4
  60. data/lib/jekyll/path_manager.rb +31 -0
  61. data/lib/jekyll/plugin.rb +5 -11
  62. data/lib/jekyll/plugin_manager.rb +2 -0
  63. data/lib/jekyll/profiler.rb +58 -0
  64. data/lib/jekyll/reader.rb +42 -9
  65. data/lib/jekyll/readers/collection_reader.rb +1 -0
  66. data/lib/jekyll/readers/data_reader.rb +8 -9
  67. data/lib/jekyll/readers/layout_reader.rb +3 -12
  68. data/lib/jekyll/readers/page_reader.rb +5 -5
  69. data/lib/jekyll/readers/post_reader.rb +31 -18
  70. data/lib/jekyll/readers/static_file_reader.rb +4 -4
  71. data/lib/jekyll/readers/theme_assets_reader.rb +8 -5
  72. data/lib/jekyll/regenerator.rb +4 -12
  73. data/lib/jekyll/renderer.rb +23 -40
  74. data/lib/jekyll/site.rb +91 -38
  75. data/lib/jekyll/static_file.rb +62 -21
  76. data/lib/jekyll/stevenson.rb +2 -3
  77. data/lib/jekyll/tags/highlight.rb +19 -51
  78. data/lib/jekyll/tags/include.rb +82 -42
  79. data/lib/jekyll/tags/link.rb +11 -7
  80. data/lib/jekyll/tags/post_url.rb +25 -21
  81. data/lib/jekyll/theme.rb +16 -18
  82. data/lib/jekyll/theme_builder.rb +91 -89
  83. data/lib/jekyll/url.rb +10 -5
  84. data/lib/jekyll/utils.rb +18 -21
  85. data/lib/jekyll/utils/ansi.rb +1 -1
  86. data/lib/jekyll/utils/exec.rb +0 -1
  87. data/lib/jekyll/utils/internet.rb +2 -4
  88. data/lib/jekyll/utils/platforms.rb +8 -8
  89. data/lib/jekyll/utils/thread_event.rb +1 -5
  90. data/lib/jekyll/utils/win_tz.rb +2 -2
  91. data/lib/jekyll/version.rb +1 -1
  92. data/lib/site_template/.gitignore +2 -0
  93. data/lib/site_template/404.html +1 -0
  94. data/lib/site_template/_config.yml +17 -5
  95. data/lib/site_template/_posts/0000-00-00-welcome-to-jekyll.markdown.erb +5 -1
  96. data/lib/site_template/{about.md → about.markdown} +0 -0
  97. data/lib/site_template/{index.md → index.markdown} +0 -0
  98. data/lib/theme_template/gitignore.erb +1 -0
  99. data/lib/theme_template/theme.gemspec.erb +1 -4
  100. data/rubocop/jekyll/assert_equal_literal_actual.rb +149 -0
  101. metadata +69 -31
  102. data/lib/jekyll/converters/markdown/rdiscount_parser.rb +0 -37
  103. data/lib/jekyll/converters/markdown/redcarpet_parser.rb +0 -112
  104. data/lib/jekyll/utils/rouge.rb +0 -22
metadata CHANGED
@@ -1,14 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.8.7
4
+ version: 4.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Preston-Werner
8
+ - Parker Moore
9
+ - Matt Rogers
8
10
  autorequire:
9
11
  bindir: exe
10
12
  cert_chain: []
11
- date: 2020-05-08 00:00:00.000000000 Z
13
+ date: 2020-05-27 00:00:00.000000000 Z
12
14
  dependencies:
13
15
  - !ruby/object:Gem::Dependency
14
16
  name: addressable
@@ -58,28 +60,28 @@ dependencies:
58
60
  requirements:
59
61
  - - "~>"
60
62
  - !ruby/object:Gem::Version
61
- version: '0.7'
63
+ version: '1.0'
62
64
  type: :runtime
63
65
  prerelease: false
64
66
  version_requirements: !ruby/object:Gem::Requirement
65
67
  requirements:
66
68
  - - "~>"
67
69
  - !ruby/object:Gem::Version
68
- version: '0.7'
70
+ version: '1.0'
69
71
  - !ruby/object:Gem::Dependency
70
72
  name: jekyll-sass-converter
71
73
  requirement: !ruby/object:Gem::Requirement
72
74
  requirements:
73
75
  - - "~>"
74
76
  - !ruby/object:Gem::Version
75
- version: '1.0'
77
+ version: '2.0'
76
78
  type: :runtime
77
79
  prerelease: false
78
80
  version_requirements: !ruby/object:Gem::Requirement
79
81
  requirements:
80
82
  - - "~>"
81
83
  - !ruby/object:Gem::Version
82
- version: '1.0'
84
+ version: '2.0'
83
85
  - !ruby/object:Gem::Dependency
84
86
  name: jekyll-watch
85
87
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +102,28 @@ dependencies:
100
102
  requirements:
101
103
  - - "~>"
102
104
  - !ruby/object:Gem::Version
103
- version: '1.14'
105
+ version: '2.1'
106
+ type: :runtime
107
+ prerelease: false
108
+ version_requirements: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - "~>"
111
+ - !ruby/object:Gem::Version
112
+ version: '2.1'
113
+ - !ruby/object:Gem::Dependency
114
+ name: kramdown-parser-gfm
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: '1.0'
104
120
  type: :runtime
105
121
  prerelease: false
106
122
  version_requirements: !ruby/object:Gem::Requirement
107
123
  requirements:
108
124
  - - "~>"
109
125
  - !ruby/object:Gem::Version
110
- version: '1.14'
126
+ version: '1.0'
111
127
  - !ruby/object:Gem::Dependency
112
128
  name: liquid
113
129
  requirement: !ruby/object:Gem::Requirement
@@ -128,14 +144,14 @@ dependencies:
128
144
  requirements:
129
145
  - - "~>"
130
146
  - !ruby/object:Gem::Version
131
- version: 0.3.3
147
+ version: 0.4.0
132
148
  type: :runtime
133
149
  prerelease: false
134
150
  version_requirements: !ruby/object:Gem::Requirement
135
151
  requirements:
136
152
  - - "~>"
137
153
  - !ruby/object:Gem::Version
138
- version: 0.3.3
154
+ version: 0.4.0
139
155
  - !ruby/object:Gem::Dependency
140
156
  name: pathutil
141
157
  requirement: !ruby/object:Gem::Requirement
@@ -154,22 +170,16 @@ dependencies:
154
170
  name: rouge
155
171
  requirement: !ruby/object:Gem::Requirement
156
172
  requirements:
157
- - - ">="
158
- - !ruby/object:Gem::Version
159
- version: '1.7'
160
- - - "<"
173
+ - - "~>"
161
174
  - !ruby/object:Gem::Version
162
- version: '4'
175
+ version: '3.0'
163
176
  type: :runtime
164
177
  prerelease: false
165
178
  version_requirements: !ruby/object:Gem::Requirement
166
179
  requirements:
167
- - - ">="
168
- - !ruby/object:Gem::Version
169
- version: '1.7'
170
- - - "<"
180
+ - - "~>"
171
181
  - !ruby/object:Gem::Version
172
- version: '4'
182
+ version: '3.0'
173
183
  - !ruby/object:Gem::Dependency
174
184
  name: safe_yaml
175
185
  requirement: !ruby/object:Gem::Requirement
@@ -184,8 +194,23 @@ dependencies:
184
194
  - - "~>"
185
195
  - !ruby/object:Gem::Version
186
196
  version: '1.0'
197
+ - !ruby/object:Gem::Dependency
198
+ name: terminal-table
199
+ requirement: !ruby/object:Gem::Requirement
200
+ requirements:
201
+ - - "~>"
202
+ - !ruby/object:Gem::Version
203
+ version: '1.8'
204
+ type: :runtime
205
+ prerelease: false
206
+ version_requirements: !ruby/object:Gem::Requirement
207
+ requirements:
208
+ - - "~>"
209
+ - !ruby/object:Gem::Version
210
+ version: '1.8'
187
211
  description: Jekyll is a simple, blog aware, static site generator.
188
- email: tom@mojombo.com
212
+ email:
213
+ - maintainers@jekyllrb.com
189
214
  executables:
190
215
  - jekyll
191
216
  extensions: []
@@ -197,7 +222,13 @@ files:
197
222
  - LICENSE
198
223
  - README.markdown
199
224
  - exe/jekyll
225
+ - lib/blank_template/_config.yml
226
+ - lib/blank_template/_layouts/default.html
227
+ - lib/blank_template/_sass/main.scss
228
+ - lib/blank_template/assets/css/main.scss
229
+ - lib/blank_template/index.md
200
230
  - lib/jekyll.rb
231
+ - lib/jekyll/cache.rb
201
232
  - lib/jekyll/cleaner.rb
202
233
  - lib/jekyll/collection.rb
203
234
  - lib/jekyll/command.rb
@@ -217,8 +248,6 @@ files:
217
248
  - lib/jekyll/converters/identity.rb
218
249
  - lib/jekyll/converters/markdown.rb
219
250
  - lib/jekyll/converters/markdown/kramdown_parser.rb
220
- - lib/jekyll/converters/markdown/rdiscount_parser.rb
221
- - lib/jekyll/converters/markdown/redcarpet_parser.rb
222
251
  - lib/jekyll/converters/smartypants.rb
223
252
  - lib/jekyll/convertible.rb
224
253
  - lib/jekyll/deprecator.rb
@@ -228,6 +257,7 @@ files:
228
257
  - lib/jekyll/drops/drop.rb
229
258
  - lib/jekyll/drops/excerpt_drop.rb
230
259
  - lib/jekyll/drops/jekyll_drop.rb
260
+ - lib/jekyll/drops/page_drop.rb
231
261
  - lib/jekyll/drops/site_drop.rb
232
262
  - lib/jekyll/drops/static_file_drop.rb
233
263
  - lib/jekyll/drops/unified_payload_drop.rb
@@ -243,6 +273,7 @@ files:
243
273
  - lib/jekyll/frontmatter_defaults.rb
244
274
  - lib/jekyll/generator.rb
245
275
  - lib/jekyll/hooks.rb
276
+ - lib/jekyll/inclusion.rb
246
277
  - lib/jekyll/layout.rb
247
278
  - lib/jekyll/liquid_extensions.rb
248
279
  - lib/jekyll/liquid_renderer.rb
@@ -251,9 +282,12 @@ files:
251
282
  - lib/jekyll/log_adapter.rb
252
283
  - lib/jekyll/mime.types
253
284
  - lib/jekyll/page.rb
285
+ - lib/jekyll/page_excerpt.rb
254
286
  - lib/jekyll/page_without_a_file.rb
287
+ - lib/jekyll/path_manager.rb
255
288
  - lib/jekyll/plugin.rb
256
289
  - lib/jekyll/plugin_manager.rb
290
+ - lib/jekyll/profiler.rb
257
291
  - lib/jekyll/publisher.rb
258
292
  - lib/jekyll/reader.rb
259
293
  - lib/jekyll/readers/collection_reader.rb
@@ -281,7 +315,6 @@ files:
281
315
  - lib/jekyll/utils/exec.rb
282
316
  - lib/jekyll/utils/internet.rb
283
317
  - lib/jekyll/utils/platforms.rb
284
- - lib/jekyll/utils/rouge.rb
285
318
  - lib/jekyll/utils/thread_event.rb
286
319
  - lib/jekyll/utils/win_tz.rb
287
320
  - lib/jekyll/version.rb
@@ -289,8 +322,8 @@ files:
289
322
  - lib/site_template/404.html
290
323
  - lib/site_template/_config.yml
291
324
  - lib/site_template/_posts/0000-00-00-welcome-to-jekyll.markdown.erb
292
- - lib/site_template/about.md
293
- - lib/site_template/index.md
325
+ - lib/site_template/about.markdown
326
+ - lib/site_template/index.markdown
294
327
  - lib/theme_template/CODE_OF_CONDUCT.md.erb
295
328
  - lib/theme_template/Gemfile
296
329
  - lib/theme_template/LICENSE.txt.erb
@@ -305,12 +338,17 @@ files:
305
338
  - lib/theme_template/gitignore.erb
306
339
  - lib/theme_template/theme.gemspec.erb
307
340
  - rubocop/jekyll.rb
341
+ - rubocop/jekyll/assert_equal_literal_actual.rb
308
342
  - rubocop/jekyll/no_p_allowed.rb
309
343
  - rubocop/jekyll/no_puts_allowed.rb
310
- homepage: https://github.com/jekyll/jekyll
344
+ homepage: https://jekyllrb.com
311
345
  licenses:
312
346
  - MIT
313
- metadata: {}
347
+ metadata:
348
+ source_code_uri: https://github.com/jekyll/jekyll
349
+ bug_tracker_uri: https://github.com/jekyll/jekyll/issues
350
+ changelog_uri: https://github.com/jekyll/jekyll/releases
351
+ homepage_uri: https://jekyllrb.com
314
352
  post_install_message:
315
353
  rdoc_options:
316
354
  - "--charset=UTF-8"
@@ -320,15 +358,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
320
358
  requirements:
321
359
  - - ">="
322
360
  - !ruby/object:Gem::Version
323
- version: 2.1.0
361
+ version: 2.4.0
324
362
  required_rubygems_version: !ruby/object:Gem::Requirement
325
363
  requirements:
326
364
  - - ">="
327
365
  - !ruby/object:Gem::Version
328
- version: '0'
366
+ version: 2.7.0
329
367
  requirements: []
330
368
  rubygems_version: 3.1.2
331
369
  signing_key:
332
- specification_version: 2
370
+ specification_version: 4
333
371
  summary: A simple, blog aware, static site generator.
334
372
  test_files: []
@@ -1,37 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Jekyll
4
- module Converters
5
- class Markdown
6
- class RDiscountParser
7
- def initialize(config)
8
- unless defined?(RDiscount)
9
- Jekyll::External.require_with_graceful_fail "rdiscount"
10
- end
11
- @config = config
12
- @rdiscount_extensions = @config["rdiscount"]["extensions"].map(&:to_sym)
13
- end
14
-
15
- def convert(content)
16
- rd = RDiscount.new(content, *@rdiscount_extensions)
17
- html = rd.to_html
18
- if @config["rdiscount"]["toc_token"]
19
- html = replace_generated_toc(rd, html, @config["rdiscount"]["toc_token"])
20
- end
21
- html
22
- end
23
-
24
- private
25
- def replace_generated_toc(rd_instance, html, toc_token)
26
- if rd_instance.generate_toc && html.include?(toc_token)
27
- utf8_toc = rd_instance.toc_content
28
- utf8_toc.force_encoding("utf-8") if utf8_toc.respond_to?(:force_encoding)
29
- html.gsub(toc_token, utf8_toc)
30
- else
31
- html
32
- end
33
- end
34
- end
35
- end
36
- end
37
- end
@@ -1,112 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class Jekyll::Converters::Markdown::RedcarpetParser
4
- module CommonMethods
5
- def add_code_tags(code, lang)
6
- code = code.to_s
7
- code = code.sub(
8
- %r!<pre>!,
9
- "<pre><code class=\"language-#{lang}\" data-lang=\"#{lang}\">"
10
- )
11
- code = code.sub(%r!</pre>!, "</code></pre>")
12
- code
13
- end
14
- end
15
-
16
- module WithPygments
17
- include CommonMethods
18
- def block_code(code, lang)
19
- unless defined?(Pygments)
20
- Jekyll::External.require_with_graceful_fail("pygments")
21
- end
22
- lang = lang && lang.split.first || "text"
23
- add_code_tags(
24
- Pygments.highlight(
25
- code,
26
- {
27
- :lexer => lang,
28
- :options => { :encoding => "utf-8" },
29
- }
30
- ),
31
- lang
32
- )
33
- end
34
- end
35
-
36
- module WithoutHighlighting
37
- require "cgi"
38
-
39
- include CommonMethods
40
-
41
- def code_wrap(code)
42
- "<figure class=\"highlight\"><pre>#{CGI.escapeHTML(code)}</pre></figure>"
43
- end
44
-
45
- def block_code(code, lang)
46
- lang = lang && lang.split.first || "text"
47
- add_code_tags(code_wrap(code), lang)
48
- end
49
- end
50
-
51
- module WithRouge
52
- def block_code(_code, lang)
53
- code = "<pre>#{super}</pre>"
54
-
55
- "<div class=\"highlight\">#{add_code_tags(code, lang)}</div>"
56
- end
57
-
58
- protected
59
- def rouge_formatter(_lexer)
60
- Jekyll::Utils::Rouge.html_formatter(:wrap => false)
61
- end
62
- end
63
-
64
- def initialize(config)
65
- unless defined?(Redcarpet)
66
- Jekyll::External.require_with_graceful_fail("redcarpet")
67
- end
68
- @config = config
69
- @redcarpet_extensions = {}
70
- @config["redcarpet"]["extensions"].each do |e|
71
- @redcarpet_extensions[e.to_sym] = true
72
- end
73
-
74
- @renderer ||= class_with_proper_highlighter(@config["highlighter"])
75
- end
76
-
77
- def class_with_proper_highlighter(highlighter)
78
- Class.new(Redcarpet::Render::HTML) do
79
- case highlighter
80
- when "pygments"
81
- include WithPygments
82
- when "rouge"
83
- Jekyll::External.require_with_graceful_fail(%w(
84
- rouge rouge/plugins/redcarpet
85
- ))
86
-
87
- unless Gem::Version.new(Rouge.version) > Gem::Version.new("1.3.0")
88
- abort "Please install Rouge 1.3.0 or greater and try running Jekyll again."
89
- end
90
-
91
- include Rouge::Plugins::Redcarpet
92
- include CommonMethods
93
- include WithRouge
94
- else
95
- include WithoutHighlighting
96
- end
97
- end
98
- end
99
-
100
- def convert(content)
101
- @redcarpet_extensions[:fenced_code_blocks] = \
102
- !@redcarpet_extensions[:no_fenced_code_blocks]
103
- if @redcarpet_extensions[:smart]
104
- @renderer.send :include, Redcarpet::Render::SmartyPants
105
- end
106
- markdown = Redcarpet::Markdown.new(
107
- @renderer.new(@redcarpet_extensions),
108
- @redcarpet_extensions
109
- )
110
- markdown.render(content)
111
- end
112
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Jekyll::External.require_with_graceful_fail("rouge")
4
-
5
- module Jekyll
6
- module Utils
7
- module Rouge
8
-
9
- def self.html_formatter(*args)
10
- if old_api?
11
- ::Rouge::Formatters::HTML.new(*args)
12
- else
13
- ::Rouge::Formatters::HTMLLegacy.new(*args)
14
- end
15
- end
16
-
17
- def self.old_api?
18
- ::Rouge.version.to_s < "2"
19
- end
20
- end
21
- end
22
- end