this is a part of the doctypes.xmap which is building the requested file
via the URL
i don't know if this is what u asked for

<code snippet from doctypes.xmap @
lenya_home/build/lenya/webapp/lenya/pubs/<pubId>
<!-- parametrized doctype matcher -->
      <!-- pattern="{rendertype}/{area}/{doctype}/{document-path}" -->
      <map:match pattern="*/*/*/**.xml">
        <map:generate src="content/{2}/{4}.xml"/>
        <map:transform src="xslt/{3}2xhtml.xsl">
          <map:parameter name="rendertype" value="{1}"/>
          <map:parameter name="nodeid"
value="{page-envelope:document-node-id}"/>
          <map:parameter name="language"
value="{page-envelope:document-language}"/>
        </map:transform>
        <map:serialize type="xml"/>
      </map:match>


OK, so this is addressing the content issue. The question is what do we get when making a request for a document via this pipeline. If I understand the lenya URLspace correctly {1} will either be "authoring" or "live". In this first iteration we are not interested in "authoring", only in the publishing.

let me just add this

it is not correct (or as far as i can see) that we are not interested in "authoring" but only in "live"
let me clear the purpose of this areas.
the only differece in these areas is, that you as a editor or someone who can edit content will need the authoring area. in the end the output i mean styling of a page looks the same in authoring and live they use the same stylesheet. Cause lenya comes with a wysiwyg editor lettin the editor view the same page the only difference is that you have in this area the possibility to edit content (you have an extra menubar for editing / publishing) but the outcome is (almost ) the same so i guess forrest should handle this part as well
maybe not as you said on the first level of integration
but forrest needs to take care of this part too

{2} and {4} seem to identify the location of the content file.

{3} identifies the source doctype. This looks to me like on of the later points of integration for Forrest. That is our input plugins may replace the multiple stylesheets used here. However, we should not worry about this in the first instance of the integration.

So, it looks like this will give us an XHTML document directly from Lenya, I'm going to proceed as if my interpretation is correct:

yes it outputs xhtml with almost all xHTML elements like (dont blame me if i am wrong)
but this is the first of the two transformations
this first transformation simply puts all the content elements like navigation etc needed for this page in a "simple" xhtml document this document will be transformed and styled via the second stylesheet into the final output (the page as you see it in the browser) and this document looks (almost) the same
in both areas (live and stage)
(this is one of the lenya main features) to edit(change the content) the page as it is what lenya can not do that easy (as i have seen from Thorsten as he showed me how NICE forrest works, he simply changed (commented some lines out in his config file and changed the whole design of the page)) AND THIS IS WHAT WE WANT FORREST TO DO
the styling as it is that quick and simple
and most of all you don't have to deploy once again and restart your jetty as we had to do in lenya
once lenya is started you cannot influence the style


Lets look at how we build a plugin for this. The place to start looking is the Daisy plugin. What happens here is we have Daisy running in one VM and Forrest in another VM. Obviously they are both on a different port. Later we will (optionally) integrate Forrest and Daisy/Lenya in the same VM, but lets stay simple for now.
In the daisy plugin we map a request to Forrest in the form

daisy/**.xml

to something like

http://DAISY_HOST:DAISY_PORT/.....

This request returns a daisy XML document which we then convert to an XDoc and pass to Forrest.

The Lenya plugin will do the same by invoking the match you identify above. So a request for:

Lenya/live/*/*/**.xml

will map to something like

http://LENYA_HOST:LEYA_PORT/live/{1}/{2}/{3}.xml

Since this returns an XHTML document we then use our html2document.xsl to give us an XDoc and pass this to Forrest.

Well, that's the theory anyway, now someone needs to try a simple experiment. I'll get onto this fairly soon, unless, of course, someone beats me to it.

Ross

yeah that would be cool but I am not that familiar workin with more VMs
maybe you can give me a hint/starting help on how that would work
so i can do the experimenting

:-David

Reply via email to