フレーバーに対応してみました☆

フレーバーに対応しなくちゃ RSS も作れない (笑)

Blosxom みたいな処理の仕方だと、個別エントリの RDF も生成してくれるのが好き(=´∇`=)

RDF/XML をどう生成したらいいかわからなかったので、結局 text.html-lite を拡張するようにしてみましたヽ(  ̄д ̄;)ノ ほとんどコピペ (笑)

(select-module text.html-lite)
(define-macro (define-elements prefix . elements)
              (define (make-scheme-name name)
                (string->symbol (format #f "~a:~a" prefix name)))
              (let loop ((elements elements)
                         (r '()))
                (cond ((null? elements) `(begin ,@(reverse r)))
                      ((and (pair? (cdr elements)) (eqv? (cadr elements) :empty))
                       (loop (cddr elements)
                             (list* `(define ,(make-scheme-name (car elements))
                                       (make-html-element ',(make-scheme-name (car elements)) :empty? #t))
                                    `(export ,(make-scheme-name (car elements)))
                                    r)))
                      (else
                        (loop (cdr elements)
                              (list* `(define ,(make-scheme-name (car elements))
                                        (make-html-element ',(make-scheme-name (car elements))))
                                     `(export ,(make-scheme-name (car elements)))
                                     r))))
                ))
(define-elements rdf RDF Seq Alt Bag li)
(define-elements rss channel items item title link description)
(define-elements content encoded)
(define-elements dc creator date title description)
(define-elements admin generatorAgent)
(select-module user)