#!/usr/local/bin/gosh
;; wiliki2 - sample of customizing page format
(use util.list)
(use wiliki)
(use wiliki.format)
(use wiliki.db)
(define (my-page-header page opts)
`((div (@ (style "font-size:80%;text-align:right"))
,@(cond-list
((wiliki:top-link page))
((wiliki:edit-link page))
((wiliki:history-link page))
((wiliki:all-link page))
((wiliki:recent-link page))
((wiliki:language-link page))))))
(define (my-page-footer page opts)
`((hr)
(div (@ (class "footer") (style "text-align:right"))
"Last modified : " ,(wiliki:format-time (ref page 'mtime))
(br)
(a (@ (href "http://www.shiro.dreamhost.com/scheme/wiliki/wiliki.cgi"))
"WiLiKi " ,(wiliki:version))
" running on "
(a (@ (href "http://www.shiro.dreamhost.com/scheme/gauche/"))
"Gauche ",(gauche-version)))
(stree "")
)
)
(define (my-page-content page opts)
`((table
(@ (border 0) (cellspacing 8) (width "100%") (class "content-table"))
(tr (td (@ (class "menu-strip")
(valign "top") (style "font-size:80%;width:10em"))
(div (@ (class "menu-title")) ,@(wiliki:format-wikiname "Topics"))
,@(wiliki:get-formatted-page-content "Topics")
(div (@ (class "menu-title")) "Search")
(div (@ (style "margin-top:2pt;margin-bottom:2pt"))
,@(wiliki:search-box))
(div (@ (class "menu-title")) "Recent Changes")
(ul (@ (class "menu-list"))
,@(map (lambda (p)
`(li ,@(wiliki:format-wikiname (car p))))
(wiliki:recent-changes-alist :length 20)))
(a (@ (href ,(wiliki:self-url "c=r"))) "More ..."))
(td (@ (valign "top"))
,@(wiliki:page-title page)
,@(wiliki:format-content page))))))
(let ((formatter (wiliki:formatter)))
(set! (ref formatter 'header) my-page-header)
(set! (ref formatter 'footer) my-page-footer)
(set! (ref formatter 'content) my-page-content))
(define (main args)
(wiliki-main
(make
:db-path "/home/koj/wiliki/data.dbm"
:top-page "koj"
:title "MyWiliki2"
:description "koj's Wiliki Site"
:style-sheet "wiliki2.css"
:language 'jp
:charsets '((jp . euc-jp) (en . euc-jp))
:image-urls '((#/^http:\/\/www.ofug.net\/~koj\// allow) (#/^http:\/\/images-jp.amazon.com\// allow) (#/^http:\/\/images.amazon.com\// allow))
:log-file "wiki.log"
:debug-level 0
)))
;; Local variables:
;; mode: scheme
;; end: