root/websites/scheme-users.jp/atom.scm @ 64

Revision 64, 1.3 kB (checked in by baal5084, 16 years ago)

websites/scheme-users.jp: update.

Line 
1(use srfi-1)
2(use srfi-19)
3(use sxml.serializer)
4
5(define lambda-news (lambda ()
6        (call-with-input-file "news.dat"
7                (lambda (in)
8                        (let ((news (read in)))
9                                (map (lambda (ns)
10                                        (let ((y (list-ref (car ns) 0))
11                                                        (m (list-ref (car ns) 1))
12                                                        (d (list-ref (car ns) 2))
13                                                        (h (list-ref (car ns) 3))
14                                                        (i (list-ref (car ns) 4))
15                                                        (s 1))
16                                                (let ((dt (make-date 0 s i h d m y 0)))
17                                                        `(entry
18                                                                (title ,(date->string dt "~Y/~m/~d(~a)"))
19                                                                (id ,(string-append "http://scheme-users.jp/index.html#news" (date->string dt "~Y~m~d~H~M~S")))
20                                                                (link (@ (href ,(string-append "http://scheme-users.jp/index.html#news" (date->string dt "~Y~m~d~H~M~S")))))
21                                                                (updated ,(date->string dt "~Y-~m-~dT~H:~M:~SZ"))
22                                                                (content (@ (type "html"))
23                                                                        ,(call-with-output-string
24                                                                                (lambda (out)
25                                                                                        (srl:sxml->xml (cons 'p (cdr ns)) out))))))))
26                                        (take news 20)))))))
27
28(define main (lambda (args)
29        (srl:parameterizable
30                `(feed (@ (xmlns "http://www.w3.org/2005/Atom"))
31                        (title "Scheme-users.jp")
32                        (link (@ (href "http://scheme-users.jp/")))
33                        (updated ,(date->string (current-date) "~Y-~m-~dT~H:~M:~SZ"))
34                        (auther (name "Scheme-users.jp"))
35                        (id "http://scheme-users.jp/")
36                        ,@(lambda-news))
37                "atom.xml"
38                '(omit-xml-declaration . #f)
39                '(cdata-section-elements . (content)))
40        0))
Note: See TracBrowser for help on using the browser.