class Jekyll::JekyllSitemap
def destination_path(file = "sitemap.xml")
def destination_path(file = "sitemap.xml") @site.in_dest_dir(file) end
def file_exists?(file_path)
def file_exists?(file_path) pages_and_files.any? { |p| p.url == "/#{file_path}" } end
def generate(site)
def generate(site) @site = site @site.pages << sitemap unless file_exists?("sitemap.xml") @site.pages << robots unless file_exists?("robots.txt") end
def pages_and_files
def pages_and_files @pages_and_files ||= @site.pages + @site.static_files end
def robots
def robots robots = PageWithoutAFile.new(@site, __dir__, "", "robots.txt") robots.content = File.read(source_path("robots.txt")) robots.data["layout"] = nil robots end
def sitemap
def sitemap site_map = PageWithoutAFile.new(@site, __dir__, "", "sitemap.xml") site_map.content = File.read(source_path).gsub(MINIFY_REGEX, "") site_map.data["layout"] = nil site_map.data["static_files"] = static_files.map(&:to_liquid) site_map.data["xsl"] = file_exists?("sitemap.xsl") site_map end
def source_path(file = "sitemap.xml")
def source_path(file = "sitemap.xml") File.expand_path "../#{file}", __dir__ end
def static_files
def static_files @site.static_files.select { |file| INCLUDED_EXTENSIONS.include? file.extname } end