Thanks Carl,

CR> There's an RSS validator here...

CR> http://feedvalidator.org/

CR> which should tell you when you give it the feed.  I think I found
CR> TO-IDATE wanting with some Net stuff in the past - may have been
CR> RSS.  

Looks like it wants time values in there, then it's OK. So, here's
another real quick rewrite.

Carl wants a link to a reader too. Not my area, but he should know about
http://www.rebol.org/cgi-bin/cgiwrap/rebol/view-script.r?script=rss.r
in addition to others.

Not sure on the Apache question. Just an AddType for rss+xml or
something? Sunanda? Premshree?

I'll leave my contributions here and let someone take the next step(s)
for Carl if they would.

-- Gregg                         

REBOL [
        Title:          "RSS Generator for Carl's Blog"
        Date:           31-Dec-2004
        File:           %carl-rss.r
        Home:           http://www.livejournal.com/~premshree
        Author:         ["Premshree Pillai" "Gregg Irwin"]
        Version:        0.0.3
        Purpose: {Generate valid RSS 2.0 feeds for Carl's blogs}
    Comment: {
        0.0.2 Massive code changes for instructional purposes. --Gregg
        0.0.3 More changes, knowing Carl actually wants to use it. :) --Gregg
    }
]

make-rss-ctx: context [

    make-entry: func [series key] [
        rejoin [tab  to tag! :key  series/:key  to tag! join #"/" :key newline]
    ]

    channel-entries: func [keys [block!] /local result] [
        result: copy ""
        foreach key keys [append result make-entry channel :key]
        result
    ]

    set 'make-rss func [channel items /local output] [
        output: copy ""

        repend output [
            <?xml version='1.0' encoding='utf-8' ?> <rss version='2.0'> newline
            <channel> newline
            channel-entries [title link description language copyright 
generator]
            newline
        ]

        foreach item items [
            repend output [
                   tab <item> newline
                   tab make-entry item 'title
                   tab make-entry item 'link
                   tab make-entry item 'description
                   tab tab <guid isPermaLink='true'> item/link </guid> newline
                   tab tab <pubDate> to-idate item/pubdate </pubDate> newline
               tab </item> newline newline
                ]
        ]

        repend output [</channel> newline </rss>]
    ]
]


;; Test Code below ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

comment {
    ;; channel data
    channel: [
        title "Carl's REBOL Blog - Vive la REBOLution"
        link http://www.rebol.net/
        description "describes this blog channel"
        language "en" ;"English"
        copyright "2005 Carl Sassenrath"
        generator "REBOL"
    ]

    ;; blog items go here
    items: [
        [
                title "Blog item title...."
                link http://www.rebol.net/cgi-bin/blog.r?view=0080
                description "synopsis of the blog goes here"
                author "Carl Sassenrath"
                pubdate 30-Dec-2004/23:24:32-7:00
        ]
        [
                title "Blog item title 2...."
                link http://www.rebol.net/cgi-bin/blog.r?view=0081
                description "synopsis of the blog goes here"
                author "Carl Sassenrath"
                pubdate 31-Dec-2004/23:24:32-7:00
        ]
    ]

    print make-rss channel items
    halt
    ;write %carl-rss2.xml output
}

-- 
To unsubscribe from the list, just send an email to rebol-request
at rebol.com with unsubscribe as the subject.

Reply via email to