class GitHubPages::Configuration
Sets and manages Jekyll configuration defaults and overrides
def debug_print_versions
Print the versions for github-pages and jekyll to the debug
def debug_print_versions Jekyll.logger.debug "GitHub Pages:", "github-pages v#{GitHubPages::VERSION}" Jekyll.logger.debug "GitHub Pages:", "jekyll v#{Jekyll::VERSION}" end
def development?
def development? Jekyll.env == "development" end
def disable_whitelist?
def disable_whitelist? development? && !ENV["DISABLE_WHITELIST"].to_s.empty? end
def effective_config(user_config)
Returns the effective Configuration
values which themselves override our defaults.
configuration sandwhich with our overrides overriding the user's specified
Given a user's config, determines the effective configuration by building a user
def effective_config(user_config) # Merge user config into defaults config = Jekyll::Utils.deep_merge_hashes(MERGED_DEFAULTS, user_config) .fix_common_issues .add_default_collections # Merge overwrites into user config config = Jekyll::Utils.deep_merge_hashes config, OVERRIDES # Ensure we have those gems we want. config["gems"] = Array(config["gems"]) | DEFAULT_PLUGINS config["whitelist"] = config["whitelist"] | config["gems"] if disable_whitelist? config["whitelist"] = config["whitelist"] | DEVELOPMENT_PLUGINS if development? config end
def processed(site)
def processed(site) site.instance_variable_set :@_github_pages_processed, true end
def processed?(site)
def processed?(site) site.instance_variable_get(:@_github_pages_processed) == true end
def set(site)
Equivalent #set! function contains the code of interest. This function
Set the site's configuration. Implemented as an `after_reset` hook.
def set(site) return if processed? site debug_print_versions set!(site) processed(site) end
def set!(site)
Set the site's configuration with all the proper defaults and overrides.
def set!(site) config = effective_config(site.config) # Assign everything to the site site.instance_variable_set :@config, config # Ensure all CONFIGS_WITH_METHODS.each do |opt| site.public_send("#{opt}=", site.config[opt]) end end