Merge pull request #1390 from mojombo/better-errors

Catch and fix (somehow) common configuration errors
This commit is contained in:
Parker Moore
2013-08-07 15:28:16 -07:00
3 changed files with 40 additions and 10 deletions

View File

@@ -150,7 +150,7 @@ module Jekyll
$stderr.puts "#{err}"
end
configuration.backwards_compatibilize
configuration.fix_common_issues.backwards_compatibilize
end
# Public: Split a CSV string into an array containing its values
@@ -205,5 +205,17 @@ module Jekyll
config
end
def fix_common_issues
config = clone
if config.has_key?('paginate') && (!config['paginate'].is_a?(Integer) || config['paginate'] < 1)
Jekyll.logger.warn "Config Warning:", "The `paginate` key must be a" +
" positive integer or nil. It's currently set to '#{config['paginate'].inspect}'."
config['paginate'] = nil
end
config
end
end
end

View File

@@ -2,18 +2,18 @@ module Jekyll
class Deprecator
def self.process(args)
no_subcommand(args)
deprecation_message args, "--server", "The --server command has been replaced by the \
arg_is_present? args, "--server", "The --server command has been replaced by the \
'serve' subcommand."
deprecation_message args, "--no-server", "To build Jekyll without launching a server, \
arg_is_present? args, "--no-server", "To build Jekyll without launching a server, \
use the 'build' subcommand."
deprecation_message args, "--auto", "The switch '--auto' has been replaced with '--watch'."
deprecation_message args, "--no-auto", "To disable auto-replication, simply leave off \
arg_is_present? args, "--auto", "The switch '--auto' has been replaced with '--watch'."
arg_is_present? args, "--no-auto", "To disable auto-replication, simply leave off \
the '--watch' switch."
deprecation_message args, "--pygments", "The 'pygments' setting can only be set in \
arg_is_present? args, "--pygments", "The 'pygments' setting can only be set in \
your config files."
deprecation_message args, "--paginate", "The 'paginate' setting can only be set in your \
arg_is_present? args, "--paginate", "The 'paginate' setting can only be set in your \
config files."
deprecation_message args, "--url", "The 'url' setting can only be set in your config files."
arg_is_present? args, "--url", "The 'url' setting can only be set in your config files."
end
def self.no_subcommand(args)
@@ -23,10 +23,14 @@ module Jekyll
end
end
def self.deprecation_message(args, deprecated_argument, message)
def self.arg_is_present?(args, deprecated_argument, message)
if args.include?(deprecated_argument)
Jekyll.logger.error "Deprecation:", message
deprecation_message(message)
end
end
def self.deprecation_message(message)
Jekyll.logger.error "Deprecation:", message
end
end
end