Sha256: 8c5896f71ca7762362b4d24f20818c8f074c212b31cee926bb91e8a3e969813f
Contents?: true
Size: 1.36 KB
Versions: 7
Compression:
Stored size: 1.36 KB
Contents
module Alula class Archive < Generator def generate # Loop all languages and count posts per language @languages = {} self.site.content.posts.each do |post| post.languages.each do |lang| @languages[lang] ||= [] @languages[lang] << post end end titles = Hash[@languages.collect {|lang, x| [lang, I18n.t("archive.title", locale: lang)]}] archives = {} @languages.each do |lang, posts| options.templates.collect do |template| posts.collect do |post| archives[post.substitude(template, lang)] ||= {} archives[post.substitude(template, lang)][lang] ||= [] archives[post.substitude(template, lang)][lang] << post end end end archives.each do |name, archive| self.site.content.pages << Alula::Content::Page.new({ generator: self, posts: archive, title: titles.select {|lang, title| archive.keys.include?(lang)}, name: name, slug: name, sidebar: false, template: "/:locale/:name/", site: self.site, view: "archive" }) end end def substitutes(locale, item) { "page" => item.metadata.pagenum.to_s, } end end end Alula::Generator.register :archive, Alula::Archive
Version data entries
7 entries across 7 versions & 1 rubygems