forrest-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thorsten Scherler <thors...@apache.org>
Subject Re: TOC in output plugin
Date Sat, 09 Jul 2005 13:44:25 GMT
On Sat, 2005-07-09 at 14:57 +0200, HANAX wrote:
> I was told that durin processing there is a TOC build. How I can acces it in my XSL file?

this ToC is created for e.g. in document2html.xls from the skin you are
using.

In views the content-minitoc.ft is using it after the processing of
document2html.xls:
http://svn.apache.org/viewcvs.cgi/*checkout*/forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.output.viewHelper.xhtml/resources/templates/content-minitoc.ft
<xsl:template name="content-minitoc-body"
match="div[@id='content']/div[@id='skinconf-toc-page']">
	<xsl:comment>+
	    |start content-minitoc
	    +</xsl:comment>
		
		    <xsl:if test="$config/toc">
		      <xsl:if test="contains($minitoc-location,'page')">
		        <xsl:if test="count(//tocitems/tocitem) >= $config/toc/@min-sections">
					<div id="content-minitoc-area">
		    			<xsl:call-template name="minitoc">
		        		    <xsl:with-param name="tocroot" select="//tocitems"/>
			          	</xsl:call-template>
					</div>
			    </xsl:if>
		      </xsl:if>
		    </xsl:if>
 
<xsl:comment>+
    |end minitoc
    +</xsl:comment>
		  </xsl:template>

I intercept the last processing pipeline (site2xhmtl.xsl) with views and
like state before using document2html.xsl from the skin.
http://svn.apache.org/viewcvs.cgi/*checkout*/forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.view/internal.xmap
 <map:match pattern="*.page">
	<map:aggregate element="site">
          <map:part src="cocoon://skinconf.xml"/>
          <map:part src="cocoon://build-info"/>
          <map:part src="cocoon://tab-{1}.html"/>
          <map:part src="cocoon://menu-{1}.html"/>
          <map:part src="cocoon://body-{1}.html"/>
          <map:part src="cocoon:/prepare.view-nugget.{1}"/>
        </map:aggregate>
        <map:serialize type="xml"/>
    </map:match>

>  Or another way: how can I access list of sections and transform it into list of elements
in head of XHTML while processing my xsl file?

Can you tell a little bit more what you are planing to do? It sounds to
me that you could use views for what you are planing to do.

Let me explain why. I remember you doing the sound output via forrest,
right? 

I reckon you would not only output the document content but as well
navigation, or?

If so you would create a plugin of the same nature of
org.apache.forrest.plugin.output.viewHelper.xhtml or general speaking a
view plugin.

A view plugin allows to output content to different presentation medias.
I am very keen to assist if you need more infos on how to do it.


> I've started with text plugin as example but it's little bit complicated for me, can
anybody recommend me simpler example?
> And last, if I want to use XHTML serializer, it gives me an error "Type 'xhtml' does
not exist for 'map:serialize'". Why?

http://svn.apache.org/viewcvs.cgi/*checkout*/forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.view/internal.xmap
<map:serializer logger="sitemap.serializer.xhtml" mime-type="text/html"
name="xhtml" pool-grow="2" pool-max="64" pool-min="2"
src="org.apache.cocoon.serialization.XMLSerializer">
	      <!--+
	          | You can choose from Strict, Transitional, or Frameset XHTML.
	          | For Strict XHTML set doctype to:
	          |   <doctype-public>-//W3C//DTD XHTML 1.0 Strict//EN</doctype-public>
	          |   <doctype-system>http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</doctype-system>
	          | For Transitional XHTML set doctype to:
	          |   <doctype-public>-//W3C//DTD XHTML 1.0 Transitional//EN</doctype-public>
	          |   <doctype-system>http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</doctype-system>
	          | For Frameset XHTML set doctype to:
	          |   <doctype-public>-//W3C//DTD XHTML 1.0 Frameset//EN</doctype-public>
	          |   <doctype-system>http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd</doctype-system>
	          |
	          | Default XHTML doctype in Cocoon is XHTML Strict. If you want to use more than
one
	          | XHTML DTD simultaneously, you can define several XHTML serializers.
	          +-->
	      <doctype-public>-//W3C//DTD XHTML 1.0 Strict//EN</doctype-public>
	      <doctype-system>http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</doctype-system>
	      <encoding>UTF-8</encoding>
	    </map:serializer>

HTH

salu2
-- 
thorsten

"Together we stand, divided we fall!" 
Hey you (Pink Floyd)


Mime
View raw message