[kiki] kiki記法について検討

基本的にhtml要素なら高階タグ関数で何でもかけるようにしておこうと思うのだけれど、独自の便利なタグをいくつか準備したい。

Tex的に構造的な文章を書けるようにしたいのだけれど、HTMLそのままじゃ基本的にだめ。

CSSとかをいじれば、章番号を振るのとかできたりするらしいけど、とりあえず色々関数やマクロを書いてみようと思った。

そして"/sub"というタグを考えてみた。

(def *lvfmt* '("font-size: 100%"
               "font-size: 90%"
               "font-size: 80%"
              ))

(mac (/env cont)
  `(let *1

(mac (/sub subj . cont)
  `(div/
    (h1/ (@/ (style (ref *lvfmt* *lv*)))
         ( *idx) ":" ,subj)
    (let ( ( *lv* (+ *lv* 1))
           ( *idx (let1 x 0
                  (fn ()
                    (set! x (+ x 1))))))
      (div/ (@/ (style "margin-left:20px")) ,@cont))))

まだかなり適当すぎるコードなのだけれど、一応動いた。

(/env
  (/sub "タイトル"
   "本文本文本文。。。。。。。"
   "本文。。。。。。。。。。。"

    (/sub "サブタイトル"
     "本文本文")
。。。

こんな感じで書くと構造的に表示してくれる。
HTMLの表現力はかなり劣悪なのだけれど、まだまだWebの世界がビジネスの主戦場なので、LISPでHTML生成用のTeXのようなものを作れば、事業起こすときなんかもアドバンテージになりそう。

Objectデータベースとかも、うまく使いたいなあ。

おいおい、Bigtable on GFSみたいなのを独自で作ろう。

あと、セッション情報を振り分ける仕組みとかも、まだぜんぜん知らない。

*1: *idx (let1 x 0 (fn () (set! x (+ x 1)))))) ,cont