CL-Wiki (仮) - Common Lisp 製 Wiki/Weblog
これは何?
CommonLisp で書かれためずらしい Wiki/Weblog です。 CLISP または CMUCL + CLOCC の環境で動作します.Wiki ベースの簡易な文法でページを編集し,最終的に 最終的にスタティックな HTML を生成して Web スペースにアップロードするという のを目標に開発しています.
主な特徴として,
- ほとんど完全に Common Lisp で書かれており非常に珍しい.
- CLISP と CMUCL + CLOCC に対応している.(なるべく処理系依存の機能や外部ライブラリを使わないようにしているため,ソケットのあたりをなんとかすれば他の処理系への移植も簡単)
- ↑の結果として正規表現を全く使用しておらず、正規表現嫌いの人も安心
- 簡単インストール.さらに WindowsXP + CLISP でテストされている(blog.bat をダブルクリックするだけで使える!)
- Web サーバー機能込みなので、Apache とかは不要。これだけで使えます。
- Wiki ライクな文法で Web ブラウザを使って編集するため Emacs を知らなくても使える
- Weblog を書く為に必要な機能を一部装備(年月日.html でアクセスできる URL とか,最新 10 件の log を表示するとか)
- プラグインとして簡単にコマンドを拡張できる
- 簡易検索機能
- 静的な HTML を生成する事が可能なため Lisp が使えないサーバーでもコンテンツが再利用可能
- Lisp ← このような検索結果ページもちゃんとスタティックな HTML に変換されます。
- プラグインの動作を動的な HTML 生成と静的な HTML 生成な場合で場合分けが可能。(静的な HTML を生成した場合にのみ google 検索を付けるとか)
将来的には
- Perl あたりで下位互換の CGI を作って Lisp が使えないサーバーでもデータの再利用ができる(ようにしたい) - 思ってるだけ
のような機能をつける予定です.
プラグイン一覧
- /(abbrev "Key") - expand keyword.
- /(calendar [month] [year] [:center|:right]) - calendar plugin.
- /(copyright) - insert copyright
- /(create-today-log) - create today log button.
- /(google) - insert google search.
- /(hoge W H) - show W x H table days log.
- /(html [:strong|:em|:del|:u|:b] "str") - html tag.
- /(image "url" [:center] [:320x240]) - insert image.
- /(include "page name") - include page.
- /(index [:days|:pages|:files|:plugins]) - make index list
- /(lastupdate) - insert last update date.
- _(Link) or _(Link|Title) - insert link.
- /(netnews "message-id" ["subject"]) - link to message-id.
- /(rdf-recent-changes) - insert recent changes list. (for RDF file)
- /(recent-changes) - insert recent changes list.
- /(search [:all|:pages|:days] ["keyword"]+) - search keyword.
- /(site-url) - insert site-url
- /(title) - insert title.
- /(weblog [N]) - show N days log.
動作環境
現在の環境でテストされています.
- GNU CLISP 2.33 on WindowsXP
- GNU CLISP 2.33 on FreeBSD 4.9 Release
- CMU Common Lisp 18e + CLOCC on FreeBSD 5.2.1 Release
動いた,動かない,等の報告は mailto:lambda_list@hotmail.com までどうぞ.ついでに御意見御要望もお待ちしております. バグ報告やパッチ等も歓迎します.
Download
- CL-Wiki
- CL-Wiki for Windows - CLISP included
起動方法
(load "start.lisp")
ToDo
- RSS だけじゃなくて HTML でも ChangeLog を見たい
- 初期化のあたりでサーバーの起動と blog の読み込みを分離したい
- CLISP とメモリイメージを持ち運ぶだけでどこでも Wiki とか
- Wiki の構文をまともにしたい.
- Emacs 用の編集クライアントがほしい(w3m + Emacs で満足なのでこんな優先度に…)
- HTTP にそれなりに対応したい.
終わった
- ページ内の見出しからページ内リンクを作るプラグインが欲しい
- ChangeLog をファイルに保存するようにして RSS とか作れるようにしたい
- publish コマンドでスタティックな HTML を生成するようにしたい
- 流行のプライグイン機能みたいなのを作りたい