Sha256: 24fd8550e0c241c2155c552b97392d93e014cbcfa9cef5f1be5c570353371ab6
Contents?: true
Size: 1.38 KB
Versions: 1
Compression:
Stored size: 1.38 KB
Contents
require 'builder' # As suggested by tilt module Alula class Generator::FeedBuilder < 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("feedbuilder.recent_posts", locale: lang)]}] posts = Hash[ @languages.collect do |lang, posts| [ lang, posts.slice(0, self.options.items) ] end ] @feed_page = Alula::Content::Page.new({ generator: self, posts: posts, title: titles, name: "feed.xml", slug: "feed", template: self.options.template || "/:locale/:name", site: self.site, layout: "feed", }, :previous => ->(locale) { nil }, :next => ->(locale) { nil }, :navigation => ->(locale) { nil }, ) self.site.content.pages << @feed_page # Add link to head Alula::Plugin.addon(:head, ->(context) { "<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS\" href=\"#{context.url_for(@feed_page.url(context.locale))}\">" }) # -# %link{rel: "alternate", type: "application/rss+xml", title: "RSS", href: "/feed.xml"} end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
alula-0.4.0b | lib/alula/generators/feedbuilder.rb |