Excerpts from why the lucky stiff's mail of 24 Jul 2005 (EDT):
> Yeah, that's good stuff, William. Thanks.
Whoops, did I forget to include the patch itself? Parameter naming
comments also welcome...
diff -u -r1.11 rss.rb
--- lib/hobix/out/rss.rb 15 May 2005 21:04:47 -0000 1.11
+++ lib/hobix/out/rss.rb 24 Jul 2005 15:56:05 -0000
@@ -19,8 +19,13 @@
module Hobix
module Out
class RSS < Hobix::BaseOutput
- def initialize( weblog )
+ def initialize( weblog, params = {} )
@path = weblog.skel_path
+ @extra_ns = params["namespaces"]
+ @extra_els = params["elements"]
+ @summaries = params["summary-only"]
+ @more_link = params["more"]
+ @comment_aname = params["comment-anchor"]
end
def extension
"rss"
@@ -51,6 +56,16 @@
rssdoc.elements['/rss/channel/link'].text = vars[:weblog].link.to_s
rssdoc.elements['/rss/channel/description'].text =
vars[:weblog].tagline
rssdoc.elements['/rss/channel/dc:date'].text = Time.now.utc.strftime(
"%Y-%m-%dT%H:%M:%S+00:00" )
+
+ @extra_ns.each do |k, v|
+ rssdoc.elements['/rss'].attributes["xmlns:" + k.to_s] = v.to_s
+ end if @extra_ns
+ @extra_els.each do |k, v|
+ extra = REXML::Element.new k.to_s
+ extra.text = v.to_s
+ rssdoc.elements['/rss/channel'].add extra
+ end if @extra_els
+
( vars[:entries] || [vars[:entry]] ).each do |e|
ele = REXML::Element.new 'item'
ele_title = REXML::Element.new 'title'
@@ -59,6 +74,11 @@
ele_link = REXML::Element.new 'link'
ele_link.text = "#{ e.link }"
ele << ele_link
+ if @comment_aname
+ ele_comments = REXML::Element.new 'comments'
+ ele_comments.text = "#{ e.link [EMAIL PROTECTED]"
+ ele << ele_comments
+ end
ele_guid = REXML::Element.new 'guid'
ele_guid.attributes['isPermaLink'] = 'false'
ele_guid.text = "#{ e.id [EMAIL PROTECTED] vars[:weblog].link }"
@@ -78,7 +98,12 @@
ele_pubDate.text = ( e.modified || e.created ).dup.utc.strftime(
"%Y-%m-%dT%H:%M:%S+00:00" )
ele << ele_pubDate
ele_desc = REXML::Element.new 'description'
- ele_desc.text = e.content.to_html.gsub( /(src|href)="\//,
"\\1=\"#{ vars[:weblog].link.rooturi }/" )
+ ele_desc.text =
+ if @summaries && e.summary
+ e.summary.to_html + (@more_link ? %{<p><a
href="#{e.link}">[EMAIL PROTECTED]</a></p>} : "")
+ else
+ e.content.to_html
+ end.gsub( /(src|href)="\//, "\\1=\"#{
vars[:weblog].link.rooturi }/" )
ele << ele_desc
rssdoc.elements['/rss/channel'].add ele
end
--
William <[EMAIL PROTECTED]>
_______________________________________________
Hobix-is-the-way mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/hobix-is-the-way