class Jekyll::Make::Sitemap

Constants

VERSION

Public Class Methods

generate(site, payload, file) click to toggle source
# File lib/jekyll/make/sitemap.rb, line 8
def generate(site, payload, file)
  default_config = { 'pages' => true, 'posts' => true, 'environments' => ['production'] }
  config = site.config.has_key?("jekyll-make-sitemap") ? default_config.merge(site.config["jekyll-make-sitemap"]) : default_config
  if config["environments"].include?(payload.jekyll.environment)
    baseurl = site.config["url"]
    collections = config.has_key?("collections") ? config["collections"] : []
    unless config.has_key?("pages") && config["pages"] == false
      payload.site.pages.each do |page| process(file, page, baseurl) end
    end
    unless config.has_key?("posts") && config["posts"] == false
      payload.site.posts.each do |post|
        if !config["posts"].eql?(true)
          config["posts"].each do |cat|
            if post.data.has_key?("categories") && post.data["categories"].include?(cat)
              process(file, post, baseurl)
            end
          end
        else
          process(file, post, baseurl) 
        end
      end
    end
    collections.each do |col|
      site.collections[col].docs.each do |post| process(file, post, baseurl) end
    end
  end
end
process(file, doc, baseurl) click to toggle source
# File lib/jekyll/make/sitemap.rb, line 35
def process(file, doc, baseurl)
  if !((doc.data.has_key?("tags") && doc.data["tags"].include?("sitemap-exclude")) || !doc.path.end_with?(".md"))
    file.write "#{baseurl}#{doc.url}\n"
  end
end