Class: Jekyll::Make::Sitemap
- Inherits:
-
Object
- Object
- Jekyll::Make::Sitemap
- Defined in:
- lib/jekyll/make/sitemap.rb,
lib/jekyll/make/sitemap/version.rb
Defined Under Namespace
Classes: Error
Constant Summary collapse
- FILENAME =
"sitemap.txt".freeze
- VERSION =
"1.3.0"
Class Method Summary collapse
Class Method Details
.config_for(site) ⇒ Object
11 12 13 14 |
# File 'lib/jekyll/make/sitemap.rb', line 11 def config_for(site) default_config = { 'pages' => true, 'posts' => true, 'environments' => ['production'] } site.config.has_key?("jekyll-make-sitemap") ? default_config.merge(site.config["jekyll-make-sitemap"]) : default_config end |
.generate(site, config) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/jekyll/make/sitemap.rb', line 16 def generate(site, config) lines = [] baseurl = site.config["url"] collections = config.has_key?("collections") ? config["collections"] : [] unless config.has_key?("pages") && config["pages"] == false site.pages.each do |page| process(lines, page, baseurl) end end unless config.has_key?("posts") && config["posts"] == false # Match the ordering of `site.posts` as exposed to Liquid, which # `Jekyll::Drops::SiteDrop` sorts newest-first. site.posts.docs.sort { |a, b| b <=> a }.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(lines, post, baseurl) end end else process(lines, post, baseurl) end end end collections.each do |col| site.collections[col].docs.each do |post| process(lines, post, baseurl) end end lines end |
.process(lines, doc, baseurl) ⇒ Object
44 45 46 47 48 |
# File 'lib/jekyll/make/sitemap.rb', line 44 def process(lines, doc, baseurl) if !((doc.data.has_key?("tags") && doc.data["tags"].include?("sitemap-exclude")) || !doc.path.end_with?(".md")) lines << "#{baseurl}#{doc.url}\n" end end |