EDoMaE(Extensive Document Management and Execution)

Sun Jun 17 18:37:04 2007

概要

開発の目的

EDoMaEは以下の要求から開発しました。

このため、以下のように考えて設計しました。

これらを以下のようにして実現しました。

実現

EDoMaEはLinux上で、Cを使って開発されています。XMLのパーザとしては、 libxml2を使っています。

文書表現としてSmartDocを使っ ていますが、表示のためのレンダリングは、独自に書いたプログラムでリアル タイムに行っています(見た目がSmartDoc臭いのは、SmardDocのスタイルファイ ルの流用だからです)。

仕様

タグ

SmartDoc

SmartDocのタグのうち、以下の ものが使用可能です。ただし、サポートしているタグでも、全ての属性に対応 しているわけではありません。

属性については以下の拡張がされています。この拡張については、 ddocprocを走らせることにより、オリジナルと互換性のあるsdoc文 書に変換されます。

属性 意味 デフォルト
filter 入力フィルタの指定。src属性で指定されたファイルにこのフィ ルタを適用してから読み込む。 -

filter属性

filter

				フィルタクラス ':' [ 入力タイプ ] ':' [ フィルタオプション ]
			  

という形式の文字列で指定します。フィルタクラスには、

があります。入力タイプには、

といったものがあります。

名前空間 /core/ddoc

以下のタグが使用可能です。

名前空間 http://www.gnumeric.org/v10.dtd

この名前空間はGnumeric のテーブルを表現するものです。EDoMaEでは、Gnumericをtableとして認識し て表示します。

名前空間 /core/madoc

以下のタグが使用可能です。

exec属性

exec

				クラス [ ':' コマンド文字列 ]
			  

という形式の文字列で指定します。クラスには、

文字列マクロ

コマンド文字列やフィルタオプションには、

			  $名前
			

のように、名前の前に$を前置してやることにより、システムの持っている変 数を参照することが可能です。

名前 使える場所 意味
inputfile /core/madoc 実行されるコマンドの入力となるファイル名
outputfile filter 実行されるコマンドの出力となるファイル名
srcfile /core/madoc その文脈で指定されたsrc
event /core/madoc formのeventで指定された文字列
oid どこでも 今見ている文書のoid
_sesid どこでも セションを識別する文字列
user どこでも 利用しているユーザ名

この他、formの中で指定したname=の変数は全て使用可能です。

更新履歴

2007-06-17  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/view.c (ViewObject): XHTML化

	* tags.c (_Head, _Body, _eBody, _eHtml): ヘッダを出さない処理

	* src/storage.c (ImportFile): input.c/GetFileBody()を使うようにした

	* src/ddoc.c (LoadTemplateHeader): <body>を含んだテンプレートが作れるようにした。これにより、任意の位置に処理結果が埋め込める

	* src/exdoc.c (SetDefault): セションファイルを作らないオプション追加(通常はなくても困らない)

	* src/ddocproc.c (SetDefault): MyNameを指定可能にした。ヘッダ等を出力しないオプションをつけた

2007-03-22  Masami Ogoshi  <ogochan@nurs.or.jp>

	* 全体に最新にし、コードを整理した。amd64に対応した

2005-12-07  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/load.c (LoadSource): ddoc/sdoc文書は再帰的に読み込むようにした

2005-11-30  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/load.c (ReFormatDoc): タグの掃除をやめた(バグ大杉)

	* 中村さんのパッチを吸収(Alpha CPUで動くらしい)

	* src/xsdoc.c (__FigureImg): TeX用の処理を追加した

	* libmondaiを使うようにした(分離は諦めた)

	* src/gnumeric.c: gnumericの表にlongtable, multicolumnを使うようにした

2004-07-11  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/ddoc.c (_Permit): 権限のタグを用意した

	* src/load.c (LoadDDoc): フィルタが有効になるようにした

2004-06-21  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/ddoc.c (_Login): 途中でloginするためのタグをつくった
	(ExpandMacro): 時間に関するマクロ文字追加
	
2004-06-14  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/ddoc.c (ParseOp): フィルタのコマンドライン処理の一元化

2004-06-09  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/xsdoc.c (InitializeSDoc): figureで読み込みを間違えるbug fix

	* src/storage.c: 履歴管理を制御するようにした(defaultは履歴を取ら
	ない)

	* src/load.c (ParseText): 空白の後の文字を落とすbugをfix

2004-06-08  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/xmadoc.c (OpExec): プログラムの実行とXML生成機構をつけた

2004-05-21  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/load.c (_Xslt): XSLTを組み込んだ

2004-05-19  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/load.c (LoadSource): 読み込みを汎用手続き化した
	(NewFilter): 読み込みにフィルタを設けた

2004-05-18  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/exdoc.c (CreateAnonymousSession): セションを持っていない時の
	処理を直した

2004-05-17  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/cgi.c (PutHTML): domainの間違いを直した

2004-05-15  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/load.c (ExpandTab): untabをつけた(ないとTeXで困る)

	* src/storage.c (CheckCoding): codesetのデフォルトをiso-2022-jpにした

2004-05-14  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/load.c (LoadSource): srcがどこでも書けるようにした

2004-05-13  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/xsdoc.c, src/gnumeric.c : TeX出力に対応

2004-05-09  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/load.c: 読み込み時にXMLを綺麗にする処理を加えた(内部的にはほ
	ぼ完全なXMLとして処理ができるはず)

2004-05-04  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/gnumeric.c: gnumericのXMLをtableとして表示できるようにした

2004-04-30  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/xmadoc.c (AccCheck): 権限をMetaInfoから継承するようにした(一々
	指定するのは面倒だから)	

2004-04-28  Masami Ogoshi  <ogochan@nurs.or.jp>

	* 公開(20040428)

	* src/ddoc.c (DoDDocMain): モジュールの独立性を上げた

2004-04-22  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/xmadoc.c (_Include): include要素追加

2004-04-21  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/xmadoc.c (_Change): class属性の追加, upload要素追加

2004-04-18  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/xsdoc.c (_Figure): pngがなくても表示できるようにした(拡大もできていい)

	* src/ddoc.c (SetId): 編集のidを自動的につけるようにした

2004-04-17  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/storage.c (SaveMetaInfo): 雛型情報を入れるようにした

	* src/opMenu.c: 編集画面を元のフレームの中にした(いろいろ不便なため)

2004-04-16  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/struct.h: exdoc.hから分離

	* src/ddoc2sdoc.c: 新規追加

2004-04-12  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/xmadoc.c (ParseXML): XMLでの入力に対応

2004-04-09  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/ddoc.c : editタグ(指定範囲の編集)。アクセスリストの処理

	* src/xiki.c : コマンドラインからの実行。ユーザ指定

2004-04-08  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/sdoc.c: (Pure)SmartDocへの対応開始(そこそこ動く)

2004-04-04  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/xiki.h: 実行権についての設定を追加

2004-03-28  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/storage.c (NewAccList): アクセス管理のしかたを簡略化した

2004-03-23  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/xiki.c (ShowUser): 利用者情報の管理

	* src/storage.c (SaveUserInfo): 利用者情報の管理

2004-03-21  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/opNode.c (OpChangeNodeName): ノードに名前がつけられるようにした

2004-03-20  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/auth.c: 認証を別プログラムにしてshadowにも対応した

2004-03-19  Masami Ogoshi  <ogochan@nurs.or.jp>

	* src/xiki.c (Main): name -> oid(nameは論理的な名前で使うべき)