Kahua4 アプリケーションを作る
前回でやっと基本的な部分の説明が終わりました。
今回から、やっとアプリケーションの作成に移れます。
appname/appname/appname.kahuaがアプリケーションのソースコードです。
ソースコードに入る前に、拡張子がkahuaなのでVimユーザは設定をしておきます。Kahua.orgの関係者はEmacsユーザばかりらしく、Vim関係については書いていないですorz。
とりあえず、以下を~/.vimrcに追加しておけば*.kahuaがschemeのシンタックスで表示されます。
au BufRead,BufNewFile *.kahua set filetype=scheme
さてソースコードを見ていきます。
(load "appname/version.kahua") (define page-template (kahua:make-xml-template (kahua-template-path "appname/page.xml"))) (define-entry (version) (kahua:xml-template->sxml page-template :title (title/ (@/ (id "title")) "appname") :body (div/ (@/ (id "body")) (h1/ (format "appname: version ~a" *appname-version*)) (a/cont/ (@@/ (cont greeting)) "greeting")))) (define-entry (greeting) (kahua:xml-template->sxml page-template :body (div/ (@/ (id "body")) (h1/ "Hello, Kahua!") (a/cont/ (@@/ (cont version)) "version")))) ; ; initialization ; (initialize-main-proc greeting)
まあ、説明はKahua.org Tutorial|step2を見れば早いのですが一応最低限だけ。
- "define-entry"でページを生成できます。
- "define-entry"で作成したページは"a/cont/"でリンクが張れます。
- 表示するページはappname/templates/page.xmlにappname.kahuaの内容で修正して表示する。
- ":title"とかはpage.xmlのidの値を示していて、そこを修正している。
- なので、page.xmlに無い部分を修正はできないので、場合によってはpage.xmlの修正も必要。
- 前回にも書いたけど、Kahuaのモジュールを追加するにはplugins/appname.scmに書く必要がある。Gauche側のを使う場合はappaname.kahuaに書いても良い。
まあざっとこんな感じ。
次回は情報がほとんど無く分かり辛かったformでボタンを押したときの動作の実現について書いていきます。