jekyll 3.2.0.pre.beta1 → 3.2.0.pre.beta2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of jekyll might be problematic. Click here for more details.

Files changed (89) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +17 -95
  3. data/README.markdown +6 -4
  4. data/{bin → exe}/jekyll +18 -14
  5. data/lib/jekyll.rb +79 -76
  6. data/lib/jekyll/collection.rb +32 -16
  7. data/lib/jekyll/command.rb +17 -13
  8. data/lib/jekyll/commands/build.rb +7 -2
  9. data/lib/jekyll/commands/doctor.rb +3 -1
  10. data/lib/jekyll/commands/new.rb +3 -0
  11. data/lib/jekyll/commands/new_theme.rb +7 -4
  12. data/lib/jekyll/commands/serve.rb +2 -0
  13. data/lib/jekyll/commands/serve/servlet.rb +2 -2
  14. data/lib/jekyll/configuration.rb +187 -125
  15. data/lib/jekyll/converters/markdown.rb +19 -9
  16. data/lib/jekyll/converters/markdown/kramdown_parser.rb +12 -5
  17. data/lib/jekyll/converters/markdown/rdiscount_parser.rb +4 -4
  18. data/lib/jekyll/converters/markdown/redcarpet_parser.rb +90 -84
  19. data/lib/jekyll/convertible.rb +34 -21
  20. data/lib/jekyll/deprecator.rb +11 -6
  21. data/lib/jekyll/document.rb +52 -50
  22. data/lib/jekyll/drops/document_drop.rb +40 -5
  23. data/lib/jekyll/drops/drop.rb +49 -10
  24. data/lib/jekyll/drops/excerpt_drop.rb +15 -0
  25. data/lib/jekyll/drops/jekyll_drop.rb +12 -0
  26. data/lib/jekyll/drops/site_drop.rb +4 -2
  27. data/lib/jekyll/drops/url_drop.rb +4 -4
  28. data/lib/jekyll/entry_filter.rb +9 -6
  29. data/lib/jekyll/errors.rb +4 -3
  30. data/lib/jekyll/excerpt.rb +4 -6
  31. data/lib/jekyll/external.rb +4 -4
  32. data/lib/jekyll/filters.rb +67 -34
  33. data/lib/jekyll/frontmatter_defaults.rb +45 -38
  34. data/lib/jekyll/hooks.rb +21 -21
  35. data/lib/jekyll/layout.rb +3 -1
  36. data/lib/jekyll/liquid_renderer.rb +7 -3
  37. data/lib/jekyll/liquid_renderer/file.rb +1 -1
  38. data/lib/jekyll/liquid_renderer/table.rb +11 -11
  39. data/lib/jekyll/log_adapter.rb +2 -2
  40. data/lib/jekyll/page.rb +10 -10
  41. data/lib/jekyll/plugin.rb +5 -5
  42. data/lib/jekyll/plugin_manager.rb +12 -8
  43. data/lib/jekyll/publisher.rb +1 -1
  44. data/lib/jekyll/reader.rb +11 -7
  45. data/lib/jekyll/readers/data_reader.rb +9 -9
  46. data/lib/jekyll/readers/layout_reader.rb +7 -7
  47. data/lib/jekyll/readers/page_reader.rb +3 -1
  48. data/lib/jekyll/readers/post_reader.rb +9 -10
  49. data/lib/jekyll/readers/static_file_reader.rb +3 -1
  50. data/lib/jekyll/regenerator.rb +50 -28
  51. data/lib/jekyll/related_posts.rb +1 -1
  52. data/lib/jekyll/renderer.rb +29 -20
  53. data/lib/jekyll/site.rb +92 -50
  54. data/lib/jekyll/static_file.rb +33 -26
  55. data/lib/jekyll/stevenson.rb +6 -5
  56. data/lib/jekyll/tags/highlight.rb +50 -35
  57. data/lib/jekyll/tags/include.rb +42 -31
  58. data/lib/jekyll/tags/link.rb +11 -4
  59. data/lib/jekyll/tags/post_url.rb +8 -7
  60. data/lib/jekyll/theme.rb +4 -3
  61. data/lib/jekyll/theme_builder.rb +18 -6
  62. data/lib/jekyll/url.rb +21 -14
  63. data/lib/jekyll/utils.rb +57 -28
  64. data/lib/jekyll/utils/ansi.rb +9 -9
  65. data/lib/jekyll/utils/platforms.rb +2 -2
  66. data/lib/jekyll/version.rb +1 -1
  67. data/lib/site_template/_config.yml +2 -0
  68. data/lib/site_template/css/main.scss +3 -17
  69. data/lib/theme_template/_layouts/default.html +1 -0
  70. data/lib/theme_template/_layouts/page.html +5 -0
  71. data/lib/theme_template/_layouts/post.html +5 -0
  72. data/lib/theme_template/example/_post.md +1 -2
  73. data/lib/theme_template/example/index.html +2 -2
  74. data/lib/theme_template/gitignore.erb +4 -0
  75. data/lib/theme_template/theme.gemspec.erb +2 -6
  76. metadata +10 -18
  77. data/lib/site_template/_includes/footer.html +0 -38
  78. data/lib/site_template/_includes/head.html +0 -12
  79. data/lib/site_template/_includes/header.html +0 -27
  80. data/lib/site_template/_includes/icon-github.html +0 -1
  81. data/lib/site_template/_includes/icon-github.svg +0 -1
  82. data/lib/site_template/_includes/icon-twitter.html +0 -1
  83. data/lib/site_template/_includes/icon-twitter.svg +0 -1
  84. data/lib/site_template/_layouts/default.html +0 -20
  85. data/lib/site_template/_layouts/page.html +0 -14
  86. data/lib/site_template/_layouts/post.html +0 -15
  87. data/lib/site_template/_sass/_base.scss +0 -200
  88. data/lib/site_template/_sass/_layout.scss +0 -242
  89. data/lib/site_template/_sass/_syntax-highlighting.scss +0 -71
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a7707dfb4ade1518698a36a852ac7cd164d8f094
4
- data.tar.gz: afad1c82e3c93f9e33c6c307d572810e088516f0
3
+ metadata.gz: 6b7bb5f6deedf2cb6282ffec118cc3f9a3f76759
4
+ data.tar.gz: 77353178dc51e04a8b773150beb7c987ec49f8c0
5
5
  SHA512:
6
- metadata.gz: 23b2878e2d752a8cab1997381fe0dd999562c77dbba4d7fb19d52c0c24fe82c726508cbb4e22e3f48e5b9d793e981fb67a6e7bb2707754cbbf8ec8ac780b22a9
7
- data.tar.gz: b463648247640ca9d3f60bb25a592cfd0569bce4627fd6cd2396ec394eb123fe352620472c8d1e4dab1b2edc66844f1c1d2f5d7e1896834b4c377b8ba3744f2d
6
+ metadata.gz: a3b5990ea04d2f19653f522a1e0f853ad6b005c470483ecf37b93e37d872629963c50eed480b833afb9ea6af548d686ffd032f1f8e051a5b699547f22e414872
7
+ data.tar.gz: 1430e36ff3d6e8a08cf7b708d90eb27d584b21a2e4243f2e5465761a63814b2aeef40ac0f2861d1b8cc058166380a167ff90a8fa40a857446e966cf4c8cf5b13
@@ -2,94 +2,15 @@
2
2
  AllCops:
3
3
  TargetRubyVersion: 2.0
4
4
  Include:
5
- - lib/**/*.rb
5
+ - lib/**/*.rb
6
6
  Exclude:
7
- - lib/jekyll/collection.rb
8
- - lib/jekyll/command.rb
9
- - lib/jekyll/configuration.rb
10
- - lib/jekyll/converter.rb
11
- - lib/jekyll/converters/identity.rb
12
- - lib/jekyll/converters/markdown
13
- - lib/jekyll/converters/markdown/kramdown_parser.rb
14
- - lib/jekyll/converters/markdown/rdiscount_parser.rb
15
- - lib/jekyll/converters/markdown/redcarpet_parser.rb
16
- - lib/jekyll/converters/markdown.rb
17
- - lib/jekyll/converters/smartypants.rb
18
- - lib/jekyll/convertible.rb
19
- - lib/jekyll/deprecator.rb
20
- - lib/jekyll/document.rb
21
- - lib/jekyll/drops/collection_drop.rb
22
- - lib/jekyll/drops/document_drop.rb
23
- - lib/jekyll/drops/drop.rb
24
- - lib/jekyll/drops/jekyll_drop.rb
25
- - lib/jekyll/drops/site_drop.rb
26
- - lib/jekyll/drops/unified_payload_drop.rb
27
- - lib/jekyll/drops/url_drop.rb
28
- - lib/jekyll/entry_filter.rb
29
- - lib/jekyll/errors.rb
30
- - lib/jekyll/excerpt.rb
31
- - lib/jekyll/external.rb
32
- - lib/jekyll/filters.rb
33
- - lib/jekyll/frontmatter_defaults.rb
34
- - lib/jekyll/generator.rb
35
- - lib/jekyll/hooks.rb
36
- - lib/jekyll/layout.rb
37
- - lib/jekyll/liquid_extensions.rb
38
- - lib/jekyll/liquid_renderer/file.rb
39
- - lib/jekyll/liquid_renderer/table.rb
40
- - lib/jekyll/liquid_renderer.rb
41
- - lib/jekyll/log_adapter.rb
42
- - lib/jekyll/page.rb
43
- - lib/jekyll/plugin.rb
44
- - lib/jekyll/plugin_manager.rb
45
- - lib/jekyll/publisher.rb
46
- - lib/jekyll/reader.rb
47
- - lib/jekyll/readers/collection_reader.rb
48
- - lib/jekyll/readers/data_reader.rb
49
- - lib/jekyll/readers/layout_reader.rb
50
- - lib/jekyll/readers/page_reader.rb
51
- - lib/jekyll/readers/post_reader.rb
52
- - lib/jekyll/readers/static_file_reader.rb
53
- - lib/jekyll/regenerator.rb
54
- - lib/jekyll/related_posts.rb
55
- - lib/jekyll/renderer.rb
56
- - lib/jekyll/site.rb
57
- - lib/jekyll/static_file.rb
58
- - lib/jekyll/stevenson.rb
59
- - lib/jekyll/tags/highlight.rb
60
- - lib/jekyll/tags/include.rb
61
- - lib/jekyll/tags/link.rb
62
- - lib/jekyll/tags/post_url.rb
63
- - lib/jekyll/theme.rb
64
- - lib/jekyll/url.rb
65
- - lib/jekyll/utils/ansi.rb
66
- - lib/jekyll/utils/platforms.rb
67
- - lib/jekyll/utils.rb
68
- - lib/jekyll/version.rb
69
- - lib/jekyll.rb
70
- - features/step_definitions.rb
71
- - features/support/formatter.rb
72
- - features/support/helpers.rb
73
- - test/test_configuration.rb
74
- - test/test_document.rb
75
- - test/test_entry_filter.rb
76
- - test/test_filters.rb
77
- - test/test_kramdown.rb
78
- - test/test_liquid_renderer.rb
79
- - test/test_page.rb
80
- - test/test_regenerator.rb
81
- - test/test_related_posts.rb
82
- - test/test_sass.rb
83
- - test/test_site.rb
84
- - test/test_static_file.rb
85
- - test/test_tags.rb
86
- - test/test_theme.rb
87
- - test/test_url.rb
88
- - test/test_utils.rb
89
- - bin/**/*
90
- - benchmark/**/*
91
- - script/**/*
92
- - vendor/**/*
7
+ - lib/jekyll/convertible.rb
8
+ - lib/jekyll/document.rb
9
+ - lib/jekyll/renderer.rb
10
+ - bin/**/*
11
+ - benchmark/**/*
12
+ - script/**/*
13
+ - vendor/**/*
93
14
  Lint/EndAlignment:
94
15
  Severity: error
95
16
  Lint/UnreachableCode:
@@ -99,19 +20,20 @@ Lint/UselessAccessModifier:
99
20
  Metrics/AbcSize:
100
21
  Max: 20
101
22
  Metrics/ClassLength:
102
- Max: 240
103
23
  Exclude:
104
- - !ruby/regexp /features\/.*.rb$/
24
+ - !ruby/regexp /features\/.*.rb$/
25
+ - !ruby/regexp /test\/.*.rb$/
26
+ Max: 300
105
27
  Metrics/CyclomaticComplexity:
106
28
  Max: 8
107
29
  Metrics/LineLength:
30
+ Exclude:
31
+ - !ruby/regexp /features\/.*.rb/
108
32
  Max: 90
109
33
  Severity: warning
110
- Exclude:
111
- - !ruby/regexp /features\/.*.rb/
112
34
  Metrics/MethodLength:
113
- Max: 20
114
35
  CountComments: false
36
+ Max: 20
115
37
  Severity: error
116
38
  Metrics/ModuleLength:
117
39
  Max: 240
@@ -126,8 +48,8 @@ Style/AlignArray:
126
48
  Style/AlignHash:
127
49
  EnforcedHashRocketStyle: table
128
50
  Style/AlignParameters:
129
- EnforcedStyle: with_fixed_indentation
130
51
  Enabled: false
52
+ EnforcedStyle: with_fixed_indentation
131
53
  Style/AndOr:
132
54
  Severity: error
133
55
  Style/Attr:
@@ -139,7 +61,7 @@ Style/ClassAndModuleChildren:
139
61
  Style/Documentation:
140
62
  Enabled: false
141
63
  Exclude:
142
- - !ruby/regexp /features\/.*.rb$/
64
+ - !ruby/regexp /features\/.*.rb$/
143
65
  Style/DoubleNegation:
144
66
  Enabled: false
145
67
  Style/EmptyLinesAroundAccessModifier:
@@ -187,7 +109,7 @@ Style/RedundantReturn:
187
109
  Style/RedundantSelf:
188
110
  Enabled: false
189
111
  Style/RegexpLiteral:
190
- EnforcedStyle: slashes
112
+ EnforcedStyle: percent_r
191
113
  Style/RescueModifier:
192
114
  Enabled: false
193
115
  Style/SignalException:
@@ -1,10 +1,11 @@
1
1
  # [Jekyll](https://jekyllrb.com/)
2
2
 
3
3
  [![Gem Version](https://img.shields.io/gem/v/jekyll.svg)][ruby-gems]
4
- [![Build Status](https://travis-ci.org/jekyll/jekyll.svg?branch=master)][travis]
5
- [![Test Coverage](https://codeclimate.com/github/jekyll/jekyll/badges/coverage.svg)][coverage]
6
- [![Code Climate](https://codeclimate.com/github/jekyll/jekyll/badges/gpa.svg)][codeclimate]
7
- [![Dependency Status](https://gemnasium.com/jekyll/jekyll.svg)][gemnasium]
4
+ [![Linux Build Status](https://img.shields.io/travis/jekyll/jekyll/master.svg?label=Linux%20build)][travis]
5
+ [![Windows Build status](https://img.shields.io/appveyor/ci/jekyll/jekyll/master.svg?label=Windows%20build)][appveyor]
6
+ [![Test Coverage](https://img.shields.io/codeclimate/coverage/github/jekyll/jekyll.svg)][coverage]
7
+ [![Code Climate](https://img.shields.io/codeclimate/github/jekyll/jekyll.svg)][codeclimate]
8
+ [![Dependency Status](https://img.shields.io/gemnasium/jekyll/jekyll.svg)][gemnasium]
8
9
  [![Security](https://hakiri.io/github/jekyll/jekyll/master.svg)][hakiri]
9
10
 
10
11
  [ruby-gems]: https://rubygems.org/gems/jekyll
@@ -13,6 +14,7 @@
13
14
  [coverage]: https://codeclimate.com/github/jekyll/jekyll/coverage
14
15
  [hakiri]: https://hakiri.io/github/jekyll/jekyll/master
15
16
  [travis]: https://travis-ci.org/jekyll/jekyll
17
+ [appveyor]: https://ci.appveyor.com/project/jekyll/jekyll/branch/master
16
18
 
17
19
  Jekyll is a simple, blog-aware, static site generator perfect for personal, project, or organization sites. Think of it like a file-based CMS, without all the complexity. Jekyll takes your content, renders Markdown and Liquid templates, and spits out a complete, static website ready to be served by Apache, Nginx or another web server. Jekyll is the engine behind [GitHub Pages](https://pages.github.com), which you can use to host sites right from your GitHub repositories.
18
20
 
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env ruby
2
2
  STDOUT.sync = true
3
3
 
4
- $LOAD_PATH.unshift File.join(File.dirname(__FILE__), *%w( .. lib ))
4
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), *%w(.. lib)))
5
5
 
6
- require 'jekyll'
7
- require 'mercenary'
6
+ require "jekyll"
7
+ require "mercenary"
8
8
 
9
9
  Jekyll::PluginManager.require_from_bundler
10
10
 
@@ -12,22 +12,26 @@ Jekyll::Deprecator.process(ARGV)
12
12
 
13
13
  Mercenary.program(:jekyll) do |p|
14
14
  p.version Jekyll::VERSION
15
- p.description 'Jekyll is a blog-aware, static site generator in Ruby'
16
- p.syntax 'jekyll <subcommand> [options]'
17
-
18
- p.option 'source', '-s', '--source [DIR]', 'Source directory (defaults to ./)'
19
- p.option 'destination', '-d', '--destination [DIR]', 'Destination directory (defaults to ./_site)'
20
- p.option 'safe', '--safe', 'Safe mode (defaults to false)'
21
- p.option 'plugins_dir', '-p', '--plugins PLUGINS_DIR1[,PLUGINS_DIR2[,...]]', Array, 'Plugins directory (defaults to ./_plugins)'
22
- p.option 'layouts_dir', '--layouts DIR', String, 'Layouts directory (defaults to ./_layouts)'
23
- p.option 'profile', '--profile', 'Generate a Liquid rendering profile'
15
+ p.description "Jekyll is a blog-aware, static site generator in Ruby"
16
+ p.syntax "jekyll <subcommand> [options]"
17
+
18
+ p.option "source", "-s", "--source [DIR]", "Source directory (defaults to ./)"
19
+ p.option "destination", "-d", "--destination [DIR]",
20
+ "Destination directory (defaults to ./_site)"
21
+ p.option "safe", "--safe", "Safe mode (defaults to false)"
22
+ p.option "plugins_dir", "-p", "--plugins PLUGINS_DIR1[,PLUGINS_DIR2[,...]]", Array,
23
+ "Plugins directory (defaults to ./_plugins)"
24
+ p.option "layouts_dir", "--layouts DIR", String,
25
+ "Layouts directory (defaults to ./_layouts)"
26
+ p.option "profile", "--profile", "Generate a Liquid rendering profile"
24
27
 
25
28
  Jekyll::External.require_if_present(Jekyll::External.blessed_gems) do |g|
26
- cmd = g.split('-').last
29
+ cmd = g.split("-").last
27
30
  p.command(cmd.to_sym) do |c|
28
31
  c.syntax cmd
29
32
  c.action do
30
- Jekyll.logger.abort_with "You must install the '#{g}' gem to use the 'jekyll #{cmd}' command."
33
+ Jekyll.logger.abort_with "You must install the '#{g}' gem" \
34
+ " to use the 'jekyll #{cmd}' command."
31
35
  end
32
36
  end
33
37
  end
@@ -6,79 +6,79 @@ $LOAD_PATH.unshift File.dirname(__FILE__) # For use/testing when no gem is insta
6
6
  #
7
7
  # Returns nothing.
8
8
  def require_all(path)
9
- glob = File.join(File.dirname(__FILE__), path, '*.rb')
10
- Dir[glob].each do |f|
9
+ glob = File.join(File.dirname(__FILE__), path, "*.rb")
10
+ Dir[glob].sort.each do |f|
11
11
  require f
12
12
  end
13
13
  end
14
14
 
15
15
  # rubygems
16
- require 'rubygems'
16
+ require "rubygems"
17
17
 
18
18
  # stdlib
19
19
  require "pathutil"
20
- require 'forwardable'
21
- require 'fileutils'
22
- require 'time'
23
- require 'English'
24
- require 'pathname'
25
- require 'logger'
26
- require 'set'
20
+ require "forwardable"
21
+ require "fileutils"
22
+ require "time"
23
+ require "English"
24
+ require "pathname"
25
+ require "logger"
26
+ require "set"
27
27
 
28
28
  # 3rd party
29
- require 'safe_yaml/load'
30
- require 'liquid'
31
- require 'kramdown'
32
- require 'colorator'
29
+ require "safe_yaml/load"
30
+ require "liquid"
31
+ require "kramdown"
32
+ require "colorator"
33
33
 
34
34
  SafeYAML::OPTIONS[:suppress_warnings] = true
35
35
 
36
36
  module Jekyll
37
37
  # internal requires
38
- autoload :Cleaner, 'jekyll/cleaner'
39
- autoload :Collection, 'jekyll/collection'
40
- autoload :Configuration, 'jekyll/configuration'
41
- autoload :Convertible, 'jekyll/convertible'
42
- autoload :Deprecator, 'jekyll/deprecator'
43
- autoload :Document, 'jekyll/document'
44
- autoload :Draft, 'jekyll/draft'
45
- autoload :EntryFilter, 'jekyll/entry_filter'
46
- autoload :Errors, 'jekyll/errors'
47
- autoload :Excerpt, 'jekyll/excerpt'
48
- autoload :External, 'jekyll/external'
49
- autoload :FrontmatterDefaults, 'jekyll/frontmatter_defaults'
50
- autoload :Hooks, 'jekyll/hooks'
51
- autoload :Layout, 'jekyll/layout'
52
- autoload :CollectionReader, 'jekyll/readers/collection_reader'
53
- autoload :DataReader, 'jekyll/readers/data_reader'
54
- autoload :LayoutReader, 'jekyll/readers/layout_reader'
55
- autoload :PostReader, 'jekyll/readers/post_reader'
56
- autoload :PageReader, 'jekyll/readers/page_reader'
57
- autoload :StaticFileReader, 'jekyll/readers/static_file_reader'
58
- autoload :LogAdapter, 'jekyll/log_adapter'
59
- autoload :Page, 'jekyll/page'
60
- autoload :PluginManager, 'jekyll/plugin_manager'
61
- autoload :Publisher, 'jekyll/publisher'
62
- autoload :Reader, 'jekyll/reader'
63
- autoload :Regenerator, 'jekyll/regenerator'
64
- autoload :RelatedPosts, 'jekyll/related_posts'
65
- autoload :Renderer, 'jekyll/renderer'
66
- autoload :LiquidRenderer, 'jekyll/liquid_renderer'
67
- autoload :Site, 'jekyll/site'
68
- autoload :StaticFile, 'jekyll/static_file'
69
- autoload :Stevenson, 'jekyll/stevenson'
70
- autoload :Theme, 'jekyll/theme'
71
- autoload :ThemeBuilder, 'jekyll/theme_builder'
72
- autoload :URL, 'jekyll/url'
73
- autoload :Utils, 'jekyll/utils'
74
- autoload :VERSION, 'jekyll/version'
38
+ autoload :Cleaner, "jekyll/cleaner"
39
+ autoload :Collection, "jekyll/collection"
40
+ autoload :Configuration, "jekyll/configuration"
41
+ autoload :Convertible, "jekyll/convertible"
42
+ autoload :Deprecator, "jekyll/deprecator"
43
+ autoload :Document, "jekyll/document"
44
+ autoload :Draft, "jekyll/draft"
45
+ autoload :EntryFilter, "jekyll/entry_filter"
46
+ autoload :Errors, "jekyll/errors"
47
+ autoload :Excerpt, "jekyll/excerpt"
48
+ autoload :External, "jekyll/external"
49
+ autoload :FrontmatterDefaults, "jekyll/frontmatter_defaults"
50
+ autoload :Hooks, "jekyll/hooks"
51
+ autoload :Layout, "jekyll/layout"
52
+ autoload :CollectionReader, "jekyll/readers/collection_reader"
53
+ autoload :DataReader, "jekyll/readers/data_reader"
54
+ autoload :LayoutReader, "jekyll/readers/layout_reader"
55
+ autoload :PostReader, "jekyll/readers/post_reader"
56
+ autoload :PageReader, "jekyll/readers/page_reader"
57
+ autoload :StaticFileReader, "jekyll/readers/static_file_reader"
58
+ autoload :LogAdapter, "jekyll/log_adapter"
59
+ autoload :Page, "jekyll/page"
60
+ autoload :PluginManager, "jekyll/plugin_manager"
61
+ autoload :Publisher, "jekyll/publisher"
62
+ autoload :Reader, "jekyll/reader"
63
+ autoload :Regenerator, "jekyll/regenerator"
64
+ autoload :RelatedPosts, "jekyll/related_posts"
65
+ autoload :Renderer, "jekyll/renderer"
66
+ autoload :LiquidRenderer, "jekyll/liquid_renderer"
67
+ autoload :Site, "jekyll/site"
68
+ autoload :StaticFile, "jekyll/static_file"
69
+ autoload :Stevenson, "jekyll/stevenson"
70
+ autoload :Theme, "jekyll/theme"
71
+ autoload :ThemeBuilder, "jekyll/theme_builder"
72
+ autoload :URL, "jekyll/url"
73
+ autoload :Utils, "jekyll/utils"
74
+ autoload :VERSION, "jekyll/version"
75
75
 
76
76
  # extensions
77
- require 'jekyll/plugin'
78
- require 'jekyll/converter'
79
- require 'jekyll/generator'
80
- require 'jekyll/command'
81
- require 'jekyll/liquid_extensions'
77
+ require "jekyll/plugin"
78
+ require "jekyll/converter"
79
+ require "jekyll/generator"
80
+ require "jekyll/command"
81
+ require "jekyll/liquid_extensions"
82
82
  require "jekyll/filters"
83
83
 
84
84
  class << self
@@ -94,22 +94,22 @@ module Jekyll
94
94
  # options with anything in _config.yml, and adding the given options on top.
95
95
  #
96
96
  # override - A Hash of config directives that override any options in both
97
- # the defaults and the config file. See Jekyll::Configuration::DEFAULTS for a
97
+ # the defaults and the config file.
98
+ # See Jekyll::Configuration::DEFAULTS for a
98
99
  # list of option names and their defaults.
99
100
  #
100
101
  # Returns the final configuration Hash.
101
102
  def configuration(override = {})
102
- config = Configuration[Configuration::DEFAULTS]
103
+ config = Configuration.new
103
104
  override = Configuration[override].stringify_keys
104
- unless override.delete('skip_config_files')
105
+ unless override.delete("skip_config_files")
105
106
  config = config.read_config_files(config.config_files(override))
106
107
  end
107
108
 
108
109
  # Merge DEFAULTS < _config.yml < override
109
- config = Utils.deep_merge_hashes(config, override).stringify_keys
110
- set_timezone(config['timezone']) if config['timezone']
111
-
112
- config
110
+ Configuration.from(Utils.deep_merge_hashes(config, override)).tap do |obj|
111
+ set_timezone(obj["timezone"]) if obj["timezone"]
112
+ end
113
113
  end
114
114
 
115
115
  # Public: Set the TZ environment variable to use the timezone specified
@@ -117,9 +117,11 @@ module Jekyll
117
117
  # timezone - the IANA Time Zone
118
118
  #
119
119
  # Returns nothing
120
+ # rubocop:disable Style/AccessorMethodName
120
121
  def set_timezone(timezone)
121
- ENV['TZ'] = timezone
122
+ ENV["TZ"] = timezone
122
123
  end
124
+ # rubocop:enable Style/AccessorMethodName
123
125
 
124
126
  # Public: Fetch the logger instance for this Jekyll process.
125
127
  #
@@ -156,11 +158,11 @@ module Jekyll
156
158
  def sanitized_path(base_directory, questionable_path)
157
159
  return base_directory if base_directory.eql?(questionable_path)
158
160
 
159
- questionable_path.insert(0, '/') if questionable_path.start_with?('~')
161
+ questionable_path.insert(0, "/") if questionable_path.start_with?("~")
160
162
  clean_path = File.expand_path(questionable_path, "/")
161
- clean_path.sub!(/\A\w\:\//, '/')
163
+ clean_path.sub!(%r!\A\w:/!, "/")
162
164
 
163
- if clean_path.start_with?(base_directory.sub(/\A\w\:\//, '/'))
165
+ if clean_path.start_with?(base_directory.sub(%r!\A\w:/!, "/"))
164
166
  clean_path
165
167
  else
166
168
  File.join(base_directory, clean_path)
@@ -168,16 +170,17 @@ module Jekyll
168
170
  end
169
171
 
170
172
  # Conditional optimizations
171
- Jekyll::External.require_if_present('liquid-c')
173
+ Jekyll::External.require_if_present("liquid-c")
172
174
  end
173
175
  end
174
176
 
175
177
  require "jekyll/drops/drop"
176
- require_all 'jekyll/commands'
177
- require_all 'jekyll/converters'
178
- require_all 'jekyll/converters/markdown'
179
- require_all 'jekyll/drops'
180
- require_all 'jekyll/generators'
181
- require_all 'jekyll/tags'
182
-
183
- require 'jekyll-sass-converter'
178
+ require "jekyll/drops/document_drop"
179
+ require_all "jekyll/commands"
180
+ require_all "jekyll/converters"
181
+ require_all "jekyll/converters/markdown"
182
+ require_all "jekyll/drops"
183
+ require_all "jekyll/generators"
184
+ require_all "jekyll/tags"
185
+
186
+ require "jekyll-sass-converter"