You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@forrest.apache.org by je...@apache.org on 2002/10/13 18:54:41 UTC

cvs commit: xml-forrest/src/documentation/content/xdocs forrestbot-intro.xml primer.xml your-project.xml

jefft       2002/10/13 09:54:41

  Modified:    src/documentation/content/xdocs primer.xml your-project.xml
  Added:       src/documentation/content/xdocs forrestbot-intro.xml
  Log:
  Replace forrestbot-oriented "getting started" guide with one focused on the
  shbat distribution. The old one is stored in forrestbot-intro.xml, pending doc
  refactoring.
  
  Revision  Changes    Path
  1.13      +1 -2      xml-forrest/src/documentation/content/xdocs/primer.xml
  
  Index: primer.xml
  ===================================================================
  RCS file: /home/cvs/xml-forrest/src/documentation/content/xdocs/primer.xml,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- primer.xml	23 Sep 2002 11:34:39 -0000	1.12
  +++ primer.xml	13 Oct 2002 16:54:40 -0000	1.13
  @@ -338,8 +338,7 @@
           Serializer. Forrest also makes use of Cocoon's aggregation capabilities that
           merge multiple pipelines into one resulting output document.</p> 
         <p>A typical page generated using Forrest looks like this:</p>
  -      <figure src="images/page-areas.png" height="291" width="336"
  -       alt="Pages areas"/> 
  +      <figure src="images/page-areas.png" height="291" width="336" alt="Pages areas"/> 
         <p>This page is currently composed of two XML sources which are
           transformed by a different XSLT stylesheet, aggregated by Cocoon with a
           post-aggregation stylesheet adding the overall page grid and look &amp; feel.
  
  
  
  1.4       +409 -119  xml-forrest/src/documentation/content/xdocs/your-project.xml
  
  Index: your-project.xml
  ===================================================================
  RCS file: /home/cvs/xml-forrest/src/documentation/content/xdocs/your-project.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- your-project.xml	12 Oct 2002 04:43:01 -0000	1.3
  +++ your-project.xml	13 Oct 2002 16:54:40 -0000	1.4
  @@ -2,125 +2,415 @@
   <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" "document-v11.dtd">
   
   <document>
  - <header>
  -  <title>Your Project - getting started with using Forrest</title>
  -  <subtitle>Overview</subtitle>
  -  <version>0.1</version>
  -  <authors>
  -   <person name="David Crossley" email="crossley@apache.org"/>
  -  </authors>
  - </header>
  -
  - <body>
  - <section>
  -  <title>Goal</title>
  -  <p>
  -   You have your own project and you want to use Forrest to build the project
  -   documentation.
  -  </p>
  - </section>
  -
  - <section>
  -  <title>Introduction</title>
  -  <p>
  -   The <strong>ForrestBot</strong> will automatically build and publish your
  -   documentation on a regular basis. The versatile ForrestBot can retrieve
  -   source XML instances from various type of repository (e.g. local filesystem,
  -   local CVS, remote CVS), generate the documents, and copy the result to a
  -   local or remote location (optionally via secure methods). It can be run
  -   from the command-line as part of your documentation edit-build-review cycle,
  -   it can be called from cron to automate your website update, it can operate
  -   as a centralised docs-build service for a set of remote projects, it can do
  -   tasks in parallel, and do even more.
  -  </p>
  -  <p>
  -   This document provides a concise overview of one particular scenario. See
  -   <link href="forrestbot.html">The ForrestBot</link> for details and understand
  -   <link href="forrest-contract.html">Our Contract</link>.
  -   Please send your feedback to <code>forrest-dev</code> - the ForrestBot
  -   will be enhanced to meet diverse needs.
  -  </p>
  -  <p>
  -   (Building the documentation for the actual Forrest project is a separate
  -   issue. Use
  -   <code>./build.sh clean docs</code> ... that will provide overview
  -   documentation about how Forrest operates and how you can help to improve it.)
  -  </p>
  - </section>
  -
  - <section>
  -  <title>Establish project source directory</title>
  -  <p>The directory that contains your XML instances.</p>
  -  <ul>
  -   <li><code>PROJECT_HOME = /home/you/yourproject</code></li>
  -   <li><code>SRC_DOC = $PROJECT_HOME/src/documentation</code></li>
  -  </ul>
  -  <p>
  -   Your XML instance documents are at <code>$SRC_DOC/content/xdocs</code>
  -  </p>
  - </section>
  -
  - <section>
  -  <title>Establish project configuration</title>
  -  <p>
  -<code>cp $FORREST_HOME/forrestbot.conf.xml $PROJECT_HOME/yourproject.conf.xml</code>
  -   and edit it to replace the <code><![CDATA[<project>]]></code>
  -   definitions with our own, i.e.
  -  </p>
  -<source><![CDATA[
  -  <project name="yourProject-local">
  -    <prepare>
  -        <skin name="basic"/>
  -    </prepare>
  -    <get-src type="local-copy">
  -      <project-dir name="/home/you/yourproject" />
  -      <content-dir name="/home/you/yourproject/src/documentation"/>
  -    </get-src>
  -    <deploy type="local-copy">
  -      <destination name="/var/www/html/yourproject"/>
  -    </deploy>
  -  </project>
  -]]></source>
  - </section>
  -
  - <section>
  -  <title>Run ForrestBot</title>
  -  <source>
  -[you@localhost] cd $FORREST_HOME
  -[you@localhost] ./build.sh clean
  -[you@localhost] ./build.sh bot \
  --Dbot.forrestbot.xconf=$PROJECT_HOME/yourproject.conf.xml \
  --Dtemplate.echo=true
  -  </source>
  - </section>
  -
  - <section>
  -  <title>Next Steps</title>
  -  <p>Some enhancements to your local ForrestBot would be ...</p>
  -  <ul>
  -   <li>Add your own skin at 
  -   <code>$SRC_DOC/skins/yourproject</code> by copying one of the skins from
  -   <code>$FORREST_HOME/src/resources/skins</code> (use basic or forrest-site)
  -   </li>
  -   <li>Configure another <code><![CDATA[<project>]]></code> to conduct a secure
  -     copy to your public website.
  -   </li>
  -   <li>Manage your XML instances with CVS and instruct ForrestBot to get
  -     the source.
  -   </li>
  -   <li>Get it to send you email about ForrestBot activities.
  -   </li>
  -  </ul>
  - </section>
  -
  - <section>
  -  <title>Other methods</title>
  -  <p>The recent contribution of <strong>acorn</strong> (a simple Ant script that
  -   bootstraps Forrest for a new project.
  -See email discussion:
  -<link href="http://marc.theaimsgroup.com/?l=forrest-dev&amp;m=102958410525990">http://marc.theaimsgroup.com/?l=forrest-dev&amp;m=102958410525990</link>
  -  </p>
  - </section>
  +  <header>
  +    <title>Using Forrest</title>
  +    <subtitle>A tutorial on how to use Forrest in your own projects</subtitle>
  +    <version>0.9</version>
  +    <authors>
  +      <person name="Jeff Turner" email="jefft@apache.org"/>
  +    </authors>
  +  </header>
   
  +  <body>
  +    <section>
  +      <title>Introduction</title>
  +      <p>
  +        This tutorial will lead you through the process of installing Forrest, and using
  +        it to create a new project, or add Forrest-based docs to an existing project.
  +      </p>
  +    </section>
  +
  +    <section>
  +      <title>Getting the Forrest source</title>
  +      <p>
  +        Currently, the only way to get Forrest is through CVS. Please consult <link
  +          href="primer.html#cvs">The Forrest Primer</link> for a description of what
  +     this involves.</p>
  +   <p>Here is how to get Forrest with a shell-based CVS client:</p>
  +     <source>
  +~/apache$ export CVSROOT=:pserver:anoncvs@cvs.apache.org:/home/cvspublic
  +~/apache$ cvs login
  +Logging in to :pserver:anoncvs@cvs.apache.org:2401/home/cvspublic
  +CVS password: 
  +~/apache$ cvs checkout xml-forrest
  +U xml-forrest/.cvsignore
  +U xml-forrest/appendcp.bat
  +U xml-forrest/build-old.xml
  +U xml-forrest/build.bat
  +....
  +     </source>
  +   </section>
  +   <section>
  +     <title>Building and Installing Forrest</title>
  +     <p>
  +       To build Forrest, type <code>build dist</code> on Windows, or <code>./build.sh
  +         dist</code> on Unix. If everything is successful, you should see a message
  +       like this:
  +     </p>
  +     <source>
  +  *-----------------------------------------------------------------
  +  | installation notice 
  +  *-----------------------------------------------------------------
  +  | You have succesfully built the shell-bat distribution of forrest.
  +  | Please find it at: ./build/dist/shbat
  +  | Please copy the contents to the install directory of your choice
  +  | Please have the environment variable FORREST_HOME point to it.
  +  | It is recommended to add
  +  |    unix: $FORREST_HOME/bin: to your $PATH
  +  |    win: %FORREST_HOME%\bin; to your %PATH%
  +  | Calling
  +  |    unix: $FORREST_HOME/bin/forrest -projecthelp
  +  |    win: %FORREST_HOME%\bin\forrest -projecthelp
  +  | Will list options for the forrest command
  +  | More help at http://xml.apache.org/forrest and forrest-dev@xml.apache.org
  +  *-----------------------------------------------------------------
  +     </source>
  +     <p>
  +       You now have the binary distribution built in <code>build/dist/shbat</code>.
  +       Copy it somewhere more sensible if you like (eg
  +       <code>/usr/local/forrest</code> on Unix), though if you intend to update your
  +       Forrest from CVS, leaving it where it is would be best.</p>
  +     <p>
  +       As the message says, you need to add the distribution's <code>bin/</code>
  +       ("binary") directory to your PATH variable, so the <code>forrest</code>
  +       command is available everywhere:
  +     </p>
  +     <source>
  +~/apache/xml-forrest$ export FORREST_HOME=`pwd`/build/dist/shbat
  +~/apache/xml-forrest$ export PATH=$PATH:$FORREST_HOME/bin
  +     </source>
  +     <p>
  +       To see what the forrest command can do, type 'forrest -projecthelp'
  +     </p>
  +     <source>
  +Apache Forrest.  Run 'forrest -projecthelp' to list options
  +
  +Buildfile: /home/jeff/apache/xml/xml-forrest/build/dist/shbat/bin/../forrest.build.xml
  +
  +    *=======================================================*
  +    |                Forrest Site Builder                   |
  +    *=======================================================*
  +                              by
  +                  Marc Portier (mpo@apache.org)
  +                  Jeff Turner (jefft@apache.org)
  +  
  +        Call this through the /bin/forrest command
  +  
  +Main targets:
  +
  + seed    Seeds a directory with a template project doc structure
  + site    Generates a static HTML website for this project
  + war     Generates a dynamic servlet-based website (an packaged .war file)
  + webapp  Generates a dynamic servlet-based website (an unpackaged webapp)
  +
  +Default target: site
  +      </source>
  +      <p>
  +        As 'site' is the default target, just running 'forrest' without options will
  +        generate a "static HTML website". For example, typing 'forrest' in the
  +       xml-forrest directory would build Forrest's own website. But we're going to be
  +       building a new site, so read on.
  +      </p>
  +    </section>
  +    <section>
  +      <title>Seeding a new project</title>
  +      <p>
  +        'Seeding' a project is our own arborial term for adding a template
  +        documentation set to your project, which you can then customize.
  +      </p>
  +      <p>
  +        To try this out, create a completely new directory, and type 'forrest seed':
  +      </p>
  +      <source>
  +~/apache/xml-mysite$ forrest seed
  +Apache Forrest.  Run 'forrest -projecthelp' to list options
  +
  +Buildfile: /home/jeff/apache/xml/xml-forrest/build/dist/shbat/bin/../forrest.build.xml
  +
  +init-props:
  +Loading project specific properties from /home/jeff/apache/xml-mysite/forrest.properties
  +
  +echo-settings:
  +
  +check-contentdir:
  +
  +ensure-nocontent:
  +
  +seed:
  +Expanding: /home/jeff/apache/xml/xml-forrest/build/dist/shbat/fresh-site.zip into /home/jeff/apache/xml-mysite
  +
  +-------------------------------
  +~~ Template project created! ~~
  +
  +Here is an outline of the generated files:
  +
  +/                         # /home/jeff/apache/xml-mysite
  +/status.xml               # File listing project developers, todo list and change log
  +/forrest.properties       # Optional file describing this site's layout to Forrest
  +/src/documentation/       # Doc-specific files
  +/src/documentation/skinconf.xml    # Info about your project used by the skin
  +/src/documentation/content/xdocs   # XML content.
  +/src/documentation/content/xdocs/index.xml  # Home page
  +/src/documentation/content/xdocs/book.xml   # Navigation file defining site structure
  +/src/documentation/content/xdocs/tabs.xml   # Skin-specific 'tabs' file.
  +/src/documentation/resources/images         # Project images (logos, etc)
  +
  +
  +What to do now?
  +
  +- Try rendering this template to HTML by typing 'forrest'. View the generated HTML
  +  in a browser to make sure everything works.
  +- Edit status.xml and src/documentation/skinconf.xml and customize for your project.
  +- Replace src/documentation/resources/images/project-logo.gif with your project logo.
  +- Start adding content in xdocs/, remembering to add new files to book.xml
  +- Give any feedback you have to forrest-dev@xml.apache.org
  +
  +Thanks for using Apache Forrest
  +-------------------------------
  +    
  +
  +BUILD SUCCESSFUL
  +Total time: 2 seconds
  +      </source>
  +      <note>
  +        As you've probably begun to notice, we like to document things right in the
  +        script, on the theory that people only read online docs when desperate :)
  +      </note>
  +      <p>
  +        You now have a template documentation structure all set up:
  +      </p>
  +      <source>
  +jeff@expresso:~/apache/xml-mysite$ tree
  +.
  +|-- forrest.properties
  +|-- src
  +|   `-- documentation
  +|       |-- README.txt
  +|       |-- content
  +|       |   `-- xdocs
  +|       |       |-- book.xml
  +|       |       |-- index.xml
  +|       |       |-- sample.xml
  +|       |       `-- tabs.xml
  +|       |-- resources
  +|       |   `-- images
  +|       |       |-- group-logo.gif
  +|       |       `-- project-logo.gif
  +|       `-- skinconf.xml
  +`-- status.xml
  +      </source>
  +      <p>
  +        To render this to HTML, type 'forrest'. You should have a HTML site rendered
  +        into the <code>build/site</code> directory:
  +      </p>
  +      <figure src="images/new-project.png" height="356" width="500" alt="New project"/>
  +      <section>
  +        <title>Seeding an existing project</title>
  +        <p>
  +          In the section above, we have run 'forrest seed' in an empty directory. If you
  +          have an existing codebase which you wish to add Forrest docs to, run 'forrest
  +          seed' in your project base directory, and the Forrest doc structure will be
  +          grafted onto your project.
  +        </p>
  +      </section>
  +      <section>
  +        <title>Customizing your project: skinconf.xml</title>
  +        <p>
  +          Having seeded a project with template docs, you will now want to customize it
  +          to your project's needs. Most Forrest skins can be customized through a single
  +          XML file, <code>src/documentation/skinconf.xml</code>, which (minus its DTD)
  +          looks like this:
  +        </p>
  +        <source><![CDATA[
  +          <?xml version="1.0"?>
  +
  +          <!--
  +          Skin configuration file. This file contains details of your project, which will
  +          be used to configure the chosen Forrest skin.
  +          -->
  +          <skinconfig>
  +            <!-- Do we want the Google search box? -->
  +            <disable-search>false</disable-search>
  +
  +            <project-name>MyProject</project-name>
  +            <project-url>http://myproj.mygroup.org/</project-url>
  +            <project-logo>images/project-logo.gif</project-logo>
  +
  +            <group-name>MyGroup</group-name>
  +            <group-url>http://mygroup.org</group-url>
  +            <group-logo>images/group-logo.gif</group-logo>
  +
  +            <!-- Eg, a sourceforge logo. forrest-site renders it to the bottom-left corner -->
  +            <host-logo></host-logo>
  +
  +            <!-- The following used to construct a copyright statement -->
  +            <year>2002</year>
  +            <vendor>The Apache Software Foundation.</vendor>
  +
  +            <!-- Some skins use this to form a 'breadcrumb trail' of links. If you don't
  +            want these, set the attributes to blank. The DTD purposefully requires them.
  +            -->
  +            <trail>
  +              <link1 name="apache" href="http://www.apache.org/"/>
  +              <link2 name="xml.apache" href="http://xml.apache.org/"/>
  +              <link3 name="" href=""/>
  +            </trail>
  +
  +            <!-- Credits are typically rendered as a set of small clickable images in the
  +            page footer -->
  +            <credits>
  +              <credit>
  +                <name>Built with Cocoon</name>
  +                <url>http://xml.apache.org/cocoon/</url>
  +                <image>skin/images/built-with-cocoon.gif</image>
  +                <width>88</width>
  +                <height>31</height>
  +              </credit>
  +              <credit>
  +                <name>Krysalis Centipede</name>
  +                <url>http://www.krysalis.org/centipede/</url>
  +                <image>skin/images/centipede-logo-small.gif</image>
  +                <width>138</width>
  +                <height>31</height>
  +              </credit>
  +            </credits>
  +          </skinconfig>
  +          ]]></source>
  +        <p>
  +          Customise this file for your project. The <code>images/</code> directory
  +          mentioned in 'project-logo' and 'group-logo' elements correspond to the
  +          <code>src/documentation/resources/images</code> directory (this mapping is done
  +          in the sitemap).
  +        </p>
  +        <p>
  +          Having edited this file (and ensured it is valid XML!), re-run the 'forrest'
  +          command in the site root, and the site should be updated.
  +        </p>
  +      </section>
  +      <section>
  +        <title>Adding content</title>
  +        <p>
  +          Now you can start adding content of your own, in
  +          src/documentation/content/xdocs.
  +        </p>
  +        <section>
  +          <title>book.xml</title>
  +          <p>
  +            Whenever adding a new file, you should add an entry to that directory's
  +            <code>book.xml</code> file. book.xml is like a site index, and is rendered as
  +            the vertical column of links in the default skin. Each directory below xdocs/
  +            should have it's own book.xml, with links suitably adjusted. Have a look at
  +            Forrest's own xdocs for an example.
  +          </p>
  +        </section>
  +        <section>
  +          <title>tabs.xml</title>
  +          <p>
  +            The <code>tabs.xml</code> file is used to produce the 'tabs' in the top-left
  +            corner of the default skin. Tabs allow users to quickly just to sections of
  +            your site. Again, consult Forrest's own docs for a usage example.
  +          </p>
  +        </section>
  +        <section>
  +          <title>Images</title>
  +          <p>
  +            Images usually go in src/documentation/resources/images/. The default sitemap
  +            maps this directory to <code>images/</code>, so image tags will typically look
  +            like &lt;figure src="images/project-logo.png" alt="Project Logo"/&gt; 
  +          </p>
  +        </section>
  +      </section>
  +    </section>
  +
  +    <section>
  +      <title>Advanced usage</title>
  +      <p>
  +        Armed with only the techniques described above, it is quite easy to generate a
  +        basic Forrest site. This section deals with more advanced customizations and
  +        techniques that can make Forrest development much easier.
  +      </p>
  +      <section>
  +        <title>Creating a custom skin</title>
  +        <p>TODO: add content</p>
  +      </section>
  +      <section>
  +        <title>Changing the default layout</title>
  +        <p>
  +          For a simple site, Forrest's default directory layout may seem rather
  +          cumbersome.  Forrest allows you to place files anywhere you want in your
  +          project, so long as you tell Forrest where you have placed the major file
  +          types.
  +        </p>
  +        <p>
  +          The <code>forrest.properties</code> file is what maps from your directory
  +          layout to Forrest's. If you generated your site with 'forrest seed', you
  +          should have one pre-written, with all the entries commented out. The relevant
  +          <code>forrest.properties</code>entries (with default values) are:
  +        </p>
  +        <source>
  +# Properties that must be set to override the default locations
  +project.status=status.xml
  +project.content-dir=src/documentation
  +project.conf-dir=${project.content-dir}/conf
  +project.sitemap=${project.content-dir}/sitemap.xmap
  +project.xdocs-dir=${project.content-dir}/content/xdocs
  +project.stylesheets-dir=${project.content-dir}/resources/stylesheets
  +project.images-dir=${project.content-dir}/resources/images
  +project.schema-dir=${project.content-dir}/resources/schema
  +project.skins-dir=${project.content-dir}/skins
  +project.skinconf=${project.content-dir}/skinconf.xml
  +project.lib-dir=${project.content-dir}/lib
  +project.classes-dir=${project.content-dir}/classes
  +       </source>
  +       <p>
  +         For example, if you wish to keep XML documentation in src/xdocs rather than
  +         src/documentation/content/xdocs, simply change the 'project.xdocs-dir'
  +         definition:
  +       </p>
  +       <source>
  +         project.xdocs-dir=src/xdocs
  +       </source>
  +       <p>
  +         Say we wish to emulate the nice and simple <link
  +           href="http://jakarta.apache.org/turbine/maven">Maven</link> format:
  +       </p>
  +       <p xml:space="preserve">
  +         /xdocs
  +         /xdocs/images
  +         /xdocs/stylesheets
  +       </p>
  +       <p>Here are the required property definitions:</p>
  +       <source>
  +project.content-dir=xdocs
  +project.sitemap=${project.content-dir}/sitemap.xmap
  +project.xdocs-dir=${project.content-dir}
  +project.stylesheets-dir=${project.content-dir}/stylesheets
  +project.images-dir=${project.content-dir}/images
  +project.skinconf=${project.content-dir}/skinconf.xml
  +         </source>
  +         <note>
  +           Internally, Forrest rearranges the specified directory into the default
  +           "src/documentation/content/xdocs" structure. In the layout above, we have
  +           overlapping directories, so you'll end up with duplicate files. This small
  +           glitch doesn't usually cause problems; just always remember that all links
  +           are resolved through the sitemap.
  +         </note>
  +       </section>
  +
  +       <section>
  +         <title>"It's too slow!" Developing as a webapp</title>
  +         <p>
  +           In comparison to simpler tools like <link
  +             href="http://jakarta.apache.org/velocity/anakia.html">Anakia</link>,
  +           Cocoon's command-line mode (and hence Forrest) is painfully slow.
  +         </p>
  +         <p>
  +           As the <link href="dreams.html">dream list</link> notes, Forrest was
  +           originally intended to be used for dynamic sites, and the Cocoon crawler used
  +           only to create static snapshots for mirroring. 
  +         </p>
  +         <p>TODO: add more content</p>
  +       </section>
  +     </section>
    </body>
   </document>
  
  
  
  1.1                  xml-forrest/src/documentation/content/xdocs/forrestbot-intro.xml
  
  Index: forrestbot-intro.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" "document-v11.dtd">
  
  <document>
   <header>
    <title>Your Project - getting started with using Forrest</title>
    <subtitle>Overview</subtitle>
    <version>0.1</version>
    <authors>
     <person name="David Crossley" email="crossley@apache.org"/>
    </authors>
   </header>
  
   <body>
   <section>
    <title>Goal</title>
    <p>
     You have your own project and you want to use Forrest to build the project
     documentation.
    </p>
   </section>
  
   <section>
    <title>Introduction</title>
    <p>
     The <strong>ForrestBot</strong> will automatically build and publish your
     documentation on a regular basis. The versatile ForrestBot can retrieve
     source XML instances from various type of repository (e.g. local filesystem,
     local CVS, remote CVS), generate the documents, and copy the result to a
     local or remote location (optionally via secure methods). It can be run
     from the command-line as part of your documentation edit-build-review cycle,
     it can be called from cron to automate your website update, it can operate
     as a centralised docs-build service for a set of remote projects, it can do
     tasks in parallel, and do even more.
    </p>
    <p>
     This document provides a concise overview of one particular scenario. See
     <link href="forrestbot.html">The ForrestBot</link> for details and understand
     <link href="forrest-contract.html">Our Contract</link>.
     Please send your feedback to <code>forrest-dev</code> - the ForrestBot
     will be enhanced to meet diverse needs.
    </p>
    <p>
     (Building the documentation for the actual Forrest project is a separate
     issue. Use
     <code>./build.sh clean docs</code> ... that will provide overview
     documentation about how Forrest operates and how you can help to improve it.)
    </p>
   </section>
  
   <section>
    <title>Establish project source directory</title>
    <p>The directory that contains your XML instances.</p>
    <ul>
     <li><code>PROJECT_HOME = /home/you/yourproject</code></li>
     <li><code>SRC_DOC = $PROJECT_HOME/src/documentation</code></li>
    </ul>
    <p>
     Your XML instance documents are at <code>$SRC_DOC/content/xdocs</code>
    </p>
   </section>
  
   <section>
    <title>Establish project configuration</title>
    <p>
  <code>cp $FORREST_HOME/forrestbot.conf.xml $PROJECT_HOME/yourproject.conf.xml</code>
     and edit it to replace the <code><![CDATA[<project>]]></code>
     definitions with our own, i.e.
    </p>
  <source><![CDATA[
    <project name="yourProject-local">
      <prepare>
          <skin name="basic"/>
      </prepare>
      <get-src type="local-copy">
        <project-dir name="/home/you/yourproject" />
        <content-dir name="/home/you/yourproject/src/documentation"/>
      </get-src>
      <deploy type="local-copy">
        <destination name="/var/www/html/yourproject"/>
      </deploy>
    </project>
  ]]></source>
   </section>
  
   <section>
    <title>Run ForrestBot</title>
    <source>
  [you@localhost] cd $FORREST_HOME
  [you@localhost] ./build.sh clean
  [you@localhost] ./build.sh bot \
  -Dbot.forrestbot.xconf=$PROJECT_HOME/yourproject.conf.xml \
  -Dtemplate.echo=true
    </source>
   </section>
  
   <section>
    <title>Next Steps</title>
    <p>Some enhancements to your local ForrestBot would be ...</p>
    <ul>
     <li>Add your own skin at 
     <code>$SRC_DOC/skins/yourproject</code> by copying one of the skins from
     <code>$FORREST_HOME/src/resources/skins</code> (use basic or forrest-site)
     </li>
     <li>Configure another <code><![CDATA[<project>]]></code> to conduct a secure
       copy to your public website.
     </li>
     <li>Manage your XML instances with CVS and instruct ForrestBot to get
       the source.
     </li>
     <li>Get it to send you email about ForrestBot activities.
     </li>
    </ul>
   </section>
  
   <section>
    <title>Other methods</title>
    <p>The recent contribution of <strong>acorn</strong> (a simple Ant script that
     bootstraps Forrest for a new project.
  See email discussion:
  <link href="http://marc.theaimsgroup.com/?l=forrest-dev&amp;m=102958410525990">http://marc.theaimsgroup.com/?l=forrest-dev&amp;m=102958410525990</link>
    </p>
   </section>
  
   </body>
  </document>