Author: crossley
Date: Tue Nov 15 15:26:03 2005
New Revision: 344476
URL: http://svn.apache.org/viewcvs?rev=344476&view=rev
Log:
Automatic publish from forrestbot
Modified:
forrest/site/docs_0_80/howto/howto-structurer-dsl.html
forrest/site/docs_0_80/howto/howto-structurer-dsl.pdf
forrest/site/forrest-friday.html
forrest/site/forrest-friday.pdf
forrest/site/forrest-issues.html
forrest/site/forrest-issues.pdf
forrest/site/linkmap.html
forrest/site/linkmap.pdf
Modified: forrest/site/docs_0_80/howto/howto-structurer-dsl.html
URL:
http://svn.apache.org/viewcvs/forrest/site/docs_0_80/howto/howto-structurer-dsl.html?rev=344476&r1=344475&r2=344476&view=diff
==============================================================================
--- forrest/site/docs_0_80/howto/howto-structurer-dsl.html (original)
+++ forrest/site/docs_0_80/howto/howto-structurer-dsl.html Tue Nov 15 15:26:03
2005
@@ -5,7 +5,7 @@
<meta content="Apache Forrest" name="Generator">
<meta name="Forrest-version" content="0.8-dev">
<meta name="Forrest-skin-name" content="pelt">
-<title>How to use the forrest:view config-DSL (v0.8-dev)</title>
+<title>How to use the structurer (v0.8-dev)</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">
@@ -205,10 +205,10 @@
<a href="../../docs_0_80/howto/howto-structurer-install.html">Install</a>
</div>
<div class="menupage">
-<div class="menupagetitle">forrest:view DSL</div>
+<div class="menupagetitle">structurer</div>
</div>
<div class="menuitem">
-<a href="../../docs_0_80/howto/howto-structurer-contracts.html">Contract
implementations</a>
+<a href="../../docs_0_80/howto/howto-structurer-contracts.html">contracts</a>
</div>
</div>
<div onclick="SwitchMenu('menu_1.1.15.13', '../../skin/')"
id="menu_1.1.15.13Title" class="menutitle">Old Views (deprecated)</div>
@@ -326,11 +326,9 @@
<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 use the forrest:view config-DSL</h1>
-<div class="abstract">
- This How-To describes the usage of the forrest:view config Domain Specific
Language
- to create beautiful websites in no time.
- </div>
+<h1>How to use the structurer</h1>
+<div class="abstract"> This How-To describes the usage of the structurer
config domain
+ specific language to create beautiful websites in no time. </div>
<div id="motd-area">
This is documentation for development version v0.8
(<a href="http://forrest.apache.org/versions/">More</a>)</div>
@@ -349,16 +347,16 @@
<a href="#Steps">Steps</a>
<ul class="minitoc">
<li>
-<a href="#emptyView">Empty view file</a>
+<a href="#emptystructurer">Empty structurer file</a>
</li>
<li>
-<a href="#firstView">Creating your first view</a>
+<a href="#firststructurer">Creating your first structurer</a>
</li>
<li>
-<a href="#hookView">Hooks in views</a>
+<a href="#hookstructurer">Hooks in the structurer</a>
</li>
<li>
-<a href="#cssView">CSS in views</a>
+<a href="#cssstructurer">CSS in the structurer</a>
</li>
</ul>
</li>
@@ -375,150 +373,224 @@
<div class="section">
<div class="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 far from being finished.
+<div class="content"> The "Dispatcher" (aka "Views") is 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
+ more work. </div>
</div>
+<p> This part of the the dispatcher is called the structurer and is
+ dedicated to webdesigner and user with some knowlegde of css. </p>
+<div class="note">
+<div class="label">Note</div>
+<div class="content"> For the moment we will use a special seed template
called seed-v2.
+ We still need to fix issues of the dispatcher that it really can replace
+ old fashion skins. Like performance, standalone contracts, other testing
+ output/input formats - using POJO based processing will help solving
+ this. All this will ATM happen in the v2 seed-target till the dispatcher
+ will be realesed to the stable plugins. So make regular updates of your
+ forrest-trunk to keep track. </div>
+</div>
+<div class="warning">
+<div class="label">Warning</div>
+<div class="content"> The way we develope contracts will/may change with
introduction
+ of java based processing rather then xsl. Please keep this in mind and
+ help updating the documentation by sending patches. TIA. ;-) </div>
</div>
-<p>
- This part of the views is dedicated to webdesigner and user with some
knowlegde of css.
- </p>
</div>
-<a name="N1001B"></a><a name="Purpose"></a>
+<a name="N10021"></a><a name="Purpose"></a>
<h2 class="underlined_10">Purpose</h2>
<div class="section">
-<p>
- This how-to will show you how to write a <strong>forrest:view</strong>
from the ground up.
- We will focus on html as the output format. As well it will show how to
add your own css implementation to the view.
- </p>
+<p> This how-to will show you how to write a <strong>forrest:view</strong>
+ from the ground up. We will focus on html as the output format. As well
+ it will show how to add your own css implementation to the structurer.
+ </p>
</div>
-<a name="N10026"></a><a name="Prerequisites"></a>
+<a name="N1002C"></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 as described
in <a href="../../docs_0_80/howto/howto-view-install.html">Install views</a>.
- </li>
+<li> You have a ready-to-go new seed-v2 (v2) based on the dispatcher like
+ described in <a
href="../../docs_0_80/howto/howto-structurer-install.html">Install</a>. </li>
-<li>
- This includes as well as 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
+ directory structure in this how-to. </li>
-<li>
- Reading that how-to is as well a good idea to understand the used
directory structure in this how-to.
- </li>
+<li>Installing a mozilla browser and the forrestbar helps a lot in
+ developing.</li>
</ul>
</div>
-<a name="N1003F"></a><a name="Steps"></a>
+<a name="N10041"></a><a name="Steps"></a>
<h2 class="underlined_10">Steps</h2>
<div class="section">
<div class="note">
<div class="label">Note</div>
-<div class="content">
- When developing with views we assume you are using 'forrest run' and the
following workflow:<br>
- change files -> refresh browser
- </div>
-</div>
-<p>
- We developed<strong> forrest:view</strong> to let the user decide where
to place elements in e.g. html pages.
- We started this work with the <span class="codefrag">skinconf.xml</span>
where you could configure certain elements and
- their positions. These elements were known under certain names. It was
up to the skin designer to support
- this configuration and the elements.
- </p>
-<p>
- The work started with grouping elements (the ones from skinconf). We used
css-contracts that
- we added as @attributes e.g. <span class="codefrag"><div
id="content-main"/> </span>. That made it
- possible to use the same elements in different skins. For the full list
refer to the
- <a
href="http://svn.apache.org/repos/asf/forrest/trunk/main/webapp/skins/leather-dev/contracts.initial.txt">
- initial contract list
- </a>
-
+<div class="content"> When developing with the dispatcher we assume you are
using 'forrest
+ run' and the following workflow "change files -> refresh browser"<br>
+ Installing a mozilla browser and the forrestbar helps a lot in
+ developing. Many instructions assumes that you have the forrestbar
+ installed. </div>
+</div>
+<p> We developed<strong> the structurer</strong> to let the user decide
+ where to place elements in e.g. html pages. We started this work with
the
+ <span class="codefrag">skinconf.xml</span> where you could configure
certain elements and
+ their positions. These elements were known under certain names. It was
up
+ to the skin designer to support this configuration and the elements. </p>
+<p> The work started with grouping elements (the ones from skinconf). We
+ used css-contracts that we added as @attributes e.g. <span
class="codefrag"><div id="content-main"/>
+ </span>. That made it possible to use the same elements in different
+ skins. For the full list refer to the <a
href="http://svn.apache.org/repos/asf/forrest/trunk/main/webapp/skins/leather-dev/contracts.initial.txt">
+ initial contract list </a>
</p>
-<p>
- Around this contracts we developed a configuration Domain Specific
Language and called it<strong>forrest:view</strong>.
- These <strong>forrest:view</strong>s allows us to define the order in
which <strong>forrest:contract</strong>s appear, and also to group
- them using <strong>forrest:hook</strong>s.
- </p>
-<p>
-
-<strong>forrest:hook</strong>s are containers that are only used for layout
reasons. They <strong>do not</strong> add
- any content or functionality to the output. They add
<strong>only</strong> layout information to
- the output. Actually a <span class="codefrag"><forrest:hook
name="layoutId"/></span> will be transformed
- to <span class="codefrag"><div id="layoutId"/> </span>
-
+<p> Around this contracts we developed a configuration Domain Specific
+ Language - called <strong>the structurer</strong>. The
+ <strong>structurer</strong> allows us to define the order in which
+ <strong>forrest:contract</strong>s appear, and also to group them using
+ <strong>forrest:hook</strong>s. </p>
+<p>
+<strong>forrest:hook</strong>s are containers that are only used for
+ layout reasons. They <strong>do not</strong> add any content nor
+ functionality to the output. They add <strong>only</strong> layout
+ information to the output. Actually e.g. a <span
class="codefrag"><forrest:hook name="layoutId"/>
+ </span> will be transformed to <span class="codefrag"><div
id="layoutId"/>
+ </span>
</p>
-<p>
-
-<strong>forrest:contract</strong>s are functionality or extra content that a
skin can use to display the requested
- document (content-main). Sometimes a contract delivers
<strong>format-specific markup</strong>, other times it delivers
- a <strong>format-independent string</strong>.
- </p>
-<a name="N10089"></a><a name="emptyView"></a>
-<h3 class="underlined_5">Empty view file</h3>
-<pre class="code"><forrest:views
xmlns:forrest="http://apache.org/forrest/templates/1.0">
- <forrest:view type="xhtml">
+<p>
+<strong>forrest:contract</strong>s are functionality or extra content
+ that a theme can use to display the request. Sometimes a contract
+ delivers <strong>format-specific markup</strong>, other times it
delivers
+ a <strong>format-independent string</strong>. We decide different kind
of
+ contracts, static one (like described in the contract howto), semi
static
+ (which offer configuration parameter in the structurer) and dynamic
+ contracts (which offer semi-static configuration and/or requesting the
+ content). </p>
+<p>Till now the processing includes firstly all raw data into the
+ structurer, then generating a dynamic xsl and last but nor least
+ response. That is heavy based on xsl processing which is quite slow. A
+ better way is that we do not include *raw* but the *transformed* (by the
+ contract) data . This way we do not have to generate a dynamic
stylesheet
+ which leads to the upcoming development of standalone contracts.</p>
+<div class="note">
+<div class="label">Note</div>
+<div class="content"> The structurer is as well a configuration file for the
dispatcher.
+ The new think on the dispatcher is that one can include any content
+ from any given business service by dispatching a request against it.
In
+ "old fashion" skins and in v1 contracts we assumed a given data model.
+ In the dispatcher there is <strong>no</strong> given data model any
+ more. All data has to be defined in the structurer that they can be
+ dispatched. </div>
+</div>
+<a name="N10094"></a><a name="emptystructurer"></a>
+<h3 class="underlined_5">Empty structurer file</h3>
+<pre class="code"><forrest:views
+ xmlns:forrest="http://apache.org/forrest/templates/1.0"
+ xmlns:jx="http://apache.org/cocoon/templates/jx/1.0">
+ <forrest:view type="html">
</forrest:view>
</forrest:views>
</pre>
-<p>
-
-<strong> forrest:view</strong> is designed to be open for any format that can
use<strong> forrest:view</strong> as configuration file.
- The only format we implemented is xhtml for now. This is as well true
for the delivered contracts.
- </p>
-<p>
- Now let us start to skin our site.
- </p>
-<a name="N100A0"></a><a name="firstView"></a>
-<h3 class="underlined_5">Creating your first view</h3>
-<p>
- In this section we will create a new view. We
will override the default view of the view-plugin
- for the index page of the <a
href="../../docs_0_80/howto/howto-view-install.html">newSeed</a>.
- For that we will create a file called <span
class="codefrag">index.fv</span> and save it in our xdocs directory.
- This will make <strong>only</strong> the index.html page look
different from the rest of the project.
- </p>
-<p>
- Remember: pointing your browser to <span
class="codefrag">http://localhost:8888/ls.contracts.html</span> will
- show a page with all contracts that you can use in your project.
- </p>
-<p>
- Let use the blank view from the earlier step and add the content-main
contract. In
- ls.contracts.html we find the information for how to use the contract
in our view. Our
- <span class="codefrag">index.fv</span> should look like:
- </p>
-<pre class="code"><forrest:views
xmlns:forrest="http://apache.org/forrest/templates/1.0">
- <forrest:view type="xhtml">
- <forrest:contract name="content-main"/>
+<p>
+<strong> The structurer</strong> is designed to be open for any
+ format that can use<strong> forrest:view</strong> as configuration
+ file. The only format we implemented is html for now. This is as well
+ true for the delivered contracts. </p>
+<a name="N100A8"></a><a name="firststructurer"></a>
+<h3 class="underlined_5">Creating your first structurer</h3>
+<div class="warning">
+<div class="label">Warning</div>
+<div class="content"> The structurer is based on jx templates to allow simple
+ presentation logic (all code starting with "jx:"). Please refer to the
+ cocoon documentation about jx. For now we are using jx to
+ include the raw data into the presentation model and generating an
+ alias-xsl stylesheet. That is heavy on performance and we will change
+ this ASAP. Mind the warning at the start of the howto. </div>
+</div>
+<p> In this section we will create a new structurer. We will override the
+ default structurer of the themer-plugin for the index page of the <a
href="../../docs_0_80/howto/howto-structurer-install.html">v2</a>. For that we
will create a
+ file called <span class="codefrag">index.fv</span> and save it in our
xdocs directory.
+ This will make <strong>only</strong> the index.html page look
different
+ from the rest of the project. </p>
+<p> Remember: pointing your browser to
+ <span class="codefrag">http://localhost:8888/ls.contracts.html</span>
will show a page
+ with all contracts and themes that you can use in your project
provided
+ by forrest. </p>
+<p> Let us use the blank structurer from the earlier step and add the
+ content-main contract. In ls.contracts.html we find the information
for
+ how to use the contract in our structurer. Our <span
class="codefrag">index.fv</span>
+ should look like: </p>
+<pre class="code"><forrest:views
+ xmlns:forrest="http://apache.org/forrest/templates/1.0"
+ xmlns:jx="http://apache.org/cocoon/templates/jx/1.0">
+ <forrest:view type="html">
+ <forrest:contract name="content-main">
+ <forrest:properties contract="content-main">
+ <forrest:property name="content-main" nugget="get.body">
+ <jx:import
uri="cocoon://#{$cocoon/parameters/getRequest}.body.xml"/>
+ </forrest:property>
+ <!-- Heading types can be clean|underlined|boxed -->
+ <forrest:property name="content-main-conf">
+ <headings type="underlined"/>
+ </forrest:property>
+ </forrest:properties>
+ </forrest:contract>
</forrest:view>
</forrest:views>
</pre>
-<p>
- Lets try our new view by pointing to <span
class="codefrag">http://localhost:8888/index.html</span>.
- We will see only the main content. Now let us add the section
navigation to our view.
- The contract usage in the view can be looked up in ls.contracts.html.
Our view now looks like:
- </p>
-<pre class="code"><forrest:views
xmlns:forrest="http://apache.org/forrest/templates/1.0">
- <forrest:view type="xhtml">
- <forrest:contract name="content-main"/>
- <forrest:contract name="nav-section"/>
+<p>A contract has to request the data model it want to transform. This
+ happends by defining forrest:properties which have the same name like
+ the contract. In our case we want the HTML rendered from intermediate
+ format (**.body.xml). This we are going to include via: <span
class="codefrag"><jx:import
uri="cocoon://#{$cocoon/parameters/getRequest}.body.xml"/>
+ </span>
+</p>
+<p>Contracts can offer some property configuration of the outcome of
+ the transformation. In our case <span
class="codefrag"><forrest:property name="content-main-conf">
+ <headings type="underlined"/>
+ </forrest:property>. </span>
+</p>
+<p> Lets try our new structurer by pointing to
+ <span class="codefrag">http://localhost:8888/index.html</span>. We
will see only the
+ main content. Now let us add the section navigation to our structurer.
+ The contract usage in the structurer can be looked up in
+ ls.contracts.html. Our structurer now looks like: </p>
+<pre class="code"><forrest:views
+ xmlns:forrest="http://apache.org/forrest/templates/1.0"
+ xmlns:jx="http://apache.org/cocoon/templates/jx/1.0">
+ <forrest:view type="html">
+ <forrest:contract name="nav-main">
+ <forrest:properties contract="nav-main">
+ <forrest:property name="nav-main" nugget="get.navigation">
+ <jx:import
+ uri="cocoon://#{$cocoon/parameters/getRequest}.navigation.xml"/>
+ </forrest:property>
+ </forrest:properties>
+ </forrest:contract>
+ <forrest:contract name="content-main">
+ <forrest:properties contract="content-main">
+ <forrest:property name="content-main" nugget="get.body">
+ <jx:import
uri="cocoon://#{$cocoon/parameters/getRequest}.body.xml"/>
+ </forrest:property>
+ <!-- Heading types can be clean|underlined|boxed -->
+ <forrest:property name="content-main-conf">
+ <headings type="underlined"/>
+ </forrest:property>
+ </forrest:properties>
+ </forrest:contract>
</forrest:view>
</forrest:views>
</pre>
-<p>
- We now find the main content and the section navigation after each
other and in the order
- we placed them in the view, but we want it next to each other
- (left: nav-section; right: content-main).
- </p>
-<a name="N100D1"></a><a name="hookView"></a>
-<h3 class="underlined_5">Hooks in views</h3>
-<p>
- We will use now the first time a <span
class="codefrag"><forrest:hook name="layoutId"/></span>.
- Hooks are the styling side of views. We can imitate arbitrary html
skeleton
- with their help. Before we explain how to use your own css in views,
we will use the default css.
- In the default.css we can find
- </p>
+<p> We now find the main content and the section navigation after each
+ other and in the order we placed them in the structurer, but we want
it
+ next to each other (left: nav-section; right: content-main). </p>
+<a name="N100E6"></a><a name="hookstructurer"></a>
+<h3 class="underlined_5">Hooks in the structurer</h3>
+<p> We will use now the first time a <span class="codefrag"><forrest:hook
name="layoutId"/>
+ </span>. Hooks are the styling side of the structurer. We can imitate
+ arbitrary html skeleton with their help. Before we explain how to use
+ your own css in the structurer, we will use the default css. You can
+ see in our example that we have css included. That is a default
+ fallback coming from the implementation. In this common.css we can
find
+ </p>
<pre class="code">/* menu */
#leftbar {
width: 25%;
@@ -527,137 +599,201 @@
border: thin dashed #565248;
}
</pre>
-<p>
- With this information we know to use <span
class="codefrag"><forrest:hook name="leftbar"/></span>
- and add contracts into that container.
- </p>
-<p>
- If we want to put the nav-section contract into the left-hand side
position
- of the site we need to place the contract into that hook. Like:
- </p>
+<p> With this information we know to use <span
class="codefrag"><forrest:hook name="leftbar"/>
+ </span> and add contracts into that container. </p>
+<p> If we want to put the nav-section contract into the left-hand side
+ position of the site we need to place the contract into that hook.
+ Like: </p>
<pre class="code"><forrest:hook name="leftbar">
- <forrest:contract name="nav-section"/>
+ <!-- Include contract here -->
</forrest:hook>
- </pre>
-<p>
- Our view will then look like:
- </p>
-<pre class="code"><forrest:views
xmlns:forrest="http://apache.org/forrest/templates/1.0" >
- <forrest:view type="xhtml">
+ </pre>
+<p> Our structurer will then look like: </p>
+<pre class="code"><forrest:views
+ xmlns:forrest="http://apache.org/forrest/templates/1.0"
+ xmlns:jx="http://apache.org/cocoon/templates/jx/1.0">
+ <forrest:view type="html">
<forrest:hook name="leftbar">
- <forrest:contract name="nav-section"/>
- </forrest:hook>
- <forrest:contract name="content-main"/>
- </forrest:view>
+ <forrest:contract name="nav-section">
+ <forrest:properties contract="nav-section">
+ <forrest:property name="nav-section" nugget="get.navigation">
+ <jx:import
+
uri="cocoon://#{$cocoon/parameters/getRequest}.navigation.xml"/>
+ </forrest:property>
+ </forrest:properties>
+ </forrest:contract>
+ </forrest:hook>
+ <forrest:contract name="content-main">
+ <forrest:properties contract="content-main">
+ <forrest:property name="content-main" nugget="get.body">
+ <jx:import
uri="cocoon://#{$cocoon/parameters/getRequest}.body.xml"/>
+ </forrest:property>
+ <!-- Heading types can be clean|underlined|boxed -->
+ <forrest:property name="content-main-conf">
+ <headings type="underlined"/>
+ </forrest:property>
+ </forrest:properties>
+ </forrest:contract>
+ </forrest:view>
</forrest:views>
</pre>
-<a name="N100F6"></a><a name="cssView"></a>
-<h3 class="underlined_5">CSS in views</h3>
-<p>
- We now know how to place contracts and hooks in our view. Until this
stage we only used the default.css.
- CSS-support of views is as easy as placing contracts/hooks. To
override the default.css
- stylesheet we use another tag within our view <span
class="codefrag"><forrest:css url="default.css"/></span>.
- </p>
-<p>
- We will now create a file in <span
class="codefrag">{project:skins-dir}{path}/{name}.css</span>. In our case
- we will save a file called howTo.css in
newSeed/src/documentation/skins/css/howTo.css containing only
- the following css:
- </p>
-<pre class="code">/* menu */
+<a name="N1010B"></a><a name="cssstructurer"></a>
+<h3 class="underlined_5">CSS in the structurer</h3>
+<p>We now know how to place contracts and hooks in our structurer. Until
+ this stage we only used the common.css. CSS-support of the structurer
+ is as easy as placing contracts/hooks. To override the common.css
+ stylesheet we use another tag within our structurer <span
class="codefrag"><forrest:css />
+ </span>. </p>
+<p>You can add inline and linked css with the structurer. As soon as you
+ use forrest:css you will disable the fallback css support from
+ forrest. With this tag we tell the dispatcher that we want to override
the common.css.
+ After adding the following to our index.fv the design will be
different.</p>
+<pre class="code"><forrest:css >
+/* Extra css */
+/* menu */
#leftbar {
- width: 25%;
- float: left;
- background: #CCCCFF;
- border: thin solid #000000;
+ width: 25%;
+ float: left;
+ background: #CCCCFF;
+ border: thin solid #000000;
}
- </pre>
-<p>
- We just changed the border-style to 'solid', the background to
'#CCCCFF' and the color to '#000000'.
- Now we have to add a new tag to tell that we want to override the
default.css. We are doing this
- by adding the tag <span class="codefrag"><forrest:css
url="howTo.css"/></span> to our view.
- </p>
+</forrest:css> </pre>
+<p> We just changed the border-style to 'solid', the background to
+ '#CCCCFF' and the color to '#000000'. So you see a white page where
the menu is surrounded by a solid
+ border with the defined background.</p>
<div class="note">
<div class="label">Note</div>
<div class="content">
-<span class="codefrag"><forrest:css url="howTo.css"/></span> needs to be
the direct child of
- <span class="codefrag"><forrest:view type="xhtml"></span>
+<span class="codefrag"><forrest:css /></span> needs to be the direct
child of
+ <span class="codefrag"><forrest:view type="html"></span>
</div>
</div>
-<pre class="code"><forrest:views
xmlns:forrest="http://apache.org/forrest/templates/1.0" >
- <forrest:view type="xhtml">
- <forrest:css url="howTo.css"/>
+<pre class="code"><forrest:views
+ xmlns:forrest="http://apache.org/forrest/templates/1.0"
+ xmlns:jx="http://apache.org/cocoon/templates/jx/1.0">
+ <forrest:view type="html">
+ <forrest:css >
+/* Extra css */
+/* menu */
+#leftbar {
+ width: 25%;
+ float: left;
+ background: #CCCCFF;
+ border: thin solid #000000;
+}
+ </forrest:css>
<forrest:hook name="leftbar">
- <forrest:contract name="nav-section"/>
- </forrest:hook>
- <forrest:contract name="content-main"/>
- </forrest:view>
+ <forrest:contract name="nav-section">
+ <forrest:properties contract="nav-section">
+ <forrest:property name="nav-section" nugget="get.navigation">
+ <jx:import
+
uri="cocoon://#{$cocoon/parameters/getRequest}.navigation.xml"/>
+ </forrest:property>
+ </forrest:properties>
+ </forrest:contract>
+ </forrest:hook>
+ <forrest:contract name="content-main">
+ <forrest:properties contract="content-main">
+ <forrest:property name="content-main" nugget="get.body">
+ <jx:import
uri="cocoon://#{$cocoon/parameters/getRequest}.body.xml"/>
+ </forrest:property>
+ <!-- Heading types can be clean|underlined|boxed -->
+ <forrest:property name="content-main-conf">
+ <headings type="underlined"/>
+ </forrest:property>
+ </forrest:properties>
+ </forrest:contract>
+ </forrest:view>
</forrest:views>
</pre>
-<p>
- Now you see a white page where the menu is surrounded by a solid
border with the defined background.
- As a second example, let us change as well the content-main by adding
another hook
- <span class="codefrag"><forrest:hook name="content"/></span> We
need to add the new layout container
- to our howTo.css:
- </p>
+<p>As a second example, let us change
+ as well the content-main by adding another hook <span
class="codefrag"><forrest:hook name="content"/>
+ </span> We need to add the new layout container to our inline css: </p>
<pre class="code">
/* The actual content */
#content {
- margin-left: 25%;
- padding: 0 20px 0 20px;
- background: #B9D3EE;
+ margin-left: 25%;
+ padding: 0 20px 0 20px;
+ background: #B9D3EE;
+}</pre>
+<p> Then we have to add the 'content-main' contract to the 'content'
+ hook. The resulting structurer looks like: </p>
+<pre class="code"><forrest:views
+ xmlns:forrest="http://apache.org/forrest/templates/1.0"
+ xmlns:jx="http://apache.org/cocoon/templates/jx/1.0">
+ <forrest:view type="html">
+ <forrest:css >
+/* Extra css */
+/* menu */
+#leftbar {
+ width: 25%;
+ float: left;
+ background: #CCCCFF;
+ border: thin solid #000000;
}
- </pre>
-<p>
- Then we have to add the 'content-main' contract to the 'content' hook.
- The resulting view looks like:
- </p>
-<pre class="code"><forrest:views
xmlns:forrest="http://apache.org/forrest/templates/1.0" >
- <forrest:view type="xhtml">
- <forrest:css url="howTo.css"/>
+/* The actual content */
+#content {
+ margin-left: 25%;
+ padding: 0 20px 0 20px;
+ background: #B9D3EE;
+}
+ </forrest:css>
<forrest:hook name="leftbar">
- <forrest:contract name="nav-section"/>
+ <forrest:contract name="nav-section">
+ <forrest:properties contract="nav-section">
+ <forrest:property name="nav-section" nugget="get.navigation">
+ <jx:import
+
uri="cocoon://#{$cocoon/parameters/getRequest}.navigation.xml"/>
+ </forrest:property>
+ </forrest:properties>
+ </forrest:contract>
</forrest:hook>
<forrest:hook name="content">
- <forrest:contract name="content-main"/>
- </forrest:hook>
- </forrest:view>
+ <forrest:contract name="content-main">
+ <forrest:properties contract="content-main">
+ <forrest:property name="content-main" nugget="get.body">
+ <jx:import
uri="cocoon://#{$cocoon/parameters/getRequest}.body.xml"/>
+ </forrest:property>
+ <!-- Heading types can be clean|underlined|boxed -->
+ <forrest:property name="content-main-conf">
+ <headings type="underlined"/>
+ </forrest:property>
+ </forrest:properties>
+ </forrest:contract>
+ </forrest:hook>
+ </forrest:view>
</forrest:views>
</pre>
-<p>
- We are now able to place contracts into the layout container and add
custom css to the view.
- </p>
+<p> We are now able to place contracts into the layout container and add
+ custom css to the structurer. </p>
<div class="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 class="content"> Add more information of recent threads around css in the
structurer
+ </div>
</div>
</div>
-<a name="N1013A"></a><a name="Further Reading"></a>
+<a name="N1014D"></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 the view DSL.
- From here we recommend to read the following How-Tos:
- </p>
+<p> Congratulations you are now able to work with the structurer. From here
+ we recommend to read the following How-Tos: </p>
<ul>
<li>
-<a href="../../docs_0_80/howto/howto-view-contracts.html">Create your own
contract implementation</a>
+
+<a href="../../docs_0_80/howto/howto-structurer-contracts.html">Create your
own contract
+ implementation</a>
+
</li>
</ul>
</div>
-<a name="N1014B"></a><a name="Feedback"></a>
+<a name="N1015F"></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>
+<p> Please provide feedback about this document via the <a
href="../../mail-lists.html">mailing lists</a>. </p>
</div>
</div>
<!--+
Modified: forrest/site/docs_0_80/howto/howto-structurer-dsl.pdf
URL:
http://svn.apache.org/viewcvs/forrest/site/docs_0_80/howto/howto-structurer-dsl.pdf?rev=344476&r1=344475&r2=344476&view=diff
==============================================================================
Binary files - no diff available.
Modified: forrest/site/forrest-friday.html
URL:
http://svn.apache.org/viewcvs/forrest/site/forrest-friday.html?rev=344476&r1=344475&r2=344476&view=diff
==============================================================================
--- forrest/site/forrest-friday.html (original)
+++ forrest/site/forrest-friday.html Tue Nov 15 15:26:03 2005
@@ -213,10 +213,10 @@
and lasts for 24 hours.
</p>
<p>
- The next event will take place on <strong>11 November 2005</strong>.
See
- <a
href="http://www.timeanddate.com/worldclock/fixedtime.html?year=2005&month=11&day=11&hour=6&min=0&sec=0">start
time</a>
+ The next event will take place on <strong>9 December 2005</strong>.
See
+ <a
href="http://www.timeanddate.com/worldclock/fixedtime.html?year=2005&month=12&day=09&hour=6&min=0&sec=0">start
time</a>
and
- <a
href="http://www.timeanddate.com/worldclock/meetingtime.html?day=4&month=11&year=2005&p1=136&p2=48&p3=176&p4=240&p5=224&p6=213">zone
overlap</a>.
+ <a
href="http://www.timeanddate.com/worldclock/meetingtime.html?day=9&month=12&year=2005&p1=136&p2=48&p3=176&p4=240&p5=224&p6=213">zone
overlap</a>.
</p>
</div>
Modified: forrest/site/forrest-friday.pdf
URL:
http://svn.apache.org/viewcvs/forrest/site/forrest-friday.pdf?rev=344476&r1=344475&r2=344476&view=diff
==============================================================================
Binary files - no diff available.
Modified: forrest/site/forrest-issues.html
URL:
http://svn.apache.org/viewcvs/forrest/site/forrest-issues.html?rev=344476&r1=344475&r2=344476&view=diff
==============================================================================
--- forrest/site/forrest-issues.html (original)
+++ forrest/site/forrest-issues.html Tue Nov 15 15:26:03 2005
@@ -204,25 +204,25 @@
<a href="#%5BFOR-427%5D+Need+licensing+element+in+plugins.xml">[FOR-427] Need
licensing element in plugins.xml</a>
</li>
<li>
-<a href="#%5BFOR-388%5D+Use+plugins+in-place+if+src+available">[FOR-388] Use
plugins in-place if src available</a>
+<a href="#%5BFOR-701%5D+Missing+locationmap+entry+gives+poor+error">[FOR-701]
Missing locationmap entry gives poor error</a>
</li>
<li>
-<a href="#%5BFOR-711%5D+Cache+results+from+the+Locationmap">[FOR-711] Cache
results from the Locationmap</a>
+<a href="#%5BFOR-654%5D+Create+Schema+for+XHTML2+subset">[FOR-654] Create
Schema for XHTML2 subset</a>
</li>
<li>
-<a
href="#%5BFOR-675%5D+upgrading+to+commons-jxpath-1.2.jar+causes+failures+with+linkrewriter+protocols+site%3A+etc.">[FOR-675]
upgrading to commons-jxpath-1.2.jar causes failures with linkrewriter
protocols site: etc.</a>
+<a href="#%5BFOR-707%5D+Document+i18n+features+of+Forrest">[FOR-707] Document
i18n features of Forrest</a>
</li>
<li>
-<a href="#%5BFOR-701%5D+Missing+locationmap+entry+gives+poor+error">[FOR-701]
Missing locationmap entry gives poor error</a>
+<a href="#%5BFOR-630%5D+Forrest+strategy+and+direction">[FOR-630] Forrest
strategy and direction</a>
</li>
<li>
-<a href="#%5BFOR-654%5D+Create+Schema+for+XHTML2+subset">[FOR-654] Create
Schema for XHTML2 subset</a>
+<a href="#%5BFOR-388%5D+Use+plugins+in-place+if+src+available">[FOR-388] Use
plugins in-place if src available</a>
</li>
<li>
-<a href="#%5BFOR-707%5D+Document+i18n+features+of+Forrest">[FOR-707] Document
i18n features of Forrest</a>
+<a
href="#%5BFOR-675%5D+upgrading+to+commons-jxpath-1.2.jar+causes+failures+with+linkrewriter+protocols+site%3A+etc.">[FOR-675]
upgrading to commons-jxpath-1.2.jar causes failures with linkrewriter
protocols site: etc.</a>
</li>
<li>
-<a href="#%5BFOR-630%5D+Forrest+strategy+and+direction">[FOR-630] Forrest
strategy and direction</a>
+<a href="#%5BFOR-711%5D+Cache+results+from+the+Locationmap">[FOR-711] Cache
results from the Locationmap</a>
</li>
<li>
<a
href="#%5BFOR-490%5D+serve+multiple+sites+on+a+single+Forrest+instance">[FOR-490]
serve multiple sites on a single Forrest instance</a>
@@ -349,47 +349,7 @@
<p>Since plugins can be hosted on different sites they can be released under
licenses other than the Apache one. We need an element in plugins.xml that
records the type of license a plugin is released under. This element should be
used by the plugin install process to verify that the user agrees to the terms
of that license before download and installation is started.<br>
</p>
</div>
-<a name="N10065"></a><a
name="%5BFOR-388%5D+Use+plugins+in-place+if+src+available"></a>
-<h2 class="underlined_10">[FOR-388] Use plugins in-place if src available</h2>
-<div class="section">
-<p>
-<a
href="http://issues.apache.org/jira/browse/FOR-388">http://issues.apache.org/jira/browse/FOR-388</a>
-</p>
-<p>At present Forrest will attempt to download plugins even if they are
available in src form in the local filesystem as part of an SVN checkout.
-<br>
-
-<br>
-Have Forrest mount plugins from designated directories in preference to
downloading them wherever possible (need more than posible location for src
plugins as some people may be developing their own plugins outside of Forrest)
-<br>
-
-<br>
-</p>
-</div>
-<a name="N10073"></a><a
name="%5BFOR-711%5D+Cache+results+from+the+Locationmap"></a>
-<h2 class="underlined_10">[FOR-711] Cache results from the Locationmap</h2>
-<div class="section">
-<p>
-<a
href="http://issues.apache.org/jira/browse/FOR-711">http://issues.apache.org/jira/browse/FOR-711</a>
-</p>
-<p>Now that we are using the locationmap extensively it is showing up just how
innefficient it is. The problem is that for the majority of requests there are
multiple reqeuests to the locationmap. We can make things much faster
(especially on the first page request) by caching results in the locationmap.
-<br>
-
-<br>
-I think a simple cache will sufice, lets just provide a static hashmap using
the hint as a key and, of course, the location as the value.
-<br>
-
-<br>
-If we test all locationmaps and find no result we should record that tere is
no result in this hashmap. This will also be a good place to throw an exception
so that Cocoon can better report such errors (see FOR-701)</p>
-</div>
-<a name="N10081"></a><a
name="%5BFOR-675%5D+upgrading+to+commons-jxpath-1.2.jar+causes+failures+with+linkrewriter+protocols+site%3A+etc."></a>
-<h2 class="underlined_10">[FOR-675] upgrading to commons-jxpath-1.2.jar causes
failures with linkrewriter protocols site: etc.</h2>
-<div class="section">
-<p>
-<a
href="http://issues.apache.org/jira/browse/FOR-675">http://issues.apache.org/jira/browse/FOR-675</a>
-</p>
-<p>upgrading from commons-jxpath-20030909.jar to commons-jxpath-1.2.jar causes
failures with linkrewriter protocols site: etc. This happens in both modes:
'forret run' and 'forrest'.</p>
-</div>
-<a name="N1008F"></a><a
name="%5BFOR-701%5D+Missing+locationmap+entry+gives+poor+error"></a>
+<a name="N10065"></a><a
name="%5BFOR-701%5D+Missing+locationmap+entry+gives+poor+error"></a>
<h2 class="underlined_10">[FOR-701] Missing locationmap entry gives poor
error</h2>
<div class="section">
<p>
@@ -401,7 +361,7 @@
<br>
We need to throw a meaningful error when when a resource cannot be found.</p>
</div>
-<a name="N1009D"></a><a
name="%5BFOR-654%5D+Create+Schema+for+XHTML2+subset"></a>
+<a name="N10073"></a><a
name="%5BFOR-654%5D+Create+Schema+for+XHTML2+subset"></a>
<h2 class="underlined_10">[FOR-654] Create Schema for XHTML2 subset</h2>
<div class="section">
<p>
@@ -411,7 +371,7 @@
<br>
<a
href="http://marc.theaimsgroup.com/?l=forrest-dev&m=112489488330888&w=2">http://marc.theaimsgroup.com/?l=forrest-dev&amp;m=112489488330888&amp;w=2</a></p>
</div>
-<a name="N100AB"></a><a
name="%5BFOR-707%5D+Document+i18n+features+of+Forrest"></a>
+<a name="N10081"></a><a
name="%5BFOR-707%5D+Document+i18n+features+of+Forrest"></a>
<h2 class="underlined_10">[FOR-707] Document i18n features of Forrest</h2>
<div class="section">
<p>
@@ -431,7 +391,7 @@
<br>
We could, at the very least use the locationmap to pull this content into our
site [OT: I wonder if this could be a way to generate more documentation?)</p>
</div>
-<a name="N100B9"></a><a
name="%5BFOR-630%5D+Forrest+strategy+and+direction"></a>
+<a name="N1008F"></a><a
name="%5BFOR-630%5D+Forrest+strategy+and+direction"></a>
<h2 class="underlined_10">[FOR-630] Forrest strategy and direction</h2>
<div class="section">
<p>
@@ -600,6 +560,46 @@
<br>
* [C] Content directory.</p>
+</div>
+<a name="N1009D"></a><a
name="%5BFOR-388%5D+Use+plugins+in-place+if+src+available"></a>
+<h2 class="underlined_10">[FOR-388] Use plugins in-place if src available</h2>
+<div class="section">
+<p>
+<a
href="http://issues.apache.org/jira/browse/FOR-388">http://issues.apache.org/jira/browse/FOR-388</a>
+</p>
+<p>At present Forrest will attempt to download plugins even if they are
available in src form in the local filesystem as part of an SVN checkout.
+<br>
+
+<br>
+Have Forrest mount plugins from designated directories in preference to
downloading them wherever possible (need more than posible location for src
plugins as some people may be developing their own plugins outside of Forrest)
+<br>
+
+<br>
+</p>
+</div>
+<a name="N100AB"></a><a
name="%5BFOR-675%5D+upgrading+to+commons-jxpath-1.2.jar+causes+failures+with+linkrewriter+protocols+site%3A+etc."></a>
+<h2 class="underlined_10">[FOR-675] upgrading to commons-jxpath-1.2.jar causes
failures with linkrewriter protocols site: etc.</h2>
+<div class="section">
+<p>
+<a
href="http://issues.apache.org/jira/browse/FOR-675">http://issues.apache.org/jira/browse/FOR-675</a>
+</p>
+<p>upgrading from commons-jxpath-20030909.jar to commons-jxpath-1.2.jar causes
failures with linkrewriter protocols site: etc. This happens in both modes:
'forret run' and 'forrest'.</p>
+</div>
+<a name="N100B9"></a><a
name="%5BFOR-711%5D+Cache+results+from+the+Locationmap"></a>
+<h2 class="underlined_10">[FOR-711] Cache results from the Locationmap</h2>
+<div class="section">
+<p>
+<a
href="http://issues.apache.org/jira/browse/FOR-711">http://issues.apache.org/jira/browse/FOR-711</a>
+</p>
+<p>Now that we are using the locationmap extensively it is showing up just how
innefficient it is. The problem is that for the majority of requests there are
multiple reqeuests to the locationmap. We can make things much faster
(especially on the first page request) by caching results in the locationmap.
+<br>
+
+<br>
+I think a simple cache will sufice, lets just provide a static hashmap using
the hint as a key and, of course, the location as the value.
+<br>
+
+<br>
+If we test all locationmaps and find no result we should record that tere is
no result in this hashmap. This will also be a good place to throw an exception
so that Cocoon can better report such errors (see FOR-701)</p>
</div>
<a name="N100C7"></a><a
name="%5BFOR-490%5D+serve+multiple+sites+on+a+single+Forrest+instance"></a>
<h2 class="underlined_10">[FOR-490] serve multiple sites on a single Forrest
instance</h2>
Modified: forrest/site/forrest-issues.pdf
URL:
http://svn.apache.org/viewcvs/forrest/site/forrest-issues.pdf?rev=344476&r1=344475&r2=344476&view=diff
==============================================================================
Binary files - no diff available.
Modified: forrest/site/linkmap.html
URL:
http://svn.apache.org/viewcvs/forrest/site/linkmap.html?rev=344476&r1=344475&r2=344476&view=diff
==============================================================================
--- forrest/site/linkmap.html (original)
+++ forrest/site/linkmap.html Tue Nov 15 15:26:03 2005
@@ -252,7 +252,286 @@
</div>
<a name="N10007"></a><a name="Table+of+Contents"></a>
<h2 class="underlined_10">Table of Contents</h2>
-<div class="section"></div>
+<div class="section">
+<ul>
+<li>
+<a
href="">Forrest</a> _________________________ <em>site</em>
+</li>
+<ul>
+
+
+
+
+<ul>
+<li>
+<a
href="">About</a> _________________________ <em>about</em>
+</li>
+<ul>
+
+<ul>
+<li>
+<a
href="index.html">Index</a> _________________________ <em>index</em>
+</li>
+</ul>
+
+<ul>
+<li>
+<a
href="license.html">License</a> _________________________ <em>license</em>
+</li>
+</ul>
+
+<ul>
+<li>
+<a
href="http://forrest.apache.org/mirrors.cgi">Download</a> _________________________ <em>download</em>
+</li>
+</ul>
+
+
+<ul>
+<li>
+<a href="who.html">Who we
are</a> _________________________ <em>who</em>
+</li>
+</ul>
+
+<ul>
+<li>
+<a
href="events.html">Events</a> _________________________ <em>events</em>
+</li>
+</ul>
+
+<ul>
+<li>
+<a
href="flyer.html">Flyer</a> _________________________ <em>flyer</em>
+</li>
+</ul>
+
+<ul>
+<li>
+<a href="live-sites.html">Example
sites</a> _________________________ <em>live-sites</em>
+</li>
+</ul>
+
+</ul>
+</ul>
+
+
+<ul>
+<li>
+<a href="">Getting
Involved</a> _________________________ <em>getting-involved</em>
+</li>
+<ul>
+
+<ul>
+<li>
+<a
href="contrib.html">Contributing</a> _________________________ <em>contrib</em>
+</li>
+<ul>
+
+
+</ul>
+</ul>
+
+<ul>
+<li>
+<a href="http://svn.apache.org/viewcvs.cgi/forrest/trunk/">Browse
SVN</a> _________________________ <em>SVN</em>
+</li>
+</ul>
+
+<ul>
+<li>
+<a href="mail-lists.html">Mail
lists</a> _________________________ <em>mail-lists</em>
+</li>
+<ul>
+
+
+
+
+</ul>
+</ul>
+
+<ul>
+<li>
+<a href="issues.html">Bugs and
Issues</a> _________________________ <em>bugs</em>
+</li>
+</ul>
+
+<ul>
+<li>
+<a href="forrest-issues.html">Open
Issues</a> _________________________ <em>forrest-issues</em>
+</li>
+</ul>
+
+<ul>
+<li>
+<a href="gump.html">Gump
Integration</a> _________________________ <em>gump-forrest</em>
+</li>
+</ul>
+
+<ul>
+<li>
+<a href="guidelines.html">Project
guidelines</a> _________________________ <em>guidelines</em>
+</li>
+</ul>
+
+<ul>
+<li>
+<a href="committed.html">Being
committed</a> _________________________ <em>committed</em>
+</li>
+</ul>
+
+<ul>
+<li>
+<a
href="forrest-friday.html">ForrestFriday</a> _________________________ <em>forrest-friday</em>
+</li>
+</ul>
+
+<ul>
+<li>
+<a href="zone.html">Zone
notes</a> _________________________ <em>zone</em>
+</li>
+</ul>
+
+<ul>
+<li>
+<a href="plan/">Planning
notes</a> _________________________ <em>plan</em>
+</li>
+<ul>
+
+<ul>
+<li>
+<a
href="plan/index.html">Overview</a> _________________________ <em>overview</em>
+</li>
+</ul>
+
+<ul>
+<li>
+<a href="plan/internal-xhtml.html">Internal
XHTML</a> _________________________ <em>internal-xhtml</em>
+</li>
+</ul>
+
+</ul>
+</ul>
+
+</ul>
+</ul>
+
+
+<ul>
+<li>
+<a
href="">Proposals</a> _________________________ <em>proposals</em>
+</li>
+<ul>
+
+<ul>
+<li>
+<a href="proposal-asf-forrestbot.html">ASF
Forrestbot</a> _________________________ <em>asf-forrestbot</em>
+</li>
+</ul>
+
+</ul>
+</ul>
+
+
+<ul>
+<li>
+<a href="">Related
projects</a> _________________________ <em>references</em>
+</li>
+<ul>
+
+<ul>
+<li>
+<a href="http://gump.apache.org/">Apache
Gump</a> _________________________ <em>gump</em>
+</li>
+</ul>
+
+<ul>
+<li>
+<a href="http://cocoon.apache.org/">Apache
Cocoon</a> _________________________ <em>cocoon</em>
+</li>
+</ul>
+
+<ul>
+<li>
+<a href="http://lenya.apache.org/">Apache
Lenya</a> _________________________ <em>lenya</em>
+</li>
+</ul>
+
+<ul>
+<li>
+<a href="http://xml.apache.org/">Apache
XML</a> _________________________ <em>xml</em>
+</li>
+</ul>
+
+</ul>
+</ul>
+
+
+
+
+
+
+
+
+
+
+<ul>
+<li>
+<a
href="tools/">Tools</a> _________________________ <em>tools</em>
+</li>
+<ul>
+
+<ul>
+<li>
+<a
href="tools/index.html">Index</a> _________________________ <em>index</em>
+</li>
+</ul>
+
+<ul>
+<li>
+<a
href="tools/forrestbar.html">ForrestBar</a> _________________________ <em>forrestbar</em>
+</li>
+</ul>
+
+<ul>
+<li>
+<a
href="tools/forrestbot.html">Forrestbot</a> _________________________ <em>forrestbot</em>
+</li>
+</ul>
+
+<ul>
+<li>
+<a href="tools/forrestbot-web-interface.html">Forrestbot
Webapp</a> _________________________ <em>forrestbot-web-interface</em>
+</li>
+</ul>
+
+<ul>
+<li>
+<a href="tools/eclipse.html">Eclipse
Plugin</a> _________________________ <em>eclipse</em>
+</li>
+</ul>
+
+<ul>
+<li>
+<a
href="tools/xxe.html">XXE-Editor</a> _________________________ <em>xxe</em>
+</li>
+</ul>
+
+</ul>
+</ul>
+
+
+
+
+
+
+
+
+
+
+
+</ul>
+</ul>
+</div>
</div>
<!--+
|end content
Modified: forrest/site/linkmap.pdf
URL:
http://svn.apache.org/viewcvs/forrest/site/linkmap.pdf?rev=344476&r1=344475&r2=344476&view=diff
==============================================================================
Binary files - no diff available.