<?xml version="1.0" encoding="Shift_JIS" ?>

<document>

 <properties>
  <title>Texen</title>
  <author email="jvanzyl@locus.apache.org">Velocity Documentation Team</author>
  <translator>熊坂祐二</translator>
  <original>texen</original>
 </properties>

<body>

<section name="Texen とは?">

<p>
Texen は、汎用テキスト生成ユーティリティです。
それは、ほとんどどんな種類のテキストでも生成することができます。
Ant によって実行さるその実体は、<a href="http://jakarta.apache.org/ant/">Ant</a> タスクで、
Texen は、制御テンプレート、オプションでワーカーテンプレートの組と、出力生成するための
制御コンテキストを使用します。
TexenTask を直接使用することができますが、
どんな出力でも生成する前にあなたの制御コンテキストを初期化することは通常サブクラス化されます。
</p>
<p>
Texen は、Turbine Web アプリケーション・フレームワークで必要とされるソース生成を行なうために作成されました。
<a href="http://jakarta.apache.org/turbine/">Turbine</a> にある
<a href="http://jakarta.apache.org/turbine/torque.html">Torque</a> ユーティリティ
（それは TexenTask のサブクラスです）では、Turbine プロジェクトのために SQL
とオブジェクト-関係のある写像したソースを生成することに対して責任があります。
これは、1つの例にすぎません;
あなたは、テキスト出力のどんな種類でも生成するために Texen を使うことができます！
</p>
</section>

<section name="TexenTask">

<p>
この一般的な例（それは Ant build.xml から Texen を使う方法を示します）は、
Texen 仕組みが働く方法を図しています。
</p>
<p>
<em>Ant Build File</em>
</p>

<source><![CDATA[
<project name="HtmlGenerator" default="main" basedir=".">

  <taskdef name="texen" classname="org.apache.velocity.texen.ant.TexenTask"/>

  <!-- ================================================================ -->
  <!-- G E N E R A T E  H T M L  P A G E S                              -->
  <!-- ================================================================ -->
  <!-- This target will generate a set of HTML pages based on           -->
  <!-- the information in our control context.                          -->
  <!-- ================================================================ -->

  <target name="main">

    <echo message="+------------------------------------------+"/>
    <echo message="|                                          |"/>
    <echo message="| Generating HTML pages!                   |"/>
    <echo message="|                                          |"/>
    <echo message="+------------------------------------------+"/>

    <texen
      controlTemplate="Control.vm"
      outputDirectory="."
      templatePath="."
      outputFile="generation.report"
    />

  </target>

</project>
]]></source>

<p>
<em>Control Template</em>
</p>

<source><![CDATA[
#*

file: Control.vm

This is the control template for our HTML
page generator!

*#

#set ($Planets = ["Earth", "Mars", "Venus"])

#foreach ($planet in $Planets)

    #set ($outputFile = strings.concat([$planet, ".html"]))
    $generator.parse("HtmlTemplate.vm", $outputFile, "planet", $planet)

#end
]]></source>

<p>
<em>Worker Template</em>
</p>

<source><![CDATA[
#*

file: HtmlTemplate.vm

This is worker template. It is called by the
control template to produce useful output (or
not so useful in this case). :-)

*#

#set ($bgcolor = "#ffffff")

<html>
  <head>
    <title>
      Everything you wanted to know about $planet!
    </title>
  </head>
  <body bgcolor="$bgcolor">

  $planet is a great place to live!

  </body>
</html>
]]></source>

<p>
Texen は、3 つの html ページを生成します：
Earth.html、Mars.html と Venus.html です。
もっと便利にするためには、TexenTask をサブクラス化したり、
制御コンテキストにオブジェクトを何か置いたり、
役立つ出力を生成するために制御コンテキストに情報を置いたりします。
</p>

<p>
Texen の全機能の例は、Turbine での Torque ユーティリティを参照してください。
Torque のスタンドアローン版は、
<a href="http://jakarta.apache.org/builds/jakarta-turbine/release/">ここ</a>
にあります。
</p>
</section>

</body>
</document>
