ず's WiLiKi

image修正版




WiLiKiで許可されたサイトのみの画像リンクを許し,属性も指定できる.山口さんのと違って,属性と属性の間にコンマは入れません.

使用例:

[[$$image http://www.zukeran.org/shin/z.png alt=ず width=333]]

ず

(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)))
    )




[トップ] / [最近の更新] [一覧] / [RSS] / [お問い合わせ・情報提供]

本サイトはAmazonアソシエイト等のアフィリエイトサービスを利用しています
running on WiLiKi and Gauche