review-preproc ユーザガイド
Re:VIEWではソースコードなどを本文中に埋め込むことができます。
#@mapfile
#@mapfile
以下はscripts/hello.rb
のソースを本文内に埋め込んでいます。
「#@mapfile(ファイル名)
」から「#@end
」は、指定したファイル名のファイル全体を本文中に埋め込むための記法です。埋め込む際には、review-preproc
コマンドを実行します。
まず、以下のように、引用したい部分に「#@mapfile()
」と「#@end
」だけを書きます。ここでは//list
ブロック内にこの2行だけを記述しています。
このソースに対して、review-preproc
コマンドを実行します。すると、変換結果の*.reファイルを標準出力に出力します。
--replace
オプションをつければ、ファイルそのものを置き換えるようになります。
なお、rakeを使ってビルドしている場合、Rakefileに以下のような記述を追加すると、このコマンドを実行するtaskが定義されます。
以下のように実行すれば、コマンドが実行されます。
#@maprange
#@maprange
対象ファイルの一部だけ抜粋することもできます。こちらは「#@maprange
」という記法を使います。
対象ファイルの抜粋したい部分の前後に、「#@range_begin(ID)
」と「#@range_end
」という記法を埋め込んでおきます。#@range_begin
の引数には、その断片を抽出する際に使用するIDを指定します。以下の例では「sample」というIDにしています。
*.reファイルのほうには、「#@mapfile(ファイル名)
」ではなく「#@maprange(ファイル名,ID)
」を記述します。
あとは、先ほど同様、review-preproc
コマンドかrake preproc
コマンドを実行します。そうすると、scripts/range.rb
の一部が抽出されて埋め込まれます。
#@@maprange
#@@maprange
もっとも、Ruby以外では「#@range_begin
」などがコメントと解釈されないこともあります。そのような場合、その言語のコメントの中に「#@@range_begin
」と「#@@range_end
」とを記述します。
Cのソースを例にします。対象となるrange.cは以下です。
put_hello関数の定義の前後で「#@@range_begin
」と「#@@range_end
」が使われています。
これに対し、*.reファイルでは#@maprange(scripts/range.c,sample)
と#@end
を記述します。
変換した結果、以下のようになります。
このようにすると、Cなどの言語のファイルに対しても、ソースの一部を抽出して埋め込むことができます。
Last updated