kobapan@wiLiki
Login
Gauche

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

Debian
Emacs
Firefox
Gauche
JavaScript
Linux
Scheme
org-mode/latex

More ...