Boost::SpiritでCMS計画 (3)
Boost::spiritという変態的なライブラリを用いてWIkiライクなContents Management System(CMS)を作ろうという計画、前回の記事からかなり間があいてしまいましたが、ぼちぼち作業を再開しました。今回はその経過をお知らせしようと思います。
この計画の肝は、いかに楽をして構造化された文章を作るかというところにあるわけで、その為の記法、並びにその実装が重要となってくるわけですが、気がつけばその核の技術たる記法に名前をつけていませんでした。
そこで名前をつけることにしました。記法の名前ですが、完全俺様記法ということでFenrir Document、略してFDocにしました。以降FDocと表記します。
現段階でのFDoc記法は、前回の記事で書いたのとほぼ同じですが、
- FDocエリア(処理される部分)は=beginで始まって=endで終わる
- インライン要素は
- 下線 __ (下線を引きたい言葉) __
- 打ち消し線 == (打ち消したい言葉) ==
- 強調 '' 強調したい言葉 ''
- リンク [[ リンク先 (空白 エイリアス) ]]
- ブロック要素は
- 順序付リスト +で段階数指定 最後に&をつけることで継続
- 順序なしリスト -で段階数指定 最後に&をつけることで継続
- 見出し !で段階数指定
- ""(文字列)""はヒアドキュメントとして機能
- トップレベルで自動改行挿入、ただし直後がブロック要素の際は挿入されない
せっかく定めた記法なので、生涯長く付き合っていこうかと考えていますが、そのためには単一のFDocを元にHTMLやらPDF(の元となるTeX)やらが生成できて欲しいところです。こうなるためには、FDocを読み込んで文章構造を認識するパーサの部分と、パーサによって生成したモデルを元にHTMLやらTeXやらを出力するレンダリングエンジン(レンダラー)の部分を切り離す必要があります。そこで今回は、前のコードを改造してパーサとレンダラー(例えばHTML)を切り分けました。プロジェクト全体のソースはこの辺りにおいておきます。
この計画の今後の展開ですが、2つのことを考えています。
- 当初の計画がCMSを作るということだったので、webアプリケーションとして動作するような仕組みを考えています。普通のCGIでは少し面白みがないのでApacheのモジュールとして実装することを考えました。幸いにもmod_blosxomという、軽量CMS blosxomのApacheモジュール版が公開されているので、それを参考にモジュール化しようかと考えています。
- FDoc自体でも数式もサポートしようかと考えています。書式はTeXの記法を採用する予定で、その部分のパーサとレンダラーを開発中です。HTMLレンダラーでは画像では汚いので、Flashに落とし込もうかと考えています。そういうわけで『ActionScript 2.0メモ』等を参考に、EclipseでのAction Scriptの開発環境を整備しました。
コメント
コメントする
- 匿名でのコメントは受け付けておりません。
- お名前(ハンドル名可)とメールアドレスは必ず入力してください。
- メールアドレスを表示されたくないときはURLも必ず記入してください。
- コメント欄でHTMLタグは使用できません。
- コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。
- コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。
- 投稿ボタンを押してエラーがでなければ、投稿は成功しています。反映されるまでには少し時間がかかります。