kobapan@wiLiki
Login
Gauche

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

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

More ...