lib/alula/generators/archive.rb in alula-0.4.12 vs lib/alula/generators/archive.rb in alula-0.4.13
- old
+ new
@@ -15,27 +15,55 @@
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
+ key = "archive.title." + template.scan(/:(\w+)*/).flatten.join('-')
+ archives[post.substitude(template, lang)][:title] ||= I18n.t(key, Hash[post.substitutes(lang).map{|k,v|[k.to_sym,v]}].merge(locale: lang))
+ archives[post.substitude(template, lang)][:key] ||= key
+ archives[post.substitude(template, lang)][:content] ||= {}
+ archives[post.substitude(template, lang)][:content][lang] ||= []
+ archives[post.substitude(template, lang)][:content][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)},
+ posts: archive[:content],
+ title: archive[:title],#titles.select {|lang, title| archive.keys.include?(lang)},
name: name,
slug: name,
sidebar: false,
template: "/:locale/:name/",
site: self.site,
- view: "archive"
- })
+ view: "archive",
+ key: archive[:key],
+ },
+ :previous => ->(hook, locale = nil) {
+ pos = self.navigation(locale).index(self)
+ if pos and pos < (self.navigation(locale).count - 1)
+ self.navigation(locale)[pos + 1]
+ else
+ nil
+ end
+ },
+ :next => ->(hook, locale = nil) {
+ pos = self.navigation(locale).index(self)
+ if pos and pos > 0
+ self.navigation(locale)[pos - 1]
+ else
+ nil
+ end
+ },
+ :navigation => ->(hook, locale = nil) {
+ locale ||= self.current_locale || self.site.config.locale
+ @navigation[locale] ||= self.site.content.pages.select { |item|
+ item.metadata.generator == self.generator and item.metadata.key == self.metadata.key
+ }
+ }
+ )
end
end
def substitutes(locale, item)
{