image修正版
WiLiKiで許可されたサイトのみの画像リンクを許し,属性も指定できる.山口さんのと違って,属性と属性の間にコンマは入れません.
使用例:
[http://www.zukeran.org/shin/z.png](http://www.zukeran.org/shin/z.png)
http://www.zukeran.org/shin/z.png
(define-reader-macro (image url . str)
(define opts (fold
(lambda (s opts)
(let1 sl (string-split s "=")
(if (= (length sl) 2)
(let ((key (first sl))
(value (second sl)))
(acons key value opts)))))
'()
str))
(define (get-opt key)
(let1 p (find (lambda (opt) (string=? (car opt) key)) opts)
(if (pair? p) `((,(car p) ,(cdr p))) '())))
(define (alt) (let ((opt (get-opt "alt")))
(cond
((null? opt) "[image]")
(else (cadar opt)))))
(define (badimg) `((a (@ (href ,url)) ,(alt))))
(let loop ((urls (image-urls-of (wiliki))))
(if (pair? urls)
(receive (pred action)
(if (pair? (car urls))
(values (caar urls) (cadar urls))
(values (car urls) 'allow))
(if (pred url)
(if (eq? action 'allow)
`((img (@ (src ,url)
,@(get-opt "width")
,@(get-opt "height")
,@(get-opt "longdesc")
,@(get-opt "alt")
,@(get-opt "align")
,@(get-opt "id")
,@(get-opt "class")
,@(get-opt "title"))))
(badimg))
(loop (cdr urls))))
(badimg)))
)