Sha256: cbe02286d76c23499ec4340ff7a14440e47645a7180bb1529e4c7ee29390ae4f

Contents?: true

Size: 1.29 KB

Versions: 11

Compression:

Stored size: 1.29 KB

Contents

require 'builder' # For Tilt

module Alula
  class Sitemap < Generator
    def allow_compressing?
      return :normal
    end
    
    def generate
      urls_callback = ->(context) {
        (context.site.content.posts + context.site.content.pages)
          .reject {|content| content.generator == self }
          .reject {|content| content.metadata.sitemap == false }
          .collect { |content|
            content.languages.collect{|lang| {
              url: content.url(lang),
              lastmod: content.last_modified,
              priority: content.generator.nil? ? 0.5 : 0.3,
            }
          }
        }.flatten
      }
      
      @sitemap_page = Alula::Content::Page.new({
        generator: self,
        urls: urls_callback,
        title: "Sitemap",
        name: "sitemap.xml",
        slug: "sitemap",
        sidebar: false,
        template: self.options.template || "/:locale/:name",
        site: self.site,
        layout: "sitemap",
      })
      self.site.content.pages << @sitemap_page
      
      # Add link to head
      Alula::Plugin.addon(:head, ->(context) {
        "<link rel=\"sitemap\" type=\"application/xml\" title=\"Sitemap\" href=\"#{context.url_for(@sitemap_page.url(context.locale))}\">"
      })
    end
  end
end

Alula::Generator.register :sitemap, Alula::Sitemap

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
alula-0.4.16 lib/alula/generators/sitemap.rb
alula-0.4.15 lib/alula/generators/sitemap.rb
alula-0.4.14 lib/alula/generators/sitemap.rb
alula-0.4.13 lib/alula/generators/sitemap.rb
alula-0.4.12 lib/alula/generators/sitemap.rb
alula-0.4.11 lib/alula/generators/sitemap.rb
alula-0.4.11a lib/alula/generators/sitemap.rb
alula-0.4.10 lib/alula/generators/sitemap.rb
alula-0.4.9 lib/alula/generators/sitemap.rb
alula-0.4.8 lib/alula/generators/sitemap.rb
alula-0.4.7 lib/alula/generators/sitemap.rb