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> > <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">
+ <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">
+
+
+ </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>
+ <input value="Reset" class="resetfont" title="Reset text" onclick="ndeSetTextSize('reset'); return false;" type="button">
+ <input value="-a" class="smallerfont" title="Shrink text" onclick="ndeSetTextSize('decr'); return false;" type="button">
+ <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">
+<property environment="env" />
+ </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">
+<goal name="forrest" description="runs Forrest">
+ <property name="forrest.home" location="${env.FORREST_HOME}" />
+ <property name="forrest.ant.home" location="${forrest.home}/tools/ant" />
+ <java classname="org.apache.tools.ant.Main" fork="true" failonerror="true" maxmemory="128M">
+ <classpath>
+ <fileset dir="${forrest.ant.home}/lib">
+ <include name="*.jar" />
+ </fileset>
+ <pathelement path="${java.home}/../lib/tools.jar" />
+ </classpath>
+ <sysproperty key="ant.home" value="${forrest.ant.home}" />
+ <sysproperty key="forrest.home" value="${forrest.home}" />
+ <sysproperty key="basedir" value="${basedir}" />
+ <sysproperty key="java.endorsed.dirs" value="${forrest.home}/lib/endorsed" />
+ <arg line="-f ${forrest.home}/main/forrest.build.xml" />
+ </java>
+</goal>
+ </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"> </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 ©
+ 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> > <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">
+ <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">
+
+
+ </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>
+ <input value="Reset" class="resetfont" title="Reset text" onclick="ndeSetTextSize('reset'); return false;" type="button">
+ <input value="-a" class="smallerfont" title="Shrink text" onclick="ndeSetTextSize('decr'); return false;" type="button">
+ <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"> </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 ©
+ 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> > <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">
+ <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">
+
+
+ </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>
+ <input value="Reset" class="resetfont" title="Reset text" onclick="ndeSetTextSize('reset'); return false;" type="button">
+ <input value="-a" class="smallerfont" title="Shrink text" onclick="ndeSetTextSize('decr'); return false;" type="button">
+ <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">
+<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
+ <map:pipelines>
+ <map:pipeline internal-only="false">
+ <map:match pattern="**.xml">
+ <!-- pdf-tab definitions -->
+ <map:match pattern="pdf-tab.xml">
+ <map:mount uri-prefix="" src="pdf-tab.xmap"
+ check-reload="yes" />
+ </map:match>
+ <!-- end of pdf-tab definitions -->
+ </map:match>
+ </map:pipeline>
+ </map:pipelines>
+</map:sitemap>
+ </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"><map:match pattern="*.xml"></span> element
+ should look like the following:
+ </p>
+<pre class="code">
+<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
+ <map:pipelines>
+ <map:pipeline internal-only="false">
+ <map:match pattern="*.xml">
+ <map:generate src="cocoon://abs-linkmap"/>
+ <map:transform type="xpath">
+ <map:parameter name="include" value="//*[@wholesite='true']"/>
+ <map:parameter name="exclude" value="//*[@wholesite='false']"/>
+ </map:transform>
+ <map:transform src="resources/stylesheets/site2book.xsl" />
+ <map:transform src="resources/stylesheets/aggregates/book2cinclude.xsl">
+ <map:parameter name="title"
+ value="{conf:project-name}: Still My Foo Site"/>
+ </map:transform>
+ <map:transform type="cinclude"/>
+ <map:transform src="resources/stylesheets/aggregates/doc2doc-uniqueids.xsl"/>
+ <map:transform src="resources/stylesheets/aggregates/docs2document.xsl"/>
+ <map:serialize type="xml"/>
+ </map:match>
+ </map:pipeline>
+ </map:pipelines>
+</map:sitemap>
+ </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"><about></span> element
+ </p>
+<pre class="code">...
+<whole_foosite href="pdf-tab.html" label="sub site" />
+ </pre>
+<p>
+ Your site.xml should look like this ...
+ </p>
+<pre class="code">...
+<about label="About">
+ <index label="Index" href="index.html" description="Welcome to MyProj"/>
+ <changes label="Changes" href="changes.html"
+ description="History of Changes" />
+ <todo label="Todo" href="todo.html" description="Todo List" />
+ <whole_foosite href="pdf-tab.html" label="pdf-tab" />
+</about>
+...
+ </pre>
+<p>
+ This allows you to link to it via a
+ <span class="codefrag"><link href="site:whole_foosite"></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">
+<sample-wiki label="Wiki page" href="wiki-sample.html"
+ description="wiki-sample" wholesite="true"/>
+ </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"><whole_foosite href="pdf-tab.html" label="pdf-tab" /></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"><map:parameter name="include" value="//*[@wholesite='true']"/></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">
+...
+<samples label="Samples" href="samples/" tab="samples" wholesite="true">
+...
+</samples>
+...
+ </pre>
+<p>
+ It matches <strong>all</strong> of the elements that contain
+ <span class="codefrag">wholesite="true"</span>
+ (in our example <span class="codefrag"><samples></span>
+ and its "children") for the content of the pdf file to be generated.
+ </p>
+<pre class="code">
+<samples label="Samples" href="samples/" tab="samples" wholesite="true">
+ <sample2 label="Static content" href="sample2.html"
+ description="More Samples" wholesite='false'/>
+ <sample-wiki label="Wiki page" href="wiki-sample.html"
+ description="wiki-sample" />
+ <sample-ihtml label="ihtml page" href="ihtml-sample.html"
+ description="Test iHTML page" />
+</samples>
+ </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"><map:parameter name="title" value="{conf:project-name}: Still My Foo Site"/></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"> </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 ©
+ 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> > <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">
+ <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">
+
+
+ </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>
+ <input value="Reset" class="resetfont" title="Reset text" onclick="ndeSetTextSize('reset'); return false;" type="button">
+ <input value="-a" class="smallerfont" title="Shrink text" onclick="ndeSetTextSize('decr'); return false;" type="button">
+ <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 <i18n:text/>-tags.
+ </p>
+<pre class="code">
+
+- <script language="JavaScript"
+- type="text/javascript">document.write("Published: " + document.lastModified);</script>
+
++ <script type="text/javascript">document.write("<i18n:text >Last
++ Published:</i18n:text>&#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 <xsl:call-template name="siteinfo-last-published"/></li>
+
+<li>and add:</li>
+
+</ol>
+<pre class="code"><xsl:template name="siteinfo-last-published">
+ <script type="text/javascript">
+ document.write("<i18n:text >Last Published:</i18n:text>&#160;" + document.lastModified);
+ </script>
+</xsl:template>
+ </pre>
+<p>
+ This allows us in a next maintainment just change the code of
+ <xsl:template name="siteinfo-last-published"/> 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">
+<forrest:contract
+ xmlns:forrest="http://apache.org/forrest/templates/1.0"
+ name="blank" type="nugget">
+
+ <!--NOTE:
+ When using the blank template as c'n p master just search and replace 'blank' by the {contract-name}!-->
+
+ <description>
+ {contract-name} will output {contract-funtion}. This is just a blank contract, it will output *nothing*.
+ </description>
+ <usage><![CDATA[<forrest:contract name="blank"/>]]></usage>
+ <forrest:template xmlns:forrest="http://apache.org/forrest/templates/1.0"
+ format="xhtml" name="blank" inputFormat="xsl" body="false" head="false">
+ <xsl:stylesheet version="1.1"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <!--Add here the needed templates-->
+ </xsl:stylesheet>
+ </forrest:template>
+</forrest:contract>
+
+ </pre>
+<p>
+ The most important is the name of the contract <span class="codefrag"><forrest:contract name="blank"/></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"><description/></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"><description>
+ siteinfo-last-published-howto will output the last published date of the site with the help of jscript.
+</description>
+ </pre>
+<p>
+ In the <span class="codefrag"><usage/></span> tag we have to explain how the designer can use
+ the contract in his view.
+ </p>
+<pre class="code"><usage><![CDATA[<forrest:contract name="siteinfo-last-published-howto"/>]]></usage>
+ </pre>
+<p>
+
+<span class="codefrag"><forrest:template name="blank" body="false" head="false"> </span>
+ That leads to the template attribute @body="true" and
+ @head="false". In xhtml a contract can add content to the <body/> or/and
+ <head/> part of <html/>. 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 <forrest:template /> has the son <xsl:stylesheet/> 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">
+<xsl:stylesheet version="1.1"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <!--Add here the needed templates-->
+ <xsl:template name="blank-body"/>
+</xsl:stylesheet>
+ </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">
+<xsl:template name="siteinfo-last-published">
+ <script type="text/javascript">
+ document.write("<i18n:text >Last Published:</i18n:text>&#160;" + document.lastModified);
+ </script>
+</xsl:template></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">
+<xsl:template name="siteinfo-last-publish-howto-body">
+debug string -
+ <script type="text/javascript">
+ document.write("<i18n:text >Last Published:</i18n:text>&#160;" + document.lastModified);
+ </script>
+</xsl:template></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"><forrest:contract xmlns:forrest="http://apache.org/forrest/templates/1.0"
+ name="siteinfo-last-published-howto" type="nugget">
+ <description>
+ siteinfo-last-published-howto will output the last published date of the site with the help of jscript.
+ </description>
+ <usage><![CDATA[<forrest:contract name="siteinfo-last-published-howto"/>]]></usage>
+ <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">
+ <xsl:stylesheet version="1.1"
+ xmlns:i18n="http://apache.org/cocoon/i18n/2.1"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <xsl:template name="siteinfo-last-published-howto-body">
+ debug string -
+ <script type="text/javascript">document.write("<i18n:text >Last Published:</i18n:text>&#160;" + document.lastModified);</script>
+ </xsl:template>
+ </xsl:stylesheet>
+ </forrest:template>
+</forrest:contract>
+ </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"><forrest:contract name="siteinfo-last-published-howto"/></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"> </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 ©
+ 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