jekyll-v4-github-pages 231 → 233

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d920e5916b773f5b07be48d982e1b1434045e95abf952c5d9cb80a05bfab11b5
4
- data.tar.gz: 9a931a7e89f1b2ea09d18c709d465cb600d9044d25b30a35cb3fe2aa6dc04a73
3
+ metadata.gz: 6261b7568c6aaf356ce8046a6f73877535b2acfa3ff7e539a14c02529c546cd4
4
+ data.tar.gz: 1ca23404fd54cd61efc08c24bde40e86d5d8e2d30dae3332d771dfd95139dd16
5
5
  SHA512:
6
- metadata.gz: 22726f9e358f51c5b8be4ed3342dd5f5d7ae3a37d6b5e4b70bd021cbc4349de76dbc9a4d0608f66f2ec9d4d56cf4270223e0617f9722cb4779224d14db03888e
7
- data.tar.gz: 8a18349238699cd655dee0672f8ecfc464b5f2c18ca287d0bec3404b3745adb2f4f75eeefe89509592e55b62ce26fc07887ad3259487bff58629483b5d78c1b1
6
+ metadata.gz: 94c8a430291c9f6609f2175ea5d14da77222b2c3f60e5aea4d58f3e3acc745b744ff7a1f8ade3ad2f0fce59103f26c262a0465a8515c47431b12b0eb149090dd
7
+ data.tar.gz: c2b43512877eb1d2f4fb7cf44b4731bbeb6ba22f1ec44e6be3b9d46d133a1b8f67ae63ba35bd63d1a4970cc9604debfb16eb90dd4446d9401dd9dbcb73084d1a
data/.rubocop.yml CHANGED
@@ -126,12 +126,21 @@ Metrics/MethodLength:
126
126
  Style/Alias:
127
127
  Enabled: false # We have no guidance on alias vs alias_method
128
128
 
129
+ Style/MapToSet:
130
+ Enabled: true
131
+
132
+ Style/MinMaxComparison:
133
+ Enabled: true
134
+
129
135
  Style/RedundantSelf:
130
136
  Enabled: false # Sometimes a self.field is a bit more clear
131
137
 
132
138
  Style/IfUnlessModifier:
133
139
  Enabled: false
134
140
 
141
+ Style/YodaExpression:
142
+ Enabled: true
143
+
135
144
  Naming/FileName: #Rubocop doesn't like the Git*H*ub namespace
136
145
  Enabled: false
137
146
 
@@ -65,8 +65,21 @@ Mercenary.program(:"jekyll-v4-github-pages") do |p|
65
65
  c.option 'source', '--source DIR', 'From where to collect the source files'
66
66
  c.option 'destination', '--destination DIR', 'To where the compiled files should be written'
67
67
  c.option 'future', '--future', 'Publishes posts with a future date'
68
+ c.option 'config', '--config FILE1[,FILE2[,FILE3]]', Array, 'Specify config files instead of using _config.yml'
68
69
 
69
70
  c.action do |_, options|
71
+ config = options["config"] || ["_config.yml"]
72
+
73
+ default_config = File.expand_path("../../lib/_default_config.yml", __FILE__)
74
+ options["config"] = [default_config]
75
+
76
+ config.each { |item|
77
+ user_config = File.join(options["source"] || Dir.pwd, item)
78
+ if File.exist?(user_config)
79
+ options["config"].push(user_config)
80
+ end
81
+ }
82
+
70
83
  Jekyll::Commands::Build.process(options)
71
84
  end
72
85
  end
@@ -0,0 +1,23 @@
1
+ # Default, user overwritable options
2
+ jailed: false
3
+ future: false
4
+ theme: jekyll-v4-theme-primer
5
+ markdown: kramdown
6
+ kramdown:
7
+ input: GFM
8
+ hard_wrap: false
9
+ gfm_quirks: paragraph_end
10
+ syntax_highlighter_opts:
11
+ default_lang: plaintext
12
+ template: ""
13
+ math_engine: mathjax
14
+ syntax_highlighter: rouge
15
+ exclude:
16
+ - CNAME
17
+
18
+ # Previously not overwritable, now these can be configured as well
19
+ lsi: false
20
+ safe: true
21
+ highlighter: rouge
22
+ gist:
23
+ noscript: false
@@ -3,7 +3,8 @@
3
3
  require "securerandom"
4
4
 
5
5
  module GitHubPages
6
- # Sets and manages Jekyll configuration defaults and overrides
6
+ # Sets and manages Jekyll configuration defaults
7
+ # Most configuration is now set in _default_config.yml
7
8
  class Configuration
8
9
  # Backward compatability of constants
9
10
  DEFAULT_PLUGINS = GitHubPages::Plugins::DEFAULT_PLUGINS
@@ -11,57 +12,13 @@ module GitHubPages
11
12
  DEVELOPMENT_PLUGINS = GitHubPages::Plugins::DEVELOPMENT_PLUGINS
12
13
  THEMES = GitHubPages::Plugins::THEMES
13
14
 
14
- # Default, user overwritable options
15
- DEFAULTS = {
16
- "jailed" => false,
17
- "plugins" => GitHubPages::Plugins::DEFAULT_PLUGINS,
18
- "future" => true,
19
- "theme" => "jekyll-v4-theme-primer",
20
- "markdown" => "kramdown",
21
- "kramdown" => {
22
- "input" => "GFM",
23
- "hard_wrap" => false,
24
- "gfm_quirks" => "paragraph_end",
25
- "syntax_highlighter_opts" => {
26
- "default_lang" => "plaintext",
27
- },
28
- },
29
- "exclude" => ["CNAME"],
30
- }.freeze
31
-
32
15
  # User-overwritable defaults used only in production for practical reasons
33
- PRODUCTION_DEFAULTS = Jekyll::Utils.deep_merge_hashes DEFAULTS, {
16
+ PRODUCTION_DEFAULTS = {
34
17
  "sass" => {
35
18
  "style" => "compressed",
36
19
  },
37
20
  }.freeze
38
21
 
39
- # Options which GitHub Pages sets, regardless of the user-specified value
40
- #
41
- # The following values are also overridden by GitHub Pages, but are not
42
- # overridden locally, for practical purposes:
43
- # * source
44
- # * destination
45
- # * jailed
46
- # * verbose
47
- # * incremental
48
- # * GH_ENV
49
- OVERRIDES = {
50
- "lsi" => false,
51
- "safe" => true,
52
- "plugins_dir" => SecureRandom.hex,
53
- "whitelist" => GitHubPages::Plugins::PLUGIN_WHITELIST,
54
- "highlighter" => "rouge",
55
- "kramdown" => {
56
- "template" => "",
57
- "math_engine" => "mathjax",
58
- "syntax_highlighter" => "rouge",
59
- },
60
- "gist" => {
61
- "noscript" => false,
62
- },
63
- }.freeze
64
-
65
22
  class << self
66
23
  def processed?(site)
67
24
  site.instance_variable_get(:@_github_pages_processed) == true
@@ -79,31 +36,19 @@ module GitHubPages
79
36
  Jekyll.env == "development"
80
37
  end
81
38
 
82
- def defaults_for_env
83
- defaults = development? ? DEFAULTS : PRODUCTION_DEFAULTS
84
- Jekyll::Utils.deep_merge_hashes Jekyll::Configuration::DEFAULTS, defaults
85
- end
86
-
87
- # Given a user's config, determines the effective configuration by building a user
88
- # configuration sandwhich with our overrides overriding the user's specified
89
- # values which themselves override our defaults.
90
- #
91
39
  # Returns the effective Configuration
92
40
  #
93
41
  # Note: this is a highly modified version of Jekyll#configuration
94
42
  def effective_config(user_config)
95
- # Merge user config into defaults
96
- config = Jekyll::Utils.deep_merge_hashes(defaults_for_env, user_config)
97
- .add_default_collections
43
+ config = user_config
44
+ if !development?
45
+ config = Jekyll::Utils.deep_merge_hashes PRODUCTION_DEFAULTS, config
46
+ end
98
47
 
99
48
  # Allow theme to be explicitly disabled via "theme: null"
100
49
  config["theme"] = user_config["theme"] if user_config.key?("theme")
101
50
 
102
51
  migrate_theme_to_remote_theme(config)
103
- exclude_cname(config)
104
-
105
- # Merge overwrites into user config
106
- config = Jekyll::Utils.deep_merge_hashes config, OVERRIDES
107
52
 
108
53
  restrict_and_config_markdown_processor(config)
109
54
 
@@ -123,7 +68,7 @@ module GitHubPages
123
68
  processed(site)
124
69
  end
125
70
 
126
- # Set the site's configuration with all the proper defaults and overrides.
71
+ # Set the site's configuration with all the proper defaults.
127
72
  # Should be called by #set to protect against multiple processings.
128
73
  def set!(site)
129
74
  site.config = effective_config(site.config)
@@ -154,17 +99,11 @@ module GitHubPages
154
99
  # This functionality has been rolled back due to complications with jekyll-remote-theme.
155
100
  end
156
101
 
157
- # If the user's 'exclude' config is the default, also exclude the CNAME
158
- def exclude_cname(config)
159
- return unless config["exclude"].eql? Jekyll::Configuration::DEFAULT_EXCLUDES
160
-
161
- config["exclude"].concat(DEFAULTS["exclude"])
162
- end
163
-
164
102
  # Requires default plugins and configures whitelist in development
165
103
  def configure_plugins(config)
166
104
  # Ensure we have those gems we want.
167
105
  config["plugins"] = Array(config["plugins"]) | DEFAULT_PLUGINS
106
+ config["whitelist"] = Array(config["whitelist"]) | PLUGIN_WHITELIST
168
107
 
169
108
  # To minimize errors, lazy-require jekyll-remote-theme if requested by the user
170
109
  config["plugins"].push("jekyll-remote-theme") if config.key? "remote_theme"
@@ -49,7 +49,7 @@ module GitHubPages
49
49
  "minima" => "2.5.1",
50
50
  "jekyll-swiss" => "1.0.0",
51
51
  "jekyll-theme-primer" => "0.6.0",
52
- "jekyll-v4-theme-primer" => "0.11.0",
52
+ "jekyll-v4-theme-primer" => "0.12.0",
53
53
  "jekyll-theme-architect" => "0.2.0",
54
54
  "jekyll-theme-cayman" => "0.2.0",
55
55
  "jekyll-theme-dinky" => "0.2.0",
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GitHubPages
4
- VERSION = 231
4
+ VERSION = 233
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-v4-github-pages
3
3
  version: !ruby/object:Gem::Version
4
- version: '231'
4
+ version: '233'
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitHub, Inc.
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-05-01 00:00:00.000000000 Z
12
+ date: 2023-05-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: jekyll
@@ -409,14 +409,14 @@ dependencies:
409
409
  requirements:
410
410
  - - '='
411
411
  - !ruby/object:Gem::Version
412
- version: 0.11.0
412
+ version: 0.12.0
413
413
  type: :runtime
414
414
  prerelease: false
415
415
  version_requirements: !ruby/object:Gem::Requirement
416
416
  requirements:
417
417
  - - '='
418
418
  - !ruby/object:Gem::Version
419
- version: 0.11.0
419
+ version: 0.12.0
420
420
  - !ruby/object:Gem::Dependency
421
421
  name: jekyll-theme-architect
422
422
  requirement: !ruby/object:Gem::Requirement
@@ -700,6 +700,7 @@ extra_rdoc_files: []
700
700
  files:
701
701
  - ".rubocop.yml"
702
702
  - bin/jekyll-v4-github-pages
703
+ - lib/_default_config.yml
703
704
  - lib/github-pages.rb
704
705
  - lib/github-pages/configuration.rb
705
706
  - lib/github-pages/dependencies.rb