[トップ] [更新履歴] [著書] [コンピュータ] [ゲーム] [CGI配布]
RDによる文芸的プログラミングを支援するツール。
文芸的プログラミング。 これは、プログラムと同じファイルにドキュメントを書くことで常に整合性の取れたプログラムとドキュメントを作成する手法。 同じファイル、それもプログラムの該当部分に近いところにドキュメントを記述するために、プログラムと同時にドキュメントも手軽に修正することが可能。
増井さんのアプローチでは一つのHTMLにプログラムとドキュメントを書いているが、ここではRDを使うことにする。 もともとRDはRubyスクリプトに埋め込むために作られたので、RubyスクリプトにRDを埋め込むだけでも文芸的プログラミングと言うこともできるが、ここではもう一つ踏み込んだアプローチを取る。
HTMLにプログラムとドキュメントを書く場合は「プログラムを含んだドキュメント」である。 対してRubyスクリプトにRDを埋め込む場合は「ドキュメントを含んだプログラム」となる。 前者の場合、ドキュメントそのものをウェブにアップでき、かつ一つのファイルからすべてのソースファイルを取り出すことができるという利点がある反面、プログラムを書き換えるときはそのプログラムを含んだHTMLを書き換えないといけないので、書き換えるたびにHTMLからプログラムを取り出す手間がある。 後者の場合はそのまま実行できるが、ソースが複数ある場合ドキュメントを完成させるためには複数のソースファイルが必要になってしまう。 ただ、Rubyのようなインタプリタ言語の場合はすぐに実行できた方が嬉しいし、せっかくRDという書きやすいドキュメント体系があるのだから俺はこっちを選択する。 それにソースファイルが一個の小さなプログラムの場合はその欠点はなくなる。
ドキュメントソースすなわちプログラムのファイルが複数ある場合、ドキュメントを結合する順序に気を配らないといけないが、結合する順序をテンプレートに記述すればよい。
すみません、いろんなツールに依存してます(^^;;
GNU make。
使い方は次の2ステップになる。
出力するRDのテンプレートを生成する。 これは最初の一回だけやればよい。
方法1:index.templateを編集する
方法2:ソースファイルを指定して起動
HTMLを生成する。
テンプレートはeRuby RDとなっている。
いじるとすれば「#### config」部分の $src_files 変数くらいだろう。 その変数はRD(が含まれたファイル)を結合する順にファイルを並べている配列である。 そこをいじることでRDを結合する順番を変更することができるし、新たにRDを加えることもできる。
「#### rd_part」以下はHTMLをどのように出力するかを書いている。
setupメソッドに記述してある変数は ~/.rweave に書くことで好きなように設定できる。 HTML出力形式を変えたり、Makefileをいじったりするときには ~/.rweave に書けばいい。 見ての通り、setupメソッドの最後に ~/.rweave が読み込まれる。
スクリプトからRD部分を切り出して結合する。
スクリプトからRubyスクリプトのみを抜き出す。
テンプレート(eRuby RD)を出力する。
スクリプトよりRDとHTMLを生成する
テンプレート以外の生成したファイルをすべて削除する。
テンプレートも含め生成したファイルをすべて削除する。
cd /home/takashi/src/rweave/ /home/takashi/src/rweave/rweave.rb created rweave.mak. make -k -f rweave.mak rdpart ruby /home/takashi/src/rweave/rweave.rb rb2rd rweave.rb > rweave.rb.rdw make -k -f rweave.mak rd2 -r rd/rd2html-lib.rb --with-part=html:include --out-code=jis index.rd > index.html || rm -f index.html Interpretation finished at Wed Oct 17 09:17:23
*1Cygwinのmakeはいずこに?