Parse TOML or YAML in Jekyll::Configuration.
This commit is contained in:
parent
4f337df2d8
commit
51706e8da7
|
@ -32,6 +32,7 @@ Gem::Specification.new do |s|
|
||||||
s.add_runtime_dependency('safe_yaml', "~> 0.9.7")
|
s.add_runtime_dependency('safe_yaml', "~> 0.9.7")
|
||||||
s.add_runtime_dependency('colorator', "~> 0.1")
|
s.add_runtime_dependency('colorator', "~> 0.1")
|
||||||
s.add_runtime_dependency('redcarpet', "~> 2.3.0")
|
s.add_runtime_dependency('redcarpet', "~> 2.3.0")
|
||||||
|
s.add_runtime_dependency('toml', '~> 0.0.4')
|
||||||
|
|
||||||
s.add_development_dependency('rake', "~> 10.1")
|
s.add_development_dependency('rake', "~> 10.1")
|
||||||
s.add_development_dependency('rdoc', "~> 3.11")
|
s.add_development_dependency('rdoc', "~> 3.11")
|
||||||
|
|
|
@ -99,6 +99,17 @@ module Jekyll
|
||||||
override['source'] || self['source'] || DEFAULTS['source']
|
override['source'] || self['source'] || DEFAULTS['source']
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def safe_load_file(filename)
|
||||||
|
case File.extname(filename)
|
||||||
|
when '.toml'
|
||||||
|
TOML.load_file(filename)
|
||||||
|
when /\.y(a)?ml/
|
||||||
|
YAML.safe_load_file(filename)
|
||||||
|
else
|
||||||
|
raise ArgumentError, "No parser for '#{filename}' is available."kk
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# Public: Generate list of configuration files from the override
|
# Public: Generate list of configuration files from the override
|
||||||
#
|
#
|
||||||
# override - the command-line options hash
|
# override - the command-line options hash
|
||||||
|
@ -121,8 +132,8 @@ module Jekyll
|
||||||
#
|
#
|
||||||
# Returns this configuration, overridden by the values in the file
|
# Returns this configuration, overridden by the values in the file
|
||||||
def read_config_file(file)
|
def read_config_file(file)
|
||||||
next_config = YAML.safe_load_file(file)
|
next_config = safe_load_file(file)
|
||||||
raise ArgumentError.new("Configuration file: (INVALID) #{file}".yellow) if !next_config.is_a?(Hash)
|
raise ArgumentError.new("Configuration file: (INVALID) #{file}".yellow) unless next_config.is_a?(Hash)
|
||||||
Jekyll.logger.info "Configuration file:", file
|
Jekyll.logger.info "Configuration file:", file
|
||||||
next_config
|
next_config
|
||||||
rescue SystemCallError
|
rescue SystemCallError
|
||||||
|
|
Loading…
Reference in New Issue