parent
2b28f9fd57
commit
da65e94728
|
@ -1,3 +1,5 @@
|
|||
require "addressable/uri"
|
||||
|
||||
module Jekyll
|
||||
module Commands
|
||||
class Doctor < Command
|
||||
|
@ -36,6 +38,7 @@ module Jekyll
|
|||
!deprecated_relative_permalinks(site),
|
||||
!conflicting_urls(site),
|
||||
!urls_only_differ_by_case(site),
|
||||
proper_site_url?(site),
|
||||
].all?
|
||||
end
|
||||
|
||||
|
@ -91,6 +94,15 @@ module Jekyll
|
|||
urls_only_differ_by_case
|
||||
end
|
||||
|
||||
def proper_site_url?(site)
|
||||
url = site.config["url"]
|
||||
[
|
||||
url_exists?(url),
|
||||
url_valid?(url),
|
||||
url_absolute(url),
|
||||
].all?
|
||||
end
|
||||
|
||||
private
|
||||
def collect_urls(urls, things, destination)
|
||||
things.each do |thing|
|
||||
|
@ -110,6 +122,29 @@ module Jekyll
|
|||
(memo[dest.downcase] ||= []) << dest
|
||||
end
|
||||
end
|
||||
|
||||
def url_exists?(url)
|
||||
return true unless url.nil? || url.empty?
|
||||
Jekyll.logger.warn "Warning:", "You didn't set an URL in the config file, "\
|
||||
"you may encounter problems with some plugins."
|
||||
false
|
||||
end
|
||||
|
||||
def url_valid?(url)
|
||||
Addressable::URI.parse(url)
|
||||
true
|
||||
rescue
|
||||
Jekyll.logger.warn "Warning:", "The site URL does not seem to be valid, "\
|
||||
"check the value of `url` in your config file."
|
||||
false
|
||||
end
|
||||
|
||||
def url_absolute(url)
|
||||
return true if Addressable::URI.parse(url).absolute?
|
||||
Jekyll.logger.warn "Warning:", "Your site URL does not seem to be absolute, "\
|
||||
"check the value of `url` in your config file."
|
||||
false
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue