| TOP>>概略>>WALRUSとは何か | <概略> | ツアー | OBAQ | 構成定義 | アプリケーションサーバ | リファレンス | サイトマップ |
コンテンツ作成ツールとしてのWALRUSこのマニュアルはWALRUSで作成されています。 WALRUSを使用すると、このマニュアルのような構造を持った一連のコンテンツを 最低限の労力で作成しメンテナンスして行くことができます。 このマニュアルについてこのマニュアルのページにある要素を見ていくと、次のような要素から成りたっています。
この中の1.〜4.については、WALRUSが自動生成しています。 構成定義ファイルサイト全体の構造を記述するのが次のようなファイルです。 ManualFolder gaiyou title=WALRUSとは何か source_dir=. description = <<END ここでは、WALRUSとは何かを説明します。 END ManualIndex index.html ManualDoc gaiyo1.html title=WALRUSとは ManualDoc gaiyo2.html title=テンプレート展開 ManualDoc gaiyo3.html title=コンテンツ作成ツール スクリプト定義ファイルの他に、100行ほどのスクリプトを書いています。 例えば、グローバルナビゲーションを生成しているのは、次のスクリプトです。 def_acq :global_navigation, <<-END
groups.collect do |g|
if g == mygroup
"<" + g.title + ">"
else
link(relative_path_to(g.index)) { g.title }
end
end
ENDテンプレート上記のスクリプトに次のようなHTMLテンプレートを組み合わせて、最終的な文書ができます。 <div align="center">
<table width="100%" border=1>
<tr>
<td align="center" id="global_navigation">GROUP</td>
</tr>
</table>
</div>スクリプトのHTMLが完全に分離しているので、 例えば、<table>要素で構成しているリンクを<ul>によるリストに変更するとか、 上部だけでなく下部にも同じナビゲーションバーを置くというような変更が、 テンプレートファイルを修正するだけで行なえます。 RDとの連動このマニュアルの本文はRDで記述されています。 RDは記述が簡単ですが、HTML生成ツールと考えるとやや柔軟性に欠ける所もあります。 Walrusでは、RD文書の処理にはRDToolのパーサーを使用していますが、 タグを指定した後処理を行なうことができます。 例えば、RD内にソースを引用する場合、verbatimという機能を使用しますが、 その内容は次のように出力されます。 <pre> puts "Hello, world" </pre> walrusでは、RD標準の処理の後に「<pre>要素は<div class=pre>〜</div>で囲 む」という指定を行なうことができます。その結果次のようになります。 <div class="pre"><pre> puts "Hello, world" </pre></div> 後は、この"pre"というclassに対してCSSでさまざまな指定することで、引用 部を強調して見やすくすることができます。実際、このマニュアルでは引用部 は、枠で囲まれマージンを多くとり背景が白になっています。 この指定を行なっているスクリプト(構成定義ファイル)は次のようなものです。 ElementFilterItem -- tagname=pre
.def filter(obj, element) {{
element.set_tag(:div)
element[:class] = "pre"
element.init_body {
e(:pre) {
element.body
}
}
}} |