Gauche:WiLiKiのマクロ
Tag: 書式
目次
Writerマクロ
名前が'$'ひとつから始まるマクロ名のものはページのコミット時に一度だけ展開されるもので、writerマクロと呼ばれます。
$date
ページのコミット時に、その時の日時(サーバのローカル時刻)へと展開されます。
Readerマクロ
$$include WikiName
WikiNameのページの内容をマクロ位置に挿入します。WikiNameを持つページが存在しない場合はこのマクロは展開されずに表示されます。
展開されたページはレンダリングルーチンにかけられるので、そこに$$includeマクロがあれば再帰的に展開されます。展開中にループを発見した場合は、次のように表示されます。
>>> $$include loop detected <<<
$$index prefix
WikiNameがprefixで始まるページをデータベース内で検索し、それらへのリンクをリスト形式で表示します。
例
[[$$index WiLiKi:リファレンスマニュアル]]
$$cindex prefix [separator]
Compact indexです。WikiNameがprefixで始まるページが検索され、それらへのリンクがseparatorを間にはさんで連続して表示されます。separatorが省略された場合はスペースが使われます。
例
[[$$cindex WiLiKi:リファレンスマニュアル ,]]
$$toc [WikiName]
WikiNameで指定されるページの見出しをリストにして表示します。目次的な表示が得られます。WikiNameが省略された場合は$$tocがあるページが使われます。このページの最初にある見出しのリストが$$tocにより生成されています。
見た目の改造
macro.scm - (make-ul headings 1 '() (^[_ ul] (list ul))) + `((div (@ (style "background-color: #F9F9F9; + border: 1px solid #AAAAAA; + font-size: 95%; + padding-top: 1em; + padding-right: 1.5em; + padding-bottom: 1em; + max-width: -moz-fit-content; + max-width: fit-content; + ")) + (p (@ (style "font-weight: bold;padding-left:1em;")) + "目次") + ,@(make-ul headings 1 '() (^[_ ul] (list ul))))))
$$img url [alt=alt-text] [caption=caption] [float=float]
url で指定される画像を参照するインラインイメージ (<img>)へと展開されます。alt-textが与えられた場合はそれがalt文字列として使われます。そうでなければalt文字列は"image"となります。
インラインイメージとして使える urlはサイトのカスタマイズによって指定可能です。使用が許可されていないurlが与えられた場合はインラインイメージではなくalt-textをアンカー文字列とするurlへのリンクとなります。
次のように書いて、画像サイズを指定することができます。
幅100(ピクセル) [[$$image http://pdbj.org/pdb_images/8abp_y.jpg width=100]]
$$tag tagname [tagname]
Tags: 書式, WiLiKi
のように表示される。
$$breadcrumb-links [page-name] [delim]
パンくずリスト
page-nameを起点に。省略時は現在のページ
delimのデフォルトは :
$$comment [id] [order] [textarea]
idのデフォルトは現在のページ
orderのデフォルトはnew->old
textareaのデフォルトはbottom
自作マクロ
自作マクロは、/home/ユーザ名/share/gauche-0.9/site/lib/more-macro.scm にでも書いておいて、wiliki.cgi に以下追加。
(load "more-macro.scm")
gist表示用リーダーマクロ
(define-reader-macro (gist . opt)
(let* ((user/id (get-optional opt ""))
(match (#/^([a-zA-Z]+[a-zA-Z-]*)\/([a-z0-9]+)$/ user/id)))
(if match
`((script (@ (src ,#"https://gist.github.com/~(match).js"))))
`((span "Usage [[$$gist user/id]]")))))
Gauche Scheme Lisp