RD2XML for MocaScript - convert rd files to XML
主にRubyで使われるドキュメント形式であるRD形式を、 XMLに変換するMocaScriptLibraryです。 一般には、これで生成したXMLをXSLTでHTMLに変換して使うことになります。
RDの存在を知って、いろいろ遊んでみようと思ったのですが、 RDtoolはRubyが必要な上に、外部依存のライブラリを集めるだけで一苦労、 Windowsで動かすためにコンパイル済みのライブラリを探すのでへとへと、 とあまりに大変だったので、あきらめかけました。 そんなこんなで逆に開き直って、自分でRD解析機を作ることにしたのです。
どの言語で作ろうか、少し迷ったのですが、 ここはせっかくなのでMocaScriptで作ることにしました。 MocaScriptで作っておけば、JavaScriptに移植するのも楽ですし、 JavaScriptで動けば、近頃のOSにはたいていブラウザが存在し、JavaScriptが動くので、 まさに“Write Once, Run Anywhere”です。(違
これはRDtoolのように、単体でRDから任意の形式に変換することを目指さず、 一度中間形式としてのXMLに変換して、その後XSLTで任意の形式に変換することにしました。 このため、別の形式に変換したくなったとしても、 このスクリプトのソースを細部まで読まなくてもよく、 XSLTだけを書けばよいのです。
本スクリプトは「RDtoolのMocaScript版」ではなく、 RD working draft 日本語版を参考に、RD解析・表現を独自に実装しているため、 RD処理機の事実上の標準であるRDtoolとは、解釈が異なる場合があります。
これがどのように働くのかわかりにくいときは、 このライブラリ自体の解説もRDで書かれているので、 まずこのファイルを変換してみるとわかりやすいでしょう。
ただ実行しても「ファイルが指定されていません」とエラーが出ます。
global.array_of_rd2xml_filesに二次元arrayをあらかじめセットしておいた上で、
他のMocaScriptからrunScript("rd2xml:Files")
と呼び出して使います。
global.array_of_rd2xml_files=[ ['C:/rd/rdtest.rd','C:/xml/rdtest.xml'], ['C:/Program Files/Anchor/share/script/rd2xml.ms','C:/xml/rd2xml.xml' ,'C:/xml/readme.xsl','C:/xml/rd2xml.html'] ]; runScript("rd2xml.ms:Files");
一切を放棄し、PublicDomainとします。 このソースの一部または全部を利用しても、著作権表示をする必要はありませんし、 派生物のソースを公開する義務もありません。 このスクリプトを綺麗に書き直して下さった場合、公開してくださると助かりますが、 これもやはり義務ではありません。
ちなみに、RDtoolのソースは一切見ていません。 参考にしたのは、RD working draft 日本語版と、RD事始めの紹介の部分です。 CGI版RDコンバータのソースは見ていません。 言語規格に著作権は無いはずなので、このスクリプトの著作権は成瀬のみに属していました。
成瀬ゆい ≪mailto:naruse@airemix.com≫
Copyright (c) 2001-2003 Airemix. No rights reserved.