Kahua内でのCSSの扱い

今まで、site/static/css/以下に静的に置いていたけどやっとKahua内からの扱い方が分かったのでメモ。
以前ソースコードでちらっと見たんだけど、時間が取れなくて放置していたのを確認した。


Kahuaソースコードのsrc/kahua/server.scmの下の方に書いてあるのを発見。
コメントからコピペ

(define-entry (test.css)
  `((css
     (:class status-completed
      (background-color "rgb(231,231,231)"))

     (:class status-open
      (background-color "rgb(255, 225, 225)")))))

(head/ (link/ (@/ (rel "stylesheet") (type "text/css")
         (href (kahua-self-uri-full "test.css")))))


つまり、define-entryでcssを書いて、kahua-self-uri-fullでcssを指定すればOKみたい。

.hoge {
...
}

#fuga {
...
}

(:class hoge
...
)
(:id hoge
...
)
body {
...
}

なら

(body
...
)


さらに複雑な形でもOK。

body#hr {
...
}

なら

(body :id hr
...
)

といった具合。


指定する値も簡単。

body {
	width:60%;
}

なら

(body
	(width "60%")
)

となる。
動作を理解するのに色々実験して時間が掛かったけど、分かれば実に簡単。