You are viewing a plain text version of this content. The canonical link for it is here.
Posted to svn@forrest.apache.org by cr...@apache.org on 2005/06/23 07:36:34 UTC

svn commit: r193078 [22/65] - in /forrest/site: ./ docs_0_60/ docs_0_60/howto/ docs_0_60/howto/bugzilla-patch/ docs_0_60/howto/bugzilla-patch/my-images/ docs_0_60/howto/multi/ docs_0_60/images/ docs_0_70/ docs_0_70/howto/ docs_0_70/howto/cvs-ssh/ docs_...

Added: forrest/site/docs_0_70/howto/howto-forrest-from-maven.html
URL: http://svn.apache.org/viewcvs/forrest/site/docs_0_70/howto/howto-forrest-from-maven.html?rev=193078&view=auto
==============================================================================
--- forrest/site/docs_0_70/howto/howto-forrest-from-maven.html (added)
+++ forrest/site/docs_0_70/howto/howto-forrest-from-maven.html Wed Jun 22 22:36:19 2005
@@ -0,0 +1,387 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="Apache Forrest" name="Generator">
+<meta name="Forrest-version" content="0.8-dev">
+<meta name="Forrest-skin-name" content="pelt">
+<title>How to run Forrest from within Maven (v0.7)</title>
+<link type="text/css" href="../../skin/basic.css" rel="stylesheet">
+<link media="screen" type="text/css" href="../../skin/screen.css" rel="stylesheet">
+<link media="print" type="text/css" href="../../skin/print.css" rel="stylesheet">
+<link type="text/css" href="../../skin/profile.css" rel="stylesheet">
+<script src="../../skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="../../skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="../../skin/fontsize.js" language="javascript" type="text/javascript"></script>
+<link rel="shortcut icon" href="../../favicon.ico">
+</head>
+<body onload="init()">
+<script type="text/javascript">ndeSetTextSize();</script>
+<div id="top">
+<div class="breadtrail">
+<a href="http://www.apache.org/">apache</a> &gt; <a href="http://forrest.apache.org/">forrest</a><script src="../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+</div>
+<div class="header">
+<div class="grouplogo">
+<a href="http://www.apache.org/"><img class="logoImage" alt="Apache" src="../../images/apache-forrest.png" title="The Apache Software Foundation"></a>
+</div>
+<div class="projectlogo">
+<a href="http://forrest.apache.org/"><img class="logoImage" alt="Forrest" src="../../images/project-logo.gif" title="Apache Forrest"></a>
+</div>
+<div class="searchbox">
+<form action="http://www.google.com/search" method="get" class="roundtopsmall">
+<input value="forrest.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google">&nbsp; 
+                    <input attr="value" name="Search" value="Search" type="submit">
+</form>
+</div>
+<ul id="tabs">
+<li>
+<a class="base-not-selected" href="../../index.html">Welcome</a>
+</li>
+<li>
+<a class="base-not-selected" href="../../contrib.html">Project</a>
+</li>
+<li>
+<a class="base-not-selected" href="../../versions/index.html">Versioned Docs</a>
+</li>
+<li>
+<a class="base-not-selected" href="../../pluginDocs/index.html">Plugins</a>
+</li>
+<li>
+<a class="base-not-selected" href="../../tools/index.html">Tools</a>
+</li>
+</ul>
+</div>
+</div>
+<div id="main">
+<div id="publishedStrip">
+<div id="level2tabs"></div>
+<script type="text/javascript"><!--
+document.write("<text>Last Published:</text> " + document.lastModified);
+//  --></script>
+</div>
+<div class="breadtrail">
+             
+             &nbsp;
+           </div>
+<div id="menu">
+<div onclick="SwitchMenu('menu_selected_1.1', '../../skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('../../skin/images/chapter_open.gif');">0.70</div>
+<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a href="../../docs_0_70/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/faq.html">FAQs</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/changes.html">Changes</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/todo.html">Todo</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/your-project.html">Using Forrest</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/validation.html">XML Validation</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/linking.html">Menus and Linking</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/searching.html">Searching</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/skins.html">Default Skins</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/skin-package.html">Skin Packages</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/views.html">Views-dev</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/forrest-contract.html">Our Contract</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/compliance.html">Standards Compliance</a>
+</div>
+<div onclick="SwitchMenu('menu_selected_1.1.14', '../../skin/')" id="menu_selected_1.1.14Title" class="menutitle" style="background-image: url('../../skin/images/chapter_open.gif');">How-To</div>
+<div id="menu_selected_1.1.14" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a href="../../docs_0_70/howto/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-howto.html">Write a How-to</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-asf-mirror.html">Download mirror</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-pdf-tab.html">Create tab PDF</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-editcss.html">Edit CSS (WYSIWYG)</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-corner-images.html">CSS corner SVG</a>
+</div>
+<div class="menupage">
+<div class="menupagetitle">Maven Integration</div>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-buildPlugin.html">Build a Plugin</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-custom-html-source.html">Custom html source</a>
+</div>
+<div onclick="SwitchMenu('menu_1.1.14.10', '../../skin/')" id="menu_1.1.14.10Title" class="menutitle">Multipage HowTo</div>
+<div id="menu_1.1.14.10" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../docs_0_70/howto/multi/howto-multi.html">Introduction</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/multi/step1.html">Step 1</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/multi/step2.html">Step 2</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/multi/step3.html">Step 3</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.14.11', '../../skin/')" id="menu_1.1.14.11Title" class="menutitle">Views</div>
+<div id="menu_1.1.14.11" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-view-install.html">Install views</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-view-dsl.html">forrest:view DSL</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-view-contracts.html">contract implementations</a>
+</div>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.15', '../../skin/')" id="menu_1.1.15Title" class="menutitle">Advanced Topics</div>
+<div id="menu_1.1.15" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../docs_0_70/build.html">Building Forrest</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/catalog.html">Using DTD Catalogs</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/sitemap-ref.html">Sitemap Reference</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/project-sitemap.html">Project sitemap</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/cap.html">Sourcetype Action</a>
+</div>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/upgrading_07.html">Upgrading to 0.7</a>
+</div>
+<div onclick="SwitchMenu('menu_1.1.17', '../../skin/')" id="menu_1.1.17Title" class="menutitle">Reference docs</div>
+<div id="menu_1.1.17" class="menuitemgroup">
+<div onclick="SwitchMenu('menu_1.1.17.1', '../../skin/')" id="menu_1.1.17.1Title" class="menutitle">DTD documentation</div>
+<div id="menu_1.1.17.1" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../dtdx/dtd-docs.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../../dtdx/document-v20.dtdx.html">document-v20</a>
+</div>
+<div class="menuitem">
+<a href="../../dtdx/howto-v20.dtdx.html">howto-v20</a>
+</div>
+<div class="menuitem">
+<a href="../../dtdx/faq-v20.dtdx.html">faq-v20</a>
+</div>
+<div class="menuitem">
+<a href="../../dtdx/document-v13.dtdx.html">document-v13</a>
+</div>
+<div class="menuitem">
+<a href="../../dtdx/howto-v13.dtdx.html">howto-v13</a>
+</div>
+<div class="menuitem">
+<a href="../../dtdx/faq-v13.dtdx.html">faq-v13</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.17.2', '../../skin/')" id="menu_1.1.17.2Title" class="menutitle">Doc samples</div>
+<div id="menu_1.1.17.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../dtdx/document-v13.html">document-v13</a>
+</div>
+<div class="menuitem">
+<a href="../../dtdx/document-v20.html">document-v20</a>
+</div>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.18', '../../skin/')" id="menu_1.1.18Title" class="menutitle">Older Docs</div>
+<div id="menu_1.1.18" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../docs_0_70/primer.html">Forrest Primer</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/libre-intro.html">Libre</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/dreams.html">Dream list</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/cvs-ssh/howto-cvs-ssh.html">CVS over SSH</a>
+</div>
+</div>
+</div>
+<div id="credit">
+<hr>
+        This is documentation for current version v0.7
+       (<a href="/versions/index.html">More</a>)</div>
+<div id="roundbottom">
+<img style="display: none" class="corner" height="15" width="15" alt="" src="../../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
+<div id="credit2">
+<a href="http://apachecon.com/"><img border="0" title="ApacheCon Europe 2005" alt="ApacheCon Europe 2005 - logo" src="http://apache.org/images/ac2005eu_135x50.gif" style="width: 135px;height: 50px;"></a>
+</div>
+</div>
+<div id="content">
+<div title="Portable Document Format" class="pdflink">
+<a class="dida" href="howto-forrest-from-maven.pdf"><img alt="PDF -icon" src="../../skin/images/pdfdoc.gif" class="skin"><br>
+        PDF</a>
+</div>
+<div class="trail">
+<text>Font size:</text> 
+	          &nbsp;<input value="Reset" class="resetfont" title="Reset text" onclick="ndeSetTextSize('reset'); return false;" type="button">      
+	          &nbsp;<input value="-a" class="smallerfont" title="Shrink text" onclick="ndeSetTextSize('decr'); return false;" type="button">
+	          &nbsp;<input value="+a" class="biggerfont" title="Enlarge text" onclick="ndeSetTextSize('incr'); return false;" type="button">
+</div>
+<h1>How to run Forrest from within Maven</h1>
+<div class="abstract">This How-To describes how to run Forrest from within
+    Maven.</div>
+<div id="motd-area">
+        This is documentation for current version v0.7
+       (<a href="/versions/index.html">More</a>)</div>
+<div id="minitoc-area">
+<ul class="minitoc">
+<li>
+<a href="#Intended Audience">Intended Audience</a>
+</li>
+<li>
+<a href="#Purpose">Purpose</a>
+</li>
+<li>
+<a href="#Prerequisites">Prerequisites</a>
+</li>
+<li>
+<a href="#Steps">Steps</a>
+<ul class="minitoc">
+<li>
+<a href="#set-maven-home">Set the FORREST_HOME environment variable</a>
+</li>
+<li>
+<a href="#define-ant-environment-prop">Initialize an Ant environment property at the top of
+      maven.xml</a>
+</li>
+<li>
+<a href="#add-forrest-goal-to-maven-xml">Add forrest goal to maven.xml</a>
+</li>
+<li>
+<a href="#Alternative+file">Alternative file</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#Feedback">Feedback</a>
+</li>
+</ul>
+</div>
+<a name="N10010"></a><a name="Intended Audience"></a>
+<h2 class="underlined_10">Intended Audience</h2>
+<div class="section">
+<p>Users who want to run Forrest from within Maven.</p>
+</div>
+<a name="N10018"></a><a name="Purpose"></a>
+<h2 class="underlined_10">Purpose</h2>
+<div class="section">
+<p>One may want to generate their project's documentation and/or website
+    using Forrest in lieu of Maven's site plugin.</p>
+</div>
+<a name="N10020"></a><a name="Prerequisites"></a>
+<h2 class="underlined_10">Prerequisites</h2>
+<div class="section">
+<ul>
+      
+<li>Understand how to add goals to <a href="http://maven.apache.org/reference/user-guide.html#maven_xml">maven.xml</a>.</li>
+    
+</ul>
+</div>
+<a name="N1002F"></a><a name="Steps"></a>
+<h2 class="underlined_10">Steps</h2>
+<div class="section">
+<p>The procedure outlined below describes how to add a goal to your
+    project's maven.xml that will invoke Forrest's <span class="codefrag">site</span>
+    target.</p>
+<a name="N1003A"></a><a name="set-maven-home"></a>
+<h3 class="underlined_5">Set the FORREST_HOME environment variable</h3>
+<p>Make sure the FORREST_HOME environment variable points to your
+      Forrest home directory (i.e. the directory that contains
+      <span class="codefrag">forrest.build.xml</span>) (e.g. C:\opt\apache-forrest-0.7)</p>
+<a name="N10047"></a><a name="define-ant-environment-prop"></a>
+<h3 class="underlined_5">Initialize an Ant environment property at the top of
+      maven.xml</h3>
+<p>Paste the following line at the top of your maven.xml:</p>
+<pre class="code">
+&lt;property environment="env" /&gt;
+      </pre>
+<a name="N10055"></a><a name="add-forrest-goal-to-maven-xml"></a>
+<h3 class="underlined_5">Add forrest goal to maven.xml</h3>
+<p>Paste the following goal into your project's maven.xml:</p>
+<pre class="code">
+&lt;goal name="forrest" description="runs Forrest"&gt;
+  &lt;property name="forrest.home" location="${env.FORREST_HOME}" /&gt;
+  &lt;property name="forrest.ant.home" location="${forrest.home}/tools/ant" /&gt;
+  &lt;java classname="org.apache.tools.ant.Main" fork="true" failonerror="true" maxmemory="128M"&gt;
+    &lt;classpath&gt;
+      &lt;fileset dir="${forrest.ant.home}/lib"&gt;
+        &lt;include name="*.jar" /&gt;
+      &lt;/fileset&gt;
+      &lt;pathelement path="${java.home}/../lib/tools.jar" /&gt;
+    &lt;/classpath&gt;
+    &lt;sysproperty key="ant.home" value="${forrest.ant.home}" /&gt;
+    &lt;sysproperty key="forrest.home" value="${forrest.home}" /&gt;
+    &lt;sysproperty key="basedir" value="${basedir}" /&gt;
+    &lt;sysproperty key="java.endorsed.dirs" value="${forrest.home}/lib/endorsed" /&gt;
+    &lt;arg line="-f ${forrest.home}/main/forrest.build.xml" /&gt;
+  &lt;/java&gt;
+&lt;/goal&gt;      
+      </pre>
+<p>It is necessary to fork a separate java process because Maven 1.0
+      embeds Ant 1.5.2, but Forrest's forrest.build.xml requires Ant 1.6. The
+      goal makes use of the copy of Ant 1.6 that is bundled with Forrest, so
+      it's not even necessary to have Ant 1.6 installed separately.</p>
+<a name="N10066"></a><a name="Alternative+file"></a>
+<h3 class="underlined_5">Alternative file</h3>
+<p>Under <span class="codefrag">$FORREST_HOME/tools/targets/maven.xml</span>
+</p>
+</div>
+<a name="N10072"></a><a name="Feedback"></a>
+<h2 class="underlined_10">Feedback</h2>
+<div class="section">
+<p>Please provide feedback about this document via the <a href="../../mail-lists.html">mailing lists</a>.</p>
+</div>
+</div>
+<div class="clearboth">&nbsp;</div>
+</div>
+<div id="footer">
+<div class="lastmodified">
+<script type="text/javascript"><!--
+document.write("<text>Last Published:</text> " + document.lastModified);
+//  --></script>
+</div>
+<div class="copyright">
+        Copyright &copy;
+         2002-2005 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
+</div>
+</div>
+</body>
+</html>

Propchange: forrest/site/docs_0_70/howto/howto-forrest-from-maven.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: forrest/site/docs_0_70/howto/howto-forrest-from-maven.pdf
URL: http://svn.apache.org/viewcvs/forrest/site/docs_0_70/howto/howto-forrest-from-maven.pdf?rev=193078&view=auto
==============================================================================
Binary file - no diff available.

Propchange: forrest/site/docs_0_70/howto/howto-forrest-from-maven.pdf
------------------------------------------------------------------------------
    svn:mime-type = application/pdf

Added: forrest/site/docs_0_70/howto/howto-howto.html
URL: http://svn.apache.org/viewcvs/forrest/site/docs_0_70/howto/howto-howto.html?rev=193078&view=auto
==============================================================================
--- forrest/site/docs_0_70/howto/howto-howto.html (added)
+++ forrest/site/docs_0_70/howto/howto-howto.html Wed Jun 22 22:36:19 2005
@@ -0,0 +1,536 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="Apache Forrest" name="Generator">
+<meta name="Forrest-version" content="0.8-dev">
+<meta name="Forrest-skin-name" content="pelt">
+<title>How to write a How-To (v0.7)</title>
+<link type="text/css" href="../../skin/basic.css" rel="stylesheet">
+<link media="screen" type="text/css" href="../../skin/screen.css" rel="stylesheet">
+<link media="print" type="text/css" href="../../skin/print.css" rel="stylesheet">
+<link type="text/css" href="../../skin/profile.css" rel="stylesheet">
+<script src="../../skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="../../skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="../../skin/fontsize.js" language="javascript" type="text/javascript"></script>
+<link rel="shortcut icon" href="../../favicon.ico">
+</head>
+<body onload="init()">
+<script type="text/javascript">ndeSetTextSize();</script>
+<div id="top">
+<div class="breadtrail">
+<a href="http://www.apache.org/">apache</a> &gt; <a href="http://forrest.apache.org/">forrest</a><script src="../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+</div>
+<div class="header">
+<div class="grouplogo">
+<a href="http://www.apache.org/"><img class="logoImage" alt="Apache" src="../../images/apache-forrest.png" title="The Apache Software Foundation"></a>
+</div>
+<div class="projectlogo">
+<a href="http://forrest.apache.org/"><img class="logoImage" alt="Forrest" src="../../images/project-logo.gif" title="Apache Forrest"></a>
+</div>
+<div class="searchbox">
+<form action="http://www.google.com/search" method="get" class="roundtopsmall">
+<input value="forrest.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google">&nbsp; 
+                    <input attr="value" name="Search" value="Search" type="submit">
+</form>
+</div>
+<ul id="tabs">
+<li>
+<a class="base-not-selected" href="../../index.html">Welcome</a>
+</li>
+<li>
+<a class="base-not-selected" href="../../contrib.html">Project</a>
+</li>
+<li>
+<a class="base-not-selected" href="../../versions/index.html">Versioned Docs</a>
+</li>
+<li>
+<a class="base-not-selected" href="../../pluginDocs/index.html">Plugins</a>
+</li>
+<li>
+<a class="base-not-selected" href="../../tools/index.html">Tools</a>
+</li>
+</ul>
+</div>
+</div>
+<div id="main">
+<div id="publishedStrip">
+<div id="level2tabs"></div>
+<script type="text/javascript"><!--
+document.write("<text>Last Published:</text> " + document.lastModified);
+//  --></script>
+</div>
+<div class="breadtrail">
+             
+             &nbsp;
+           </div>
+<div id="menu">
+<div onclick="SwitchMenu('menu_selected_1.1', '../../skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('../../skin/images/chapter_open.gif');">0.70</div>
+<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a href="../../docs_0_70/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/faq.html">FAQs</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/changes.html">Changes</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/todo.html">Todo</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/your-project.html">Using Forrest</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/validation.html">XML Validation</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/linking.html">Menus and Linking</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/searching.html">Searching</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/skins.html">Default Skins</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/skin-package.html">Skin Packages</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/views.html">Views-dev</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/forrest-contract.html">Our Contract</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/compliance.html">Standards Compliance</a>
+</div>
+<div onclick="SwitchMenu('menu_selected_1.1.14', '../../skin/')" id="menu_selected_1.1.14Title" class="menutitle" style="background-image: url('../../skin/images/chapter_open.gif');">How-To</div>
+<div id="menu_selected_1.1.14" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a href="../../docs_0_70/howto/index.html">Overview</a>
+</div>
+<div class="menupage">
+<div class="menupagetitle">Write a How-to</div>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-asf-mirror.html">Download mirror</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-pdf-tab.html">Create tab PDF</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-editcss.html">Edit CSS (WYSIWYG)</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-corner-images.html">CSS corner SVG</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-forrest-from-maven.html">Maven Integration</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-buildPlugin.html">Build a Plugin</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-custom-html-source.html">Custom html source</a>
+</div>
+<div onclick="SwitchMenu('menu_1.1.14.10', '../../skin/')" id="menu_1.1.14.10Title" class="menutitle">Multipage HowTo</div>
+<div id="menu_1.1.14.10" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../docs_0_70/howto/multi/howto-multi.html">Introduction</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/multi/step1.html">Step 1</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/multi/step2.html">Step 2</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/multi/step3.html">Step 3</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.14.11', '../../skin/')" id="menu_1.1.14.11Title" class="menutitle">Views</div>
+<div id="menu_1.1.14.11" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-view-install.html">Install views</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-view-dsl.html">forrest:view DSL</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-view-contracts.html">contract implementations</a>
+</div>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.15', '../../skin/')" id="menu_1.1.15Title" class="menutitle">Advanced Topics</div>
+<div id="menu_1.1.15" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../docs_0_70/build.html">Building Forrest</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/catalog.html">Using DTD Catalogs</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/sitemap-ref.html">Sitemap Reference</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/project-sitemap.html">Project sitemap</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/cap.html">Sourcetype Action</a>
+</div>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/upgrading_07.html">Upgrading to 0.7</a>
+</div>
+<div onclick="SwitchMenu('menu_1.1.17', '../../skin/')" id="menu_1.1.17Title" class="menutitle">Reference docs</div>
+<div id="menu_1.1.17" class="menuitemgroup">
+<div onclick="SwitchMenu('menu_1.1.17.1', '../../skin/')" id="menu_1.1.17.1Title" class="menutitle">DTD documentation</div>
+<div id="menu_1.1.17.1" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../dtdx/dtd-docs.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../../dtdx/document-v20.dtdx.html">document-v20</a>
+</div>
+<div class="menuitem">
+<a href="../../dtdx/howto-v20.dtdx.html">howto-v20</a>
+</div>
+<div class="menuitem">
+<a href="../../dtdx/faq-v20.dtdx.html">faq-v20</a>
+</div>
+<div class="menuitem">
+<a href="../../dtdx/document-v13.dtdx.html">document-v13</a>
+</div>
+<div class="menuitem">
+<a href="../../dtdx/howto-v13.dtdx.html">howto-v13</a>
+</div>
+<div class="menuitem">
+<a href="../../dtdx/faq-v13.dtdx.html">faq-v13</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.17.2', '../../skin/')" id="menu_1.1.17.2Title" class="menutitle">Doc samples</div>
+<div id="menu_1.1.17.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../dtdx/document-v13.html">document-v13</a>
+</div>
+<div class="menuitem">
+<a href="../../dtdx/document-v20.html">document-v20</a>
+</div>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.18', '../../skin/')" id="menu_1.1.18Title" class="menutitle">Older Docs</div>
+<div id="menu_1.1.18" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../docs_0_70/primer.html">Forrest Primer</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/libre-intro.html">Libre</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/dreams.html">Dream list</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/cvs-ssh/howto-cvs-ssh.html">CVS over SSH</a>
+</div>
+</div>
+</div>
+<div id="credit">
+<hr>
+        This is documentation for current version v0.7
+       (<a href="/versions/index.html">More</a>)</div>
+<div id="roundbottom">
+<img style="display: none" class="corner" height="15" width="15" alt="" src="../../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
+<div id="credit2">
+<a href="http://apachecon.com/"><img border="0" title="ApacheCon Europe 2005" alt="ApacheCon Europe 2005 - logo" src="http://apache.org/images/ac2005eu_135x50.gif" style="width: 135px;height: 50px;"></a>
+</div>
+</div>
+<div id="content">
+<div title="Portable Document Format" class="pdflink">
+<a class="dida" href="howto-howto.pdf"><img alt="PDF -icon" src="../../skin/images/pdfdoc.gif" class="skin"><br>
+        PDF</a>
+</div>
+<div class="trail">
+<text>Font size:</text> 
+	          &nbsp;<input value="Reset" class="resetfont" title="Reset text" onclick="ndeSetTextSize('reset'); return false;" type="button">      
+	          &nbsp;<input value="-a" class="smallerfont" title="Shrink text" onclick="ndeSetTextSize('decr'); return false;" type="button">
+	          &nbsp;<input value="+a" class="biggerfont" title="Enlarge text" onclick="ndeSetTextSize('incr'); return false;" type="button">
+</div>
+<h1>How to write a How-To</h1>
+<div class="abstract">This How-To describes the steps necessary to write a How-To
+    document. Writing documentation is a valuable way to give back to the
+    community.</div>
+<div id="motd-area">
+        This is documentation for current version v0.7
+       (<a href="/versions/index.html">More</a>)</div>
+<div id="minitoc-area">
+<ul class="minitoc">
+<li>
+<a href="#Intended Audience">Intended Audience</a>
+</li>
+<li>
+<a href="#Purpose">Purpose</a>
+</li>
+<li>
+<a href="#Prerequisites">Prerequisites</a>
+</li>
+<li>
+<a href="#Steps">Steps</a>
+<ul class="minitoc">
+<li>
+<a href="#overview">Write the Overview</a>
+</li>
+<li>
+<a href="#audience">Describe your Intended Audience</a>
+</li>
+<li>
+<a href="#purpose">State the Purpose</a>
+</li>
+<li>
+<a href="#prerequisites">List any Prerequisites</a>
+</li>
+<li>
+<a href="#steps">Describe the Steps of your How-To</a>
+</li>
+<li>
+<a href="#extension">Extend the Learning</a>
+</li>
+<li>
+<a href="#summarize">Summarize the Entire Process</a>
+</li>
+<li>
+<a href="#tips">Additional Tips or FAQs</a>
+</li>
+<li>
+<a href="#references">References</a>
+</li>
+<li>
+<a href="#contribute">Submit via the project issue tracker</a>
+</li>
+<li>
+<a href="#feedback">Get some feedback</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#Extension">Extension</a>
+</li>
+<li>
+<a href="#Frequently Asked Questions">Frequently Asked Questions</a>
+<ul class="minitoc">
+<li>
+<a href="#1+General+issues">1 General issues</a>
+<ul class="minitoc">
+<li>
+<a href="#1.1+What+is+the+difference+between+a+How-To+and+a+tutorial%3F">1.1 What is the difference between a How-To and a tutorial?</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#2+Style+issues">2 Style issues</a>
+<ul class="minitoc">
+<li>
+<a href="#2.1+What+spelling+convention+should+I+follow%3F">2.1 What spelling convention should I follow?</a>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li>
+<a href="#Tips">Tips</a>
+<ul class="minitoc">
+<li>
+<a href="#tip-dtd">How-To dtd</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#References">References</a>
+</li>
+</ul>
+</div>
+<a name="N10013"></a><a name="Intended Audience"></a>
+<h2 class="underlined_10">Intended Audience</h2>
+<div class="section">
+<p>Users who are ready to share their knowledge and experiences with the
+    community.</p>
+</div>
+<a name="N1001B"></a><a name="Purpose"></a>
+<h2 class="underlined_10">Purpose</h2>
+<div class="section">
+<p>These guidelines are based on successful how-to document structures
+    used by other open source projects with diverse author groups. Following
+    these tried and true guidelines will help to insure the effectiveness of
+    your work.</p>
+</div>
+<a name="N10023"></a><a name="Prerequisites"></a>
+<h2 class="underlined_10">Prerequisites</h2>
+<div class="section">
+<p>How-To authors should have:</p>
+<ul>
+      
+<li>A unique How-To topic, related to using Forrest, which fulfills a
+      specific need. Check out existing How-Tos to find a niche for your work.
+      Consider posting your idea for the How-To to user mailing list, to make
+      sure another author's draft is not already in process.</li>
+
+      
+<li>A sufficient ability in English to write the FAQ. However, we would
+      rather that you just make a start, as the community can help to
+      fine-tune the document.</li>
+      
+      
+<li>Copy this template document "howto-howto.xml" to be modified with
+      your own content as necessary.</li>
+
+      
+<li>An understanding of the How-To document structure. Just use this
+      template document and you will be safe.
+      Make sure you run '<span class="codefrag">forrest validate-xdocs</span>' before
+      contributing your document.</li>
+    
+</ul>
+<div class="frame note">
+<div class="label">Note</div>
+<div class="content">See the <a href="../../docs_0_80/../dtdx/howto-v13.dtdx.html">DTD documentation</a>
+    which explains the document structure.</div>
+</div>
+</div>
+<a name="N10044"></a><a name="Steps"></a>
+<h2 class="underlined_10">Steps</h2>
+<div class="section">
+<p>Here is how to proceed.</p>
+<a name="N1004C"></a><a name="overview"></a>
+<h3 class="underlined_5">Write the Overview</h3>
+<p>An overview helps potential readers to determine quickly if a
+      particular How-To matches their interests or needs. In a few sentences,
+      summarize the main points of your How-To. Make sure to include any
+      critical definitions which will help readers evaluate the utility of
+      your How-To. Consider writing the overview last, after you have
+      completed all other sections.</p>
+<a name="N10056"></a><a name="audience"></a>
+<h3 class="underlined_5">Describe your Intended Audience</h3>
+<p>If your How-To is targetted at a specific audience, describe it here.
+      For example, potential readers will have different levels of skill using
+      Forrest. They will also bring different areas of expertise and
+      backgrounds to their How-To learning experience. When you clarify your
+      target audience up front, you will save all other readers time and
+      confusion.</p>
+<a name="N10060"></a><a name="purpose"></a>
+<h3 class="underlined_5">State the Purpose</h3>
+<p>State the purpose of your How-To. Explain how the reader will benefit
+      by reading it. Give your reader an incentive or two to continue.</p>
+<a name="N1006A"></a><a name="prerequisites"></a>
+<h3 class="underlined_5">List any Prerequisites</h3>
+<p>Inform your reader about any required knowledge, configuration, or
+      resources they may need before stepping through your How-To. Assist them
+      in this preparation by linking to other useful resources on the Forrest
+      site or the web. Helping your readers to prepare increases the
+      likelihood that they will continue reading your How-To.</p>
+<a name="N10074"></a><a name="steps"></a>
+<h3 class="underlined_5">Describe the Steps of your How-To</h3>
+<p>In a precise, step-by-step approach, walk your reader through the
+      process. Make sure your reader can reproduce your intended result by
+      following your exact steps. Make the learning process efficient by
+      supplying sample code snippets or configuration details as
+      necessary.</p>
+<a name="N1007E"></a><a name="extension"></a>
+<h3 class="underlined_5">Extend the Learning</h3>
+<p>Provide your reader with a few real-world examples of how the
+      techniques or capabilities gained from your How-To could be applied.
+      Reward the reader for successfully completing the How-To with a few
+      ideas about how it will pay off.</p>
+<a name="N10088"></a><a name="summarize"></a>
+<h3 class="underlined_5">Summarize the Entire Process</h3>
+<p>In a few sentences, remind the reader what they have just learned.
+      This helps to reinforce the main points of your How-To.</p>
+<a name="N10092"></a><a name="tips"></a>
+<h3 class="underlined_5">Additional Tips or FAQs</h3>
+<p>In some cases, step-by-step instructions simply aren't enough. Use
+      this section to pass on any other tips or frequently asked questions.
+      Anticipating the needs of your readers will increase the overall success
+      of your writing effort.</p>
+<a name="N1009C"></a><a name="references"></a>
+<h3 class="underlined_5">References</h3>
+<p>Remember to acknowledge any third-party resources or individuals who
+      contributed to the development of your How-To. Consider providing links
+      for those motivated readers who want to learn more.</p>
+<a name="N100A6"></a><a name="contribute"></a>
+<h3 class="underlined_5">Submit via the project issue tracker</h3>
+<p>Create an attachment for your How-To document, and submit it via the
+      project <a href="http://issues.apache.org/jira/secure/BrowseProject.jspa?id=12310000">issue tracker</a>.</p>
+<a name="N100B4"></a><a name="feedback"></a>
+<h3 class="underlined_5">Get some feedback</h3>
+<p>When the committers have added your document then it will be
+      available for everyone to to build upon and enhance. Feedback will
+      happen via the <a href="../../mail-lists.html">mailing lists</a>.</p>
+</div>
+<a name="N100C2"></a><a name="Extension"></a>
+<h2 class="underlined_10">Extension</h2>
+<div class="section">
+<p>Solutions can be extended to cover many different problem domains. A
+    nearly unlimited number of potential How-To topics, from simple to
+    complex, are available right now, limited only by your imagination.</p>
+</div>
+<a name="N100CA"></a><a name="Frequently Asked Questions"></a>
+<h2 class="underlined_10">Frequently Asked Questions</h2>
+<div class="section">
+<a name="N100CE"></a><a name="1+General+issues"></a>
+<h3 class="underlined_5">1 General issues</h3>
+<a name="N100D2"></a><a name="1.1+What+is+the+difference+between+a+How-To+and+a+tutorial%3F"></a>
+<h4>1.1 What is the difference between a How-To and a tutorial?</h4>
+<p>The goal of a How-To is to help the reader to accomplish a specific
+          task with clear and consise instructions. While tutorials may contain
+          How-To-like instructions and content, they also include additional
+          background and conceptual content to help teach their readers higher
+          order concepts along the way. How-Tos are concerned about filling an
+          immediate, short-term need. Tutorials often provide long-term
+          knowledge which can be applied across a range of needs.</p>
+<a name="N100DA"></a><a name="2+Style+issues"></a>
+<h3 class="underlined_5">2 Style issues</h3>
+<a name="N100DE"></a><a name="2.1+What+spelling+convention+should+I+follow%3F"></a>
+<h4>2.1 What spelling convention should I follow?</h4>
+<p>Use whatever spelling convention (American, British, etc.) that is
+          most intuitive to you.</p>
+</div>
+<a name="N100E6"></a><a name="Tips"></a>
+<h2 class="underlined_10">Tips</h2>
+<div class="section">
+<a name="N100EB"></a><a name="tip-dtd"></a>
+<h3 class="underlined_5">How-To dtd</h3>
+<p>The document structure is likely to change soon. Please note that
+      this HOWTO page is likely to change as well.</p>
+</div>
+<a name="N100F5"></a><a name="References"></a>
+<h2 class="underlined_10">References</h2>
+<div class="section">
+<p>This is not the first, nor will it be the last, How-To on writing
+    How-Tos. For other ideas and opinions on the matter, check out the
+    following sources.</p>
+<ul>
+      
+<li>Joel D. Canfield's <a href="http://www.evolt.org/article/How_To_Write_A_How_To/9741/18250/index.html">How
+      to Write a How-To</a> on evolt.org.</li>
+
+      
+<li>The Linux Documentation Project's <a href="http://www.tldp.org/HOWTO/HOWTO-INDEX/index.html">HOWTO</a>
+      index page provides many excellent How-To documents to inspire your
+      efforts.</li>
+    
+</ul>
+</div>
+</div>
+<div class="clearboth">&nbsp;</div>
+</div>
+<div id="footer">
+<div class="lastmodified">
+<script type="text/javascript"><!--
+document.write("<text>Last Published:</text> " + document.lastModified);
+//  --></script>
+</div>
+<div class="copyright">
+        Copyright &copy;
+         2002-2005 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
+</div>
+</div>
+</body>
+</html>

Propchange: forrest/site/docs_0_70/howto/howto-howto.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: forrest/site/docs_0_70/howto/howto-howto.pdf
URL: http://svn.apache.org/viewcvs/forrest/site/docs_0_70/howto/howto-howto.pdf?rev=193078&view=auto
==============================================================================
Binary file - no diff available.

Propchange: forrest/site/docs_0_70/howto/howto-howto.pdf
------------------------------------------------------------------------------
    svn:mime-type = application/pdf

Added: forrest/site/docs_0_70/howto/howto-pdf-tab.html
URL: http://svn.apache.org/viewcvs/forrest/site/docs_0_70/howto/howto-pdf-tab.html?rev=193078&view=auto
==============================================================================
--- forrest/site/docs_0_70/howto/howto-pdf-tab.html (added)
+++ forrest/site/docs_0_70/howto/howto-pdf-tab.html Wed Jun 22 22:36:19 2005
@@ -0,0 +1,528 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="Apache Forrest" name="Generator">
+<meta name="Forrest-version" content="0.8-dev">
+<meta name="Forrest-skin-name" content="pelt">
+<title>How to create a PDF document for each tab (v0.7)</title>
+<link type="text/css" href="../../skin/basic.css" rel="stylesheet">
+<link media="screen" type="text/css" href="../../skin/screen.css" rel="stylesheet">
+<link media="print" type="text/css" href="../../skin/print.css" rel="stylesheet">
+<link type="text/css" href="../../skin/profile.css" rel="stylesheet">
+<script src="../../skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="../../skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="../../skin/fontsize.js" language="javascript" type="text/javascript"></script>
+<link rel="shortcut icon" href="../../favicon.ico">
+</head>
+<body onload="init()">
+<script type="text/javascript">ndeSetTextSize();</script>
+<div id="top">
+<div class="breadtrail">
+<a href="http://www.apache.org/">apache</a> &gt; <a href="http://forrest.apache.org/">forrest</a><script src="../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+</div>
+<div class="header">
+<div class="grouplogo">
+<a href="http://www.apache.org/"><img class="logoImage" alt="Apache" src="../../images/apache-forrest.png" title="The Apache Software Foundation"></a>
+</div>
+<div class="projectlogo">
+<a href="http://forrest.apache.org/"><img class="logoImage" alt="Forrest" src="../../images/project-logo.gif" title="Apache Forrest"></a>
+</div>
+<div class="searchbox">
+<form action="http://www.google.com/search" method="get" class="roundtopsmall">
+<input value="forrest.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google">&nbsp; 
+                    <input attr="value" name="Search" value="Search" type="submit">
+</form>
+</div>
+<ul id="tabs">
+<li>
+<a class="base-not-selected" href="../../index.html">Welcome</a>
+</li>
+<li>
+<a class="base-not-selected" href="../../contrib.html">Project</a>
+</li>
+<li>
+<a class="base-not-selected" href="../../versions/index.html">Versioned Docs</a>
+</li>
+<li>
+<a class="base-not-selected" href="../../pluginDocs/index.html">Plugins</a>
+</li>
+<li>
+<a class="base-not-selected" href="../../tools/index.html">Tools</a>
+</li>
+</ul>
+</div>
+</div>
+<div id="main">
+<div id="publishedStrip">
+<div id="level2tabs"></div>
+<script type="text/javascript"><!--
+document.write("<text>Last Published:</text> " + document.lastModified);
+//  --></script>
+</div>
+<div class="breadtrail">
+             
+             &nbsp;
+           </div>
+<div id="menu">
+<div onclick="SwitchMenu('menu_selected_1.1', '../../skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('../../skin/images/chapter_open.gif');">0.70</div>
+<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a href="../../docs_0_70/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/faq.html">FAQs</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/changes.html">Changes</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/todo.html">Todo</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/your-project.html">Using Forrest</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/validation.html">XML Validation</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/linking.html">Menus and Linking</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/searching.html">Searching</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/skins.html">Default Skins</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/skin-package.html">Skin Packages</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/views.html">Views-dev</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/forrest-contract.html">Our Contract</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/compliance.html">Standards Compliance</a>
+</div>
+<div onclick="SwitchMenu('menu_selected_1.1.14', '../../skin/')" id="menu_selected_1.1.14Title" class="menutitle" style="background-image: url('../../skin/images/chapter_open.gif');">How-To</div>
+<div id="menu_selected_1.1.14" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a href="../../docs_0_70/howto/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-howto.html">Write a How-to</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-asf-mirror.html">Download mirror</a>
+</div>
+<div class="menupage">
+<div class="menupagetitle">Create tab PDF</div>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-editcss.html">Edit CSS (WYSIWYG)</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-corner-images.html">CSS corner SVG</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-forrest-from-maven.html">Maven Integration</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-buildPlugin.html">Build a Plugin</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-custom-html-source.html">Custom html source</a>
+</div>
+<div onclick="SwitchMenu('menu_1.1.14.10', '../../skin/')" id="menu_1.1.14.10Title" class="menutitle">Multipage HowTo</div>
+<div id="menu_1.1.14.10" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../docs_0_70/howto/multi/howto-multi.html">Introduction</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/multi/step1.html">Step 1</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/multi/step2.html">Step 2</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/multi/step3.html">Step 3</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.14.11', '../../skin/')" id="menu_1.1.14.11Title" class="menutitle">Views</div>
+<div id="menu_1.1.14.11" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-view-install.html">Install views</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-view-dsl.html">forrest:view DSL</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-view-contracts.html">contract implementations</a>
+</div>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.15', '../../skin/')" id="menu_1.1.15Title" class="menutitle">Advanced Topics</div>
+<div id="menu_1.1.15" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../docs_0_70/build.html">Building Forrest</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/catalog.html">Using DTD Catalogs</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/sitemap-ref.html">Sitemap Reference</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/project-sitemap.html">Project sitemap</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/cap.html">Sourcetype Action</a>
+</div>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/upgrading_07.html">Upgrading to 0.7</a>
+</div>
+<div onclick="SwitchMenu('menu_1.1.17', '../../skin/')" id="menu_1.1.17Title" class="menutitle">Reference docs</div>
+<div id="menu_1.1.17" class="menuitemgroup">
+<div onclick="SwitchMenu('menu_1.1.17.1', '../../skin/')" id="menu_1.1.17.1Title" class="menutitle">DTD documentation</div>
+<div id="menu_1.1.17.1" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../dtdx/dtd-docs.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../../dtdx/document-v20.dtdx.html">document-v20</a>
+</div>
+<div class="menuitem">
+<a href="../../dtdx/howto-v20.dtdx.html">howto-v20</a>
+</div>
+<div class="menuitem">
+<a href="../../dtdx/faq-v20.dtdx.html">faq-v20</a>
+</div>
+<div class="menuitem">
+<a href="../../dtdx/document-v13.dtdx.html">document-v13</a>
+</div>
+<div class="menuitem">
+<a href="../../dtdx/howto-v13.dtdx.html">howto-v13</a>
+</div>
+<div class="menuitem">
+<a href="../../dtdx/faq-v13.dtdx.html">faq-v13</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.17.2', '../../skin/')" id="menu_1.1.17.2Title" class="menutitle">Doc samples</div>
+<div id="menu_1.1.17.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../dtdx/document-v13.html">document-v13</a>
+</div>
+<div class="menuitem">
+<a href="../../dtdx/document-v20.html">document-v20</a>
+</div>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.18', '../../skin/')" id="menu_1.1.18Title" class="menutitle">Older Docs</div>
+<div id="menu_1.1.18" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../docs_0_70/primer.html">Forrest Primer</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/libre-intro.html">Libre</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/dreams.html">Dream list</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/cvs-ssh/howto-cvs-ssh.html">CVS over SSH</a>
+</div>
+</div>
+</div>
+<div id="credit">
+<hr>
+        This is documentation for current version v0.7
+       (<a href="/versions/index.html">More</a>)</div>
+<div id="roundbottom">
+<img style="display: none" class="corner" height="15" width="15" alt="" src="../../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
+<div id="credit2">
+<a href="http://apachecon.com/"><img border="0" title="ApacheCon Europe 2005" alt="ApacheCon Europe 2005 - logo" src="http://apache.org/images/ac2005eu_135x50.gif" style="width: 135px;height: 50px;"></a>
+</div>
+</div>
+<div id="content">
+<div title="Portable Document Format" class="pdflink">
+<a class="dida" href="howto-pdf-tab.pdf"><img alt="PDF -icon" src="../../skin/images/pdfdoc.gif" class="skin"><br>
+        PDF</a>
+</div>
+<div class="trail">
+<text>Font size:</text> 
+	          &nbsp;<input value="Reset" class="resetfont" title="Reset text" onclick="ndeSetTextSize('reset'); return false;" type="button">      
+	          &nbsp;<input value="-a" class="smallerfont" title="Shrink text" onclick="ndeSetTextSize('decr'); return false;" type="button">
+	          &nbsp;<input value="+a" class="biggerfont" title="Enlarge text" onclick="ndeSetTextSize('incr'); return false;" type="button">
+</div>
+<h1>How to create a PDF document for each tab</h1>
+<div class="abstract">This How-To describes the generation of a PDF document for each
+    group of documents that is defined by a tab. 
+  </div>
+<div id="motd-area">
+        This is documentation for current version v0.7
+       (<a href="/versions/index.html">More</a>)</div>
+<div id="minitoc-area">
+<ul class="minitoc">
+<li>
+<a href="#Intended Audience">Intended Audience</a>
+</li>
+<li>
+<a href="#Purpose">Purpose</a>
+</li>
+<li>
+<a href="#Prerequisites">Prerequisites</a>
+</li>
+<li>
+<a href="#Steps">Steps</a>
+<ul class="minitoc">
+<li>
+<a href="#sitemap">Create your project's main sitemap.xmap</a>
+</li>
+<li>
+<a href="#aggregator">Create another sitemap: pdf-tab.xmap</a>
+</li>
+<li>
+<a href="#mount">Edit project sitemap.xmap to mount pdf-tab.xmap</a>
+</li>
+<li>
+<a href="#edit-aggregator">Edit the file pdf-tab.xmap</a>
+</li>
+<li>
+<a href="#edit-site">Edit your site.xml</a>
+</li>
+<li>
+<a href="#explain">Explanation of the operation</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#Feedback and further development of this How-To">Feedback and further development of this How-To</a>
+</li>
+</ul>
+</div>
+<a name="N10010"></a><a name="Intended Audience"></a>
+<h2 class="underlined_10">Intended Audience</h2>
+<div class="section">
+<p>
+      Users who need to generate one printable document aggregated from a
+      group of documents.
+    </p>
+</div>
+<a name="N10018"></a><a name="Purpose"></a>
+<h2 class="underlined_10">Purpose</h2>
+<div class="section">
+<p>
+      By default Forrest generates a pdf file for each separate document of
+      your project.
+      As well you can create a pdf of the whole site. But sometimes it may
+      be necessary to generate a pdf file out of selected tab, i.e. only for
+      certain parts of the site.
+    </p>
+</div>
+<a name="N10020"></a><a name="Prerequisites"></a>
+<h2 class="underlined_10">Prerequisites</h2>
+<div class="section">
+<ul>
+      
+<li>Understand how to create project-specific sitemaps by following the
+      <a href="../../docs_0_70/your-project.html">Using Forrest</a> document.</li>
+    
+</ul>
+</div>
+<a name="N1002F"></a><a name="Steps"></a>
+<h2 class="underlined_10">Steps</h2>
+<div class="section">
+<p>The procedure outlined below will define a project
+      <span class="codefrag">sitemap.xmap</span> and create a new
+      <span class="codefrag">pdf-tab.xmap</span>.
+    </p>
+<a name="N1003D"></a><a name="sitemap"></a>
+<h3 class="underlined_5">Create your project's main sitemap.xmap</h3>
+<p>
+      If you do not have already a sitemap then create a new empty one in your
+      <span class="codefrag">src/documentation</span> directory (or wherever
+      ${project.sitemap-dir} points to).
+    </p>
+<a name="N1004A"></a><a name="aggregator"></a>
+<h3 class="underlined_5">Create another sitemap: pdf-tab.xmap</h3>
+<p>
+    Like before create an empty sitemap and name it pdf-tab.xmap.
+    </p>
+<a name="N10054"></a><a name="mount"></a>
+<h3 class="underlined_5">Edit project sitemap.xmap to mount pdf-tab.xmap</h3>
+<p>
+      Your sitemap should look something like this.
+    </p>
+<pre class="code">
+&lt;map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0"&gt;
+  &lt;map:pipelines&gt;
+    &lt;map:pipeline internal-only="false"&gt;
+      &lt;map:match pattern="**.xml"&gt;
+        &lt;!-- pdf-tab definitions --&gt;
+        &lt;map:match pattern="pdf-tab.xml"&gt;
+          &lt;map:mount uri-prefix="" src="pdf-tab.xmap"
+            check-reload="yes" /&gt;
+        &lt;/map:match&gt;
+        &lt;!-- end of pdf-tab definitions --&gt;
+      &lt;/map:match&gt;
+    &lt;/map:pipeline&gt;
+  &lt;/map:pipelines&gt;
+&lt;/map:sitemap&gt;
+    </pre>
+<a name="N10062"></a><a name="edit-aggregator"></a>
+<h3 class="underlined_5">Edit the file pdf-tab.xmap</h3>
+<p>
+      The <span class="codefrag">&lt;map:match pattern="*.xml"&gt;</span> element
+      should look like the following:
+    </p>
+<pre class="code">
+&lt;map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0"&gt;
+  &lt;map:pipelines&gt;
+    &lt;map:pipeline internal-only="false"&gt;
+     &lt;map:match pattern="*.xml"&gt;
+	&lt;map:generate src="cocoon://abs-linkmap"/&gt;
+	  &lt;map:transform type="xpath"&gt;
+	  	&lt;map:parameter name="include" value="//*[@wholesite='true']"/&gt;
+		&lt;map:parameter name="exclude" value="//*[@wholesite='false']"/&gt;
+	  &lt;/map:transform&gt;
+	  &lt;map:transform src="resources/stylesheets/site2book.xsl" /&gt;
+	  &lt;map:transform src="resources/stylesheets/aggregates/book2cinclude.xsl"&gt;
+	     &lt;map:parameter name="title"
+		value="{conf:project-name}: Still My Foo Site"/&gt;
+	     &lt;/map:transform&gt;
+	  &lt;map:transform type="cinclude"/&gt;
+	  &lt;map:transform src="resources/stylesheets/aggregates/doc2doc-uniqueids.xsl"/&gt;
+	  &lt;map:transform src="resources/stylesheets/aggregates/docs2document.xsl"/&gt;
+	  &lt;map:serialize type="xml"/&gt;
+    &lt;/map:match&gt;    
+   &lt;/map:pipeline&gt;
+  &lt;/map:pipelines&gt;
+&lt;/map:sitemap&gt;
+    </pre>
+<a name="N10075"></a><a name="edit-site"></a>
+<h3 class="underlined_5">Edit your site.xml</h3>
+<div class="frame note">
+<div class="label">Note</div>
+<div class="content">
+        Do not use directories with "." in it. Replace them by "_"
+        e.g 1.2/ will not work in the aggregation. e.g. 1_2/ just works fine.
+    </div>
+</div>
+<p>
+      Add the following entry to your site.xml in the
+      <span class="codefrag">&lt;about&gt;</span> element
+    </p>
+<pre class="code">... 
+&lt;whole_foosite href="pdf-tab.html" label="sub site" /&gt;
+    </pre>
+<p>
+      Your site.xml should look like this ...
+    </p>
+<pre class="code">... 
+&lt;about label="About"&gt;
+  &lt;index label="Index" href="index.html" description="Welcome to MyProj"/&gt;
+  &lt;changes label="Changes" href="changes.html"
+    description="History of Changes" /&gt;
+  &lt;todo label="Todo" href="todo.html" description="Todo List" /&gt;
+  &lt;whole_foosite href="pdf-tab.html" label="pdf-tab" /&gt;
+&lt;/about&gt;
+...
+    </pre>
+<p>
+      This allows you to link to it via a
+      <span class="codefrag">&lt;link href="site:whole_foosite"&gt;</span>
+      reference. 
+    </p>
+<p>Add to every element that should be included in the pdf-tab.pdf
+      the attribute <span class="codefrag">wholesite="true"</span>
+</p>
+<pre class="code">
+&lt;sample-wiki label="Wiki page" href="wiki-sample.html"
+  description="wiki-sample" wholesite="true"/&gt;
+	  </pre>
+<div class="frame note">
+<div class="label">Note</div>
+<div class="content">This attribute will be inherited by all children of the element. 
+	 Do not use it in the parent element that contains the 
+	 <span class="codefrag">&lt;whole_foosite href="pdf-tab.html" label="pdf-tab" /&gt;</span> 
+	 as the child (will cause a <span class="codefrag">stack overflow</span> if you do)!!!
+	</div>
+</div>
+<a name="N100A8"></a><a name="explain"></a>
+<h3 class="underlined_5">Explanation of the operation</h3>
+<p>
+      Line 4 of our example
+      <br>
+      
+<span class="codefrag">&lt;map:parameter name="include" value="//*[@wholesite='true']"/&gt;</span>
+      looks at your site.xml and will match every element containing the
+      <span class="codefrag">wholesite="true"</span> attribute. For example, to use the "samples"
+      tab ...
+    </p>
+<pre class="code">
+...
+&lt;samples label="Samples" href="samples/" tab="samples" wholesite="true"&gt;
+...
+&lt;/samples&gt;
+...
+    </pre>
+<p>
+      It matches <strong>all</strong> of the elements that contain
+      <span class="codefrag">wholesite="true"</span>
+      (in our example <span class="codefrag">&lt;samples&gt;</span>
+      and its "children") for the content of the pdf file to be generated.
+    </p>
+<pre class="code"> 
+&lt;samples label="Samples" href="samples/" tab="samples" wholesite="true"&gt;
+ &lt;sample2 label="Static content" href="sample2.html"      
+   description="More Samples" wholesite='false'/&gt;
+ &lt;sample-wiki label="Wiki page" href="wiki-sample.html"      
+   description="wiki-sample" /&gt;
+ &lt;sample-ihtml label="ihtml page" href="ihtml-sample.html"      
+   description="Test iHTML page" /&gt;
+&lt;/samples&gt;     	
+    </pre>
+<p>
+      This example shows that you can as well exclude site(s) from the aggregation 
+      by using the <span class="codefrag">wholesite="false"</span> attribute. This attribute will be as well inherited 
+      by all children of the element.
+    </p>
+<p>
+      Line 8 defines the title of the pdf file by taking the content
+      of the project-name variable in
+      <span class="codefrag">skinconf.xml</span> and adding some funny text:
+      <br>
+      
+<span class="codefrag">&lt;map:parameter name="title" value="{conf:project-name}: Still My Foo Site"/&gt;</span>
+    
+</p>
+</div>
+<a name="N100DF"></a><a name="Feedback and further development of this How-To"></a>
+<h2 class="underlined_10">Feedback and further development of this How-To</h2>
+<div class="section">
+<p>
+      Please provide feedback about this document via the
+      <a href="../../mail-lists.html">mailing lists</a>.
+    </p>
+<p>
+      In the future, this ability will probably be incorporated into the
+      main Forrest process.
+    </p>
+</div>
+</div>
+<div class="clearboth">&nbsp;</div>
+</div>
+<div id="footer">
+<div class="lastmodified">
+<script type="text/javascript"><!--
+document.write("<text>Last Published:</text> " + document.lastModified);
+//  --></script>
+</div>
+<div class="copyright">
+        Copyright &copy;
+         2002-2005 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
+</div>
+</div>
+</body>
+</html>

Propchange: forrest/site/docs_0_70/howto/howto-pdf-tab.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: forrest/site/docs_0_70/howto/howto-pdf-tab.pdf
URL: http://svn.apache.org/viewcvs/forrest/site/docs_0_70/howto/howto-pdf-tab.pdf?rev=193078&view=auto
==============================================================================
Binary file - no diff available.

Propchange: forrest/site/docs_0_70/howto/howto-pdf-tab.pdf
------------------------------------------------------------------------------
    svn:mime-type = application/pdf

Added: forrest/site/docs_0_70/howto/howto-view-contracts.html
URL: http://svn.apache.org/viewcvs/forrest/site/docs_0_70/howto/howto-view-contracts.html?rev=193078&view=auto
==============================================================================
--- forrest/site/docs_0_70/howto/howto-view-contracts.html (added)
+++ forrest/site/docs_0_70/howto/howto-view-contracts.html Wed Jun 22 22:36:19 2005
@@ -0,0 +1,622 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="Apache Forrest" name="Generator">
+<meta name="Forrest-version" content="0.8-dev">
+<meta name="Forrest-skin-name" content="pelt">
+<title>How to write a forrest:contract? (v0.7)</title>
+<link type="text/css" href="../../skin/basic.css" rel="stylesheet">
+<link media="screen" type="text/css" href="../../skin/screen.css" rel="stylesheet">
+<link media="print" type="text/css" href="../../skin/print.css" rel="stylesheet">
+<link type="text/css" href="../../skin/profile.css" rel="stylesheet">
+<script src="../../skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="../../skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="../../skin/fontsize.js" language="javascript" type="text/javascript"></script>
+<link rel="shortcut icon" href="../../favicon.ico">
+</head>
+<body onload="init()">
+<script type="text/javascript">ndeSetTextSize();</script>
+<div id="top">
+<div class="breadtrail">
+<a href="http://www.apache.org/">apache</a> &gt; <a href="http://forrest.apache.org/">forrest</a><script src="../../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+</div>
+<div class="header">
+<div class="grouplogo">
+<a href="http://www.apache.org/"><img class="logoImage" alt="Apache" src="../../images/apache-forrest.png" title="The Apache Software Foundation"></a>
+</div>
+<div class="projectlogo">
+<a href="http://forrest.apache.org/"><img class="logoImage" alt="Forrest" src="../../images/project-logo.gif" title="Apache Forrest"></a>
+</div>
+<div class="searchbox">
+<form action="http://www.google.com/search" method="get" class="roundtopsmall">
+<input value="forrest.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google">&nbsp; 
+                    <input attr="value" name="Search" value="Search" type="submit">
+</form>
+</div>
+<ul id="tabs">
+<li>
+<a class="base-not-selected" href="../../index.html">Welcome</a>
+</li>
+<li>
+<a class="base-not-selected" href="../../contrib.html">Project</a>
+</li>
+<li>
+<a class="base-not-selected" href="../../versions/index.html">Versioned Docs</a>
+</li>
+<li>
+<a class="base-not-selected" href="../../pluginDocs/index.html">Plugins</a>
+</li>
+<li>
+<a class="base-not-selected" href="../../tools/index.html">Tools</a>
+</li>
+</ul>
+</div>
+</div>
+<div id="main">
+<div id="publishedStrip">
+<div id="level2tabs"></div>
+<script type="text/javascript"><!--
+document.write("<text>Last Published:</text> " + document.lastModified);
+//  --></script>
+</div>
+<div class="breadtrail">
+             
+             &nbsp;
+           </div>
+<div id="menu">
+<div onclick="SwitchMenu('menu_selected_1.1', '../../skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('../../skin/images/chapter_open.gif');">0.70</div>
+<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a href="../../docs_0_70/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/faq.html">FAQs</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/changes.html">Changes</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/todo.html">Todo</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/your-project.html">Using Forrest</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/validation.html">XML Validation</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/linking.html">Menus and Linking</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/searching.html">Searching</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/skins.html">Default Skins</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/skin-package.html">Skin Packages</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/views.html">Views-dev</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/forrest-contract.html">Our Contract</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/compliance.html">Standards Compliance</a>
+</div>
+<div onclick="SwitchMenu('menu_selected_1.1.14', '../../skin/')" id="menu_selected_1.1.14Title" class="menutitle" style="background-image: url('../../skin/images/chapter_open.gif');">How-To</div>
+<div id="menu_selected_1.1.14" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a href="../../docs_0_70/howto/index.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-howto.html">Write a How-to</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-asf-mirror.html">Download mirror</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-pdf-tab.html">Create tab PDF</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-editcss.html">Edit CSS (WYSIWYG)</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-corner-images.html">CSS corner SVG</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-forrest-from-maven.html">Maven Integration</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-buildPlugin.html">Build a Plugin</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-custom-html-source.html">Custom html source</a>
+</div>
+<div onclick="SwitchMenu('menu_1.1.14.10', '../../skin/')" id="menu_1.1.14.10Title" class="menutitle">Multipage HowTo</div>
+<div id="menu_1.1.14.10" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../docs_0_70/howto/multi/howto-multi.html">Introduction</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/multi/step1.html">Step 1</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/multi/step2.html">Step 2</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/multi/step3.html">Step 3</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_selected_1.1.14.11', '../../skin/')" id="menu_selected_1.1.14.11Title" class="menutitle" style="background-image: url('../../skin/images/chapter_open.gif');">Views</div>
+<div id="menu_selected_1.1.14.11" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-view-install.html">Install views</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/howto-view-dsl.html">forrest:view DSL</a>
+</div>
+<div class="menupage">
+<div class="menupagetitle">contract implementations</div>
+</div>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.15', '../../skin/')" id="menu_1.1.15Title" class="menutitle">Advanced Topics</div>
+<div id="menu_1.1.15" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../docs_0_70/build.html">Building Forrest</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/catalog.html">Using DTD Catalogs</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/sitemap-ref.html">Sitemap Reference</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/project-sitemap.html">Project sitemap</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/cap.html">Sourcetype Action</a>
+</div>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/upgrading_07.html">Upgrading to 0.7</a>
+</div>
+<div onclick="SwitchMenu('menu_1.1.17', '../../skin/')" id="menu_1.1.17Title" class="menutitle">Reference docs</div>
+<div id="menu_1.1.17" class="menuitemgroup">
+<div onclick="SwitchMenu('menu_1.1.17.1', '../../skin/')" id="menu_1.1.17.1Title" class="menutitle">DTD documentation</div>
+<div id="menu_1.1.17.1" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../dtdx/dtd-docs.html">Overview</a>
+</div>
+<div class="menuitem">
+<a href="../../dtdx/document-v20.dtdx.html">document-v20</a>
+</div>
+<div class="menuitem">
+<a href="../../dtdx/howto-v20.dtdx.html">howto-v20</a>
+</div>
+<div class="menuitem">
+<a href="../../dtdx/faq-v20.dtdx.html">faq-v20</a>
+</div>
+<div class="menuitem">
+<a href="../../dtdx/document-v13.dtdx.html">document-v13</a>
+</div>
+<div class="menuitem">
+<a href="../../dtdx/howto-v13.dtdx.html">howto-v13</a>
+</div>
+<div class="menuitem">
+<a href="../../dtdx/faq-v13.dtdx.html">faq-v13</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.17.2', '../../skin/')" id="menu_1.1.17.2Title" class="menutitle">Doc samples</div>
+<div id="menu_1.1.17.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../dtdx/document-v13.html">document-v13</a>
+</div>
+<div class="menuitem">
+<a href="../../dtdx/document-v20.html">document-v20</a>
+</div>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.1.18', '../../skin/')" id="menu_1.1.18Title" class="menutitle">Older Docs</div>
+<div id="menu_1.1.18" class="menuitemgroup">
+<div class="menuitem">
+<a href="../../docs_0_70/primer.html">Forrest Primer</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/libre-intro.html">Libre</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/dreams.html">Dream list</a>
+</div>
+<div class="menuitem">
+<a href="../../docs_0_70/howto/cvs-ssh/howto-cvs-ssh.html">CVS over SSH</a>
+</div>
+</div>
+</div>
+<div id="credit">
+<hr>
+        This is documentation for current version v0.7
+       (<a href="/versions/index.html">More</a>)</div>
+<div id="roundbottom">
+<img style="display: none" class="corner" height="15" width="15" alt="" src="../../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
+<div id="credit2">
+<a href="http://apachecon.com/"><img border="0" title="ApacheCon Europe 2005" alt="ApacheCon Europe 2005 - logo" src="http://apache.org/images/ac2005eu_135x50.gif" style="width: 135px;height: 50px;"></a>
+</div>
+</div>
+<div id="content">
+<div title="Portable Document Format" class="pdflink">
+<a class="dida" href="howto-view-contracts.pdf"><img alt="PDF -icon" src="../../skin/images/pdfdoc.gif" class="skin"><br>
+        PDF</a>
+</div>
+<div class="trail">
+<text>Font size:</text> 
+	          &nbsp;<input value="Reset" class="resetfont" title="Reset text" onclick="ndeSetTextSize('reset'); return false;" type="button">      
+	          &nbsp;<input value="-a" class="smallerfont" title="Shrink text" onclick="ndeSetTextSize('decr'); return false;" type="button">
+	          &nbsp;<input value="+a" class="biggerfont" title="Enlarge text" onclick="ndeSetTextSize('incr'); return false;" type="button">
+</div>
+<h1>How to write a forrest:contract?</h1>
+<div class="abstract">
+    This How-To will explain how we wrote the contracts for views and hope afterwards you will be able to do the same.
+  </div>
+<div id="motd-area">
+        This is documentation for current version v0.7
+       (<a href="/versions/index.html">More</a>)</div>
+<div id="minitoc-area">
+<ul class="minitoc">
+<li>
+<a href="#Intended Audience">Intended Audience</a>
+</li>
+<li>
+<a href="#Purpose">Purpose</a>
+</li>
+<li>
+<a href="#Prerequisites">Prerequisites</a>
+</li>
+<li>
+<a href="#Steps">Steps</a>
+<ul class="minitoc">
+<li>
+<a href="#enhanceMaintainment">Enhance the maintainment</a>
+</li>
+<li>
+<a href="#blankContract">Explaining the blank forrest:contract</a>
+</li>
+<li>
+<a href="#newContract">Create a new contract</a>
+</li>
+<li>
+<a href="#viewContract">Activating the contract</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#Further Reading">Further Reading</a>
+</li>
+<li>
+<a href="#Feedback">Feedback</a>
+</li>
+</ul>
+</div>
+<a name="N10010"></a><a name="Intended Audience"></a>
+<h2 class="underlined_10">Intended Audience</h2>
+<div class="section">
+<div class="frame warning">
+<div class="label">Warning</div>
+<div class="content">
+"Views" are new functionality which is still in development phase. That is why it is in the
+"whiteboard" section of the Forrest distribution.
+This HowTo is a good start but still needs proof-reading.
+</div>
+</div>
+<p>
+      Devs and skin developer that wants to get started with forrest:contract development. 
+      To really understand this how-to you need basic and sometimes advanced understanding of 
+      the "old fashion" skin development process.
+    </p>
+</div>
+<a name="N1001B"></a><a name="Purpose"></a>
+<h2 class="underlined_10">Purpose</h2>
+<div class="section">
+<p>
+      This setup guide will explain how to create a forrest:contract from scratch and 
+      how this forrest:contract work with the core parts of forrest.
+    </p>
+</div>
+<a name="N10023"></a><a name="Prerequisites"></a>
+<h2 class="underlined_10">Prerequisites</h2>
+<div class="section">
+<ul>
+      
+<li>
+        You have a ready-to-go new seed (newSeed) based on views like described in <a href="../../docs_0_80/howto/howto-view-install.html">Install views</a>.
+      </li>
+      
+<li>
+      	This includes as well all additional plugins that are mentioned in <a href="../../docs_0_80/howto/howto-view-install.html">Install views</a>.
+      </li>
+      
+<li>
+        Reading that how-to is as well a good idea to understand the used dir-structure in this how-to.
+      </li>
+    
+</ul>
+</div>
+<a name="N1003C"></a><a name="Steps"></a>
+<h2 class="underlined_10">Steps</h2>
+<div class="section">
+<div class="frame note">
+<div class="label">Note</div>
+<div class="content">The following content is from many mails around the topic, this how-to tries to be the 
+      consolidation of this thread. It is mainly based on the [RT] Why using views - 
+      in comparison with "old fashion" skins - usecase i18n</div>
+</div>
+<p>
+      By working on the i18n integration for "pelt" we crossed again the whys for using views. ;-)
+      The maintainment problem was to change the captions of the skin features (contracts) to enable
+      support for i18n. The case is that the <span class="codefrag">site2xhtml.xsl</span> has a lot of repeating code. 
+    </p>
+<p>
+      For example the "last-publish"-contract could be found 2 times in the code.  
+      This is not the only contract that was (is) double in the code. The problem with that is that 
+      we needed to search the code for each caption and senseless repeat the following 
+      maintainment step of adding the &lt;i18n:text/&gt;-tags.
+    </p>
+<pre class="code">
+
+- &lt;script language="JavaScript"
+- type="text/javascript"&gt;document.write("Published: " + document.lastModified);&lt;/script&gt;
+
++ &lt;script type="text/javascript"&gt;document.write("&lt;i18n:text &gt;Last
++ Published:&lt;/i18n:text&gt;&amp;#160;" + document.lastModified);
+
+    </pre>
+<a name="N10051"></a><a name="enhanceMaintainment"></a>
+<h3 class="underlined_5">Enhance the maintainment</h3>
+<p>Now we can enhance the maintainment for the future and we give this code snippets 
+        contracts names (based on their functionality). This naming enables us to keep
+the contract separate from the position code itself. In xsl you would
+simply do:
+      </p>
+<ol>
+        
+<li>replace the script by &lt;xsl:call-template name="siteinfo-last-published"/&gt;</li>
+        
+<li>and add:</li>
+      
+</ol>
+<pre class="code">&lt;xsl:template name="siteinfo-last-published"&gt;
+ &lt;script type="text/javascript"&gt;
+  document.write("&lt;i18n:text &gt;Last Published:&lt;/i18n:text&gt;&amp;#160;" + document.lastModified);
+ &lt;/script&gt;
+&lt;/xsl:template&gt;
+      </pre>
+<p>
+        This allows us in a next maintainment just change the code of
+        &lt;xsl:template name="siteinfo-last-published"/&gt; and apply it in any position where
+        it is placed.  
+      </p>
+<div class="frame note">
+<div class="label">Note</div>
+<div class="content">
+        Now this refactoring of the site2xhtml.xsl is exactly what we doing in creating contracts for views.
+      </div>
+</div>
+<a name="N1006E"></a><a name="blankContract"></a>
+<h3 class="underlined_5">Explaining the blank forrest:contract</h3>
+<p>
+        To start a new forrest:contract you can copy the 'blank.ft' from
+        <span class="codefrag">org.apache.forrest.plugin.output.viewHelper.xhtml/resources/templates</span>. 
+        The exact file system path can be looked up at <span class="codefrag">http://localhost:8888/ls.contracts.html</span>.
+      </p>
+<p>
+        The 'blank.ft' is a simple xml file with the following code which you can use to base new contracts 
+        on:
+      </p>
+<pre class="code">
+&lt;forrest:contract 
+  xmlns:forrest="http://apache.org/forrest/templates/1.0"
+  name="blank" type="nugget"&gt;
+  
+  &lt;!--NOTE: 
+    When using the blank template as c'n p master just search and replace 'blank' by the {contract-name}!--&gt;
+  
+  &lt;description&gt;
+    {contract-name} will output {contract-funtion}. This is just a blank contract, it will output *nothing*.
+  &lt;/description&gt;
+  &lt;usage&gt;&lt;![CDATA[&lt;forrest:contract name="blank"/&gt;]]&gt;&lt;/usage&gt;
+  &lt;forrest:template xmlns:forrest="http://apache.org/forrest/templates/1.0"
+    format="xhtml" name="blank" inputFormat="xsl" body="false" head="false"&gt;
+    &lt;xsl:stylesheet version="1.1" 
+        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;
+        &lt;!--Add here the needed templates--&gt;
+    &lt;/xsl:stylesheet&gt;
+  &lt;/forrest:template&gt;
+&lt;/forrest:contract&gt;
+
+      </pre>
+<p>
+        The most important is the name of the contract <span class="codefrag">&lt;forrest:contract name="blank"/&gt;</span>. 
+        This name is the same as the file name of the contract (without file extension) <span class="codefrag">blank.ft</span>. 
+      </p>
+<div class="frame note">
+<div class="label">Note</div>
+<div class="content">This is a <strong>naming convention</strong> that you have
+        to always met. All @name has to be file name of the contract without file extension!
+      </div>
+</div>
+<p>
+        The <span class="codefrag">&lt;description/&gt;</span> tag needs to be filled in with some information
+        that is explaining the contract to the webdesigner. The better explained the more efficient
+        for the webdesigner to pick the right contract.
+      </p>
+<pre class="code">&lt;description&gt;
+  siteinfo-last-published-howto will output the last published date of the site with the help of jscript.
+&lt;/description&gt;
+      </pre>
+<p>
+        In the <span class="codefrag">&lt;usage/&gt;</span> tag we have to explain how the designer can use 
+        the contract in his view.
+      </p>
+<pre class="code">&lt;usage&gt;&lt;![CDATA[&lt;forrest:contract name="siteinfo-last-published-howto"/&gt;]]&gt;&lt;/usage&gt;
+      </pre>
+<p>
+        
+<span class="codefrag">&lt;forrest:template name="blank" body="false" head="false"&gt; </span> 
+        That leads to the template attribute @body="true" and
+				@head="false". In xhtml a contract can add content to the &lt;body/&gt; or/and
+				&lt;head/&gt; part of &lt;html/&gt;. This values have to be change when adding an actual template.
+        Besides this a xsl-template has to indicate this in the naming. A template that add content to the 
+        html body has to end with "<span class="codefrag">-body</span>"!!!
+      </p>
+<div class="frame note">
+<div class="label">Note</div>
+<div class="content">
+        It is possible to use contracts in different in/output-formats. 
+        We are focusing for now on format="xhtml" as ouput and the inputFormat="xsl".
+      </div>
+</div>
+<p>
+        A &lt;forrest:template /&gt; has the son &lt;xsl:stylesheet/&gt; where we can create 
+        templates for the html-head and html-body. For adding content into the body of the final 
+        document change @body="true" and add:
+      </p>
+<pre class="code">
+&lt;xsl:stylesheet version="1.1" 
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;
+ &lt;!--Add here the needed templates--&gt;
+ &lt;xsl:template name="blank-body"/&gt;
+&lt;/xsl:stylesheet&gt;        
+      </pre>
+<a name="N100BB"></a><a name="newContract"></a>
+<h3 class="underlined_5">Create a new contract</h3>
+<div class="frame fixme">
+<div class="label">Fixme (thorsten)</div>
+<div class="content">
+        We need to explain basic naming convention for contracts. Like
+        "naming do not say about layout position but functionality of the contract.".
+      </div>
+</div>
+<p> 
+				Now lets pick up the example we started with and create a "siteinfo-last-published-howto" contract.
+        Save the blank.ft to <span class="codefrag">{project.home}/src/documentation/resources/templates/siteinfo-last-published-howto.ft</span>.
+      </p>
+<p>
+        Now the maintainment optimized code (xpath="/html/body/*") was:
+      </p>
+<pre class="code">
+&lt;xsl:template name="siteinfo-last-published"&gt;
+ &lt;script type="text/javascript"&gt;
+  document.write("&lt;i18n:text &gt;Last Published:&lt;/i18n:text&gt;&amp;#160;" + document.lastModified);
+ &lt;/script&gt;
+&lt;/xsl:template&gt;</pre>
+<p>
+        In this code we have to do the following steps to use it in our contract:
+			</p>
+<ul>
+        
+<li>Search and replace "siteinfo-last-published" with "siteinfo-last-publish-howto-body"</li>
+        
+<li>Add a "debug string - " to the template</li>
+      
+</ul>
+<p>
+        The contract after this steps should look like:
+      </p>
+<pre class="code">
+&lt;xsl:template name="siteinfo-last-publish-howto-body"&gt;
+debug string - 
+ &lt;script type="text/javascript"&gt;
+  document.write("&lt;i18n:text &gt;Last Published:&lt;/i18n:text&gt;&amp;#160;" + document.lastModified);
+ &lt;/script&gt;
+&lt;/xsl:template&gt;</pre>
+<p>Now we have to do some last steps in the siteinfo-last-publish-howto.ft</p>
+<ul>
+        
+<li>Search and replace "blank" with "siteinfo-last-publish-howto"</li>
+        
+<li>Add description and usage of the contract</li>
+        
+<li>Set @body="true"</li>
+        
+<li>Copy the maintainment optimized code to the contract.</li>
+      
+</ul>
+<p>
+        As the result your code should look like this:
+      </p>
+<pre class="code">&lt;forrest:contract xmlns:forrest="http://apache.org/forrest/templates/1.0"
+  name="siteinfo-last-published-howto" type="nugget"&gt;
+  &lt;description&gt;
+    siteinfo-last-published-howto will output the last published date of the site with the help of jscript.
+  &lt;/description&gt;
+  &lt;usage&gt;&lt;![CDATA[&lt;forrest:contract name="siteinfo-last-published-howto"/&gt;]]&gt;&lt;/usage&gt;
+  &lt;forrest:template 
+    xmlns:i18n="http://apache.org/cocoon/i18n/2.1"
+    xmlns:forrest="http://apache.org/forrest/templates/1.0"
+    format="xhtml" name="siteinfo-last-published-howto" inputFormat="xsl" body="true" head="false"&gt;
+    &lt;xsl:stylesheet version="1.1" 
+        xmlns:i18n="http://apache.org/cocoon/i18n/2.1"
+        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;
+        &lt;xsl:template name="siteinfo-last-published-howto-body"&gt;
+          debug string - 
+          &lt;script type="text/javascript"&gt;document.write("&lt;i18n:text &gt;Last Published:&lt;/i18n:text&gt;&amp;#160;" + document.lastModified);&lt;/script&gt;
+        &lt;/xsl:template&gt;
+    &lt;/xsl:stylesheet&gt;
+  &lt;/forrest:template&gt;
+&lt;/forrest:contract&gt;
+      </pre>
+<a name="N100FF"></a><a name="viewContract"></a>
+<h3 class="underlined_5">Activating the contract</h3>
+<p>
+        To see whether the new contract works we need to add it to our view.
+        The contract usage contains the contract-tag <span class="codefrag">&lt;forrest:contract name="siteinfo-last-published-howto"/&gt;</span>
+        Please see <a href="../../docs_0_80/howto/howto-view-dsl.html">Getting started with forrest:view DSL</a> for more details.
+      </p>
+<div class="frame fixme">
+<div class="label">Fixme (thorsten)</div>
+<div class="content">
+        Let us now look into advanced features of views. 
+        I will write a how-to for advanced contracts soon. :)
+      </div>
+</div>
+</div>
+<a name="N10114"></a><a name="Further Reading"></a>
+<h2 class="underlined_10">Further Reading</h2>
+<div class="section">
+<p>
+      Congratulations you are now able to work with view contracts. 
+      From here we recommend to read the following How-To's:
+    </p>
+<ul>
+      
+<li>
+<a href="../../docs_0_80/howto/howto-view-dsl.html">Getting started with forrest:view DSL</a> 
+</li>
+    
+</ul>
+</div>
+<a name="N10125"></a><a name="Feedback"></a>
+<h2 class="underlined_10">Feedback</h2>
+<div class="section">
+<p>
+      Please provide feedback about this document via the
+      <a href="../../mail-lists.html">mailing lists</a>.
+    </p>
+</div>
+</div>
+<div class="clearboth">&nbsp;</div>
+</div>
+<div id="footer">
+<div class="lastmodified">
+<script type="text/javascript"><!--
+document.write("<text>Last Published:</text> " + document.lastModified);
+//  --></script>
+</div>
+<div class="copyright">
+        Copyright &copy;
+         2002-2005 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
+</div>
+</div>
+</body>
+</html>

Propchange: forrest/site/docs_0_70/howto/howto-view-contracts.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: forrest/site/docs_0_70/howto/howto-view-contracts.pdf
URL: http://svn.apache.org/viewcvs/forrest/site/docs_0_70/howto/howto-view-contracts.pdf?rev=193078&view=auto
==============================================================================
Binary file - no diff available.

Propchange: forrest/site/docs_0_70/howto/howto-view-contracts.pdf
------------------------------------------------------------------------------
    svn:mime-type = application/pdf