Gauche:WiLiKiのblogモジュールを使う
目次
WiLiKiのインストール
WiLiKi:Scheme処理系Gaucheで書かれたWikiエンジン。
以下が必要なので、Gitからのインストールをする
WiLiKi/examples/blog
WiLiKi/src/wiliki/auth.scm
私のテストしたのは、リビジョンが「22c896179974166876d6713be364a6829e59a8b0」のもの。
blog モジュールの設定
1.ディレクトリを作ったり、ファイルをコピーしたり
%mkdir ~/data %mkdir ~/www/blog/ %cd ~/git/WiLiKi/examples/blog/ %cp blog.css ~/www/blog/ %cp blog.scm ~/share/gauche-0.9/site/lib/
2.パスワードファイルを作る
%wiliki-passwd パスワードファイル名 ログイン名 パスワード
3.~/www/blog/index.cgi を作る
#!/home/ユーザ名/bin/gosh (use wiliki) (use dbm.fsdbm) (use blog) (use wiliki.rss) (rss-item-description 'html) ; HTMLフォーマットされた内容のRSS (define (main args) (wiliki-main (make <blog> :author "ログイン名" :login-command "ログインURLに使う文字列" :auth-db-path "パスワードファイルへの絶対パス" :db-path "/home/ユーザ名/data/blog-file.dbm" :db-type <fsdbm> :log-file "blog-file.log" ;編集履歴.ファイル名のみで書くと、db-pathのディレクトリに出来る :event-log-file "blog-events.log" ;db-pathのディレクトリに出来る :top-page "トップページ名" ;初回アクセス時に勝手に作られる :title "サイト名" :description "サイトの説明" :style-sheet '("blog.css" "page.css") :language 'jp :charsets '((jp . utf-8) (en . utf-8)) :image-urls '((#/^http:\/\/[-\w.]*amazon.com\// allow) ;インライン展開を許す画像の正規表現 (#/^\// allow)) :debug-level 0 ;0 に変更すること )))
4.さくらはファイルおよびディレクトリのパーミッションが705か755じゃないと、500エラーが出る
%chmod 705 ~/www/blog/index.cgi
ログイン
新規ページの作成や編集などを行う際は以下URLにアクセスしてログインする
http://YOUR_SITE_URL/index.cgi?c=ログインURLに使う文字列
「ログインURLに使う文字列」は、index.cgiの中で指定した文字列のこと
サイドバーの編集
_SidePane という予約されたページ名があるので、これを編集する ログインした状態で以下URL へアクセスして、Editボタンを押す
http://YOUR_SITE_URL/index.cgi?_SidePane
画像 を表示
本文に画像を表示させるには、許可するURLパターンをindex.cgiで設定しておくひつようがある。 設定例)
:image-urls '((#/^http:\/\/farm[0-9]+.staticflickr.com\// allow))
[[$$img http://farm3.staticflickr.com/hoge.jpg]]
ページのタイトル
New を押すと、「YYYYMMDD-」という文字列があらかじめ書かれた入力欄が表れる。「YYYYMMDD-」に続けてブログのタイトルを記入するのだが、さて、その記事を表示させたときにページ内にタイトルが表示されない。記事上部のナビゲーションには、本文の最初の空白文字までの文字列が摘要されていることから、タイトルは別途記載する必要があるようだ。 記事例)
*初投稿 ←ここがナビゲーションに表示される ほにゃらら本文 本文ほにゃらら
しかし、$$index や $$cindex マクロで、記事の一覧を表示すると、「YYYYMMDD-タイトル」という状態で表示されてしまう。かといって「YYYYMMDD-」を記入しないタイトルを使うと、記事の日付情報がなくなってしまうようだ。うむむ。
自分で改造するしかないか、とおもっていたら、ソースの中にいろいろなマクロが置いてあった。
WiLiKi blog モジュール内のマクロ
最近の記事タイトル一覧。
$$recent-entries
最近のコメント一覧。
$$recent-comments
トップページ専用。最新ブログ記事の全文一覧を表示してくれる
$$top-page-contents
本文にコメント欄を表示
$$comment
Amazonアフィリエイト
$$amazon-affiliate-link asin text $$amazon-affiliate asin [domain=us/jp float=right/left]
affiliate id がpractschemで決め打ちだった(笑) 例)
[[$$amazon-affiliate-link 4540121162 "写真ルポ イマドキの野生動物-人間なんて恐くない"]] [[$$amazon-affiliate 0547773706 domain=us float=right]]
Google Map を表示
$$google-map title ll=地図の中心の緯度経度 spn=「z」を指定したときは効かない z=ズーム。0~20くらい [width= height=]
例)
[[$$google-map 狼煙町 ll=37.524669,137.312787 spn=0 z=14]]]
Gist を表示
$$gist id
例)
[[$$gist 9086554]]
可変引数の渡し方は、wiliki/core.scm の (define-macro (let-macro-keywords* に従っている。
WiLiKi編集の仕方
タグ
[[$$tag 継続 call/cc]]
がTag:継続、Tag:call/ccなどの ページへのリンクになる。 これらのページはvirtual pageで、 同じタグを持つページのリンクの一覧を表示する タグを 編集しても最長で1時間はTag:*のページに反映されない。 "Update cache now" のボタンをクリックするとキャッシュを破棄して検索しなす
引用
行の先頭に空白を入れる
複数行にまたがるときは、全行の先頭に空白を入れる
もしくは
{{{ }}}
で囲む
code
3連ダブルクオートで囲む
見出し
* 見出しh1 ** 見出しh2 *** 見出しh3
強調
''文字''
Gauche Scheme Lisp