| <?xml version="1.0"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0"> |
| <map:components> |
| <map:generators default="file"> |
| <map:generator name="file" src="org.apache.cocoon.generation.FileGenerator" /> |
| <!-- |
| <map:generator name="html" src="org.apache.cocoon.generation.HTMLGenerator"> |
| <jtidy-config>jtidy.properties</jtidy-config> |
| </map:generator> |
| <map:generator name="directory" src="org.apache.cocoon.generation.DirectoryGenerator" /> |
| --> |
| </map:generators> |
| |
| <map:transformers default="xslt"> |
| <!-- Generates @id attributes from <title> strings --> |
| <map:transformer name="idgen" src="org.apache.cocoon.transformation.IdGeneratorTransformer"> |
| <element>//*[local-name() = 'section']</element> |
| <id>title/text()</id> |
| </map:transformer> |
| |
| <!-- Rewrites links, e.g. transforming href="site:index" to href="../index.html" --> |
| <!-- See http://xml.apache.org/forrest/sitemap-ref.html#linkrewriting_impl --> |
| <map:transformer name="linkrewriter" logger="sitemap.transformer.linkrewriter" src="org.apache.cocoon.transformation.LinkRewriterTransformer"> |
| <link-attrs>href src</link-attrs> |
| <schemes>site ext</schemes> |
| |
| <input-module name="site"> |
| <input-module name="linkmap"> |
| <file src="{src}" reloadable="true" /> |
| </input-module> |
| <prefix>/site//</prefix> |
| <suffix>/@href</suffix> |
| </input-module> |
| <input-module name="ext"> |
| <input-module name="linkmap"> |
| <file src="{src}" reloadable="true" /> |
| </input-module> |
| <prefix>/site/external-refs//</prefix> |
| <suffix>/@href</suffix> |
| </input-module> |
| </map:transformer> |
| |
| <map:transformer name="xpath" logger="sitemap.transformer.xpath" src="org.apache.cocoon.transformation.XPathTransformer" /> |
| <map:transformer name="xslt" src="org.apache.cocoon.transformation.TraxTransformer" logger="sitemap.transformer.xslt" pool-max="32"> |
| <use-request-parameters>false</use-request-parameters> |
| <use-browser-capabilities-db>false</use-browser-capabilities-db> |
| <use-deli>false</use-deli> |
| <transformer-factory>org.apache.xalan.processor.TransformerFactoryImpl</transformer-factory> |
| <!--<transformer-factory>com.icl.saxon.TransformerFactoryImpl</transformer-factory>--> |
| <!--<transformer-factory>org.apache.xalan.xsltc.trax.TransformerFactoryImpl</transformer-factory>--> |
| </map:transformer> |
| |
| <map:transformer name="xinclude" src="org.apache.cocoon.transformation.XIncludeTransformer" logger="sitemap.transformer.xinclude" pool-max="16"/> |
| </map:transformers> |
| |
| <map:readers default="resource"> |
| <map:reader name="resource" src="org.apache.cocoon.reading.ResourceReader"/> |
| </map:readers> |
| |
| <map:serializers default="html"> |
| <map:serializer name="html" mime-type="text/html" src="org.apache.cocoon.serialization.HTMLSerializer"> |
| <doctype-public>-//W3C//DTD HTML 4.01 Transitional//EN</doctype-public> |
| <doctype-system>http://www.w3.org/TR/html4/loose.dtd</doctype-system> |
| </map:serializer> |
| |
| <map:serializer name="xml" mime-type="text/xml" src="org.apache.cocoon.serialization.XMLSerializer"/> |
| |
| <map:serializer name="xml-document" mime-type="text/xml" src="org.apache.cocoon.serialization.XMLSerializer"> |
| <cdata-section-elements>source</cdata-section-elements> |
| <doctype-public>-//APACHE//DTD Documentation V1.2//EN</doctype-public> |
| <doctype-system>document-v12.dtd</doctype-system> |
| </map:serializer> |
| |
| <map:serializer name="fo2pdf" src="org.apache.cocoon.serialization.FOPSerializer" mime-type="application/pdf" /> |
| |
| <map:serializer name="links" src="org.apache.cocoon.serialization.LinkSerializer"> |
| <encoding>ISO-8859-1</encoding> |
| </map:serializer> |
| <!-- |
| <map:serializer mime-type="application/x-shockwave-flash" name="swf" src="org.apache.cocoon.serialization.SWFSerializer"/> |
| <map:serializer mime-type="application/msword" name="fo2rtf" src="org.apache.cocoon.serialization.RTFSerializer"/> |
| --> |
| </map:serializers> |
| |
| <map:matchers default="wildcard"> |
| <map:matcher name="wildcard" src="org.apache.cocoon.matching.WildcardURIMatcher"/> |
| <map:matcher name="regexp" src="org.apache.cocoon.matching.RegexpURIMatcher"/> |
| </map:matchers> |
| |
| <map:selectors> |
| <map:selector logger="sitemap.selector.exists" name="exists" src="org.apache.cocoon.selection.ResourceExistsSelector" /> |
| </map:selectors> |
| |
| <map:pipes default="caching"> |
| <map:pipe name="caching" src="org.apache.cocoon.components.pipeline.impl.CachingProcessingPipeline"/> |
| <!-- |
| <map:pipe name="noncaching" src="org.apache.cocoon.components.pipeline.impl.NonCachingProcessingPipeline"/> |
| <map:pipe name="profile-caching" src="org.apache.cocoon.components.profiler.ProfilingCachingProcessingPipeline"/> |
| <map:pipe name="profile-noncaching" src="org.apache.cocoon.components.profiler.ProfilingNonCachingProcessingPipeline"/> |
| --> |
| </map:pipes> |
| </map:components> |
| |
| <map:views> |
| |
| <!-- Define a 'links view', which the command-line crawler uses to discover a page's links --> |
| <map:view name="links" from-position="last"> |
| <map:transform src="resources/stylesheets/filterlinks.xsl"> |
| <map:parameter name="ctxbasedir" value="{realpath:.}/"/> |
| </map:transform> |
| <map:serialize type="links"/> |
| </map:view> |
| </map:views> |
| |
| <map:resources> |
| <map:resource name="skinit"> |
| <map:transform src="skins/{forrest:skin}/xslt/html/{type}.xsl"> |
| <map:parameter name="notoc" value="{notoc}"/> |
| <!-- For backwards-compat with 0.2 - 0.4 skins --> |
| <map:parameter name="isfaq" value="{notoc}"/> |
| <map:parameter name="nopdf" value="{nopdf}"/> |
| <map:parameter name="path" value="{path}"/> |
| <map:parameter name="obfuscate-mail-links" value="false"/> |
| <!-- Can set an alternative project skinconfig here |
| <map:parameter name="config-file" value="../../../../skinconf.xml"/> |
| --> |
| </map:transform> |
| |
| <map:serialize/> |
| </map:resource> |
| |
| </map:resources> |
| |
| <!-- =========================== Pipelines ================================= --> |
| <map:pipelines> |
| |
| <map:pipeline internal-only="false"> |
| |
| <!-- ============================================================ --> |
| <!-- SOURCE FORMATS --> |
| <!-- Raw XML sources, typically doc-v12 format --> |
| <!-- ============================================================ --> |
| <!-- http://xml.apache.org/forrest/sitemap-ref.html#source_pipelines --> |
| |
| <!-- COCOON SPECIFIC --> |
| <map:match pattern="apidocs/**"> |
| <map:read src="../../javadocs/{1}"/> |
| </map:match> |
| <map:match pattern="changes.xml"> |
| <map:mount uri-prefix="" src="status.xmap" check-reload="yes" /> |
| </map:match> |
| <!-- /COCOON SPECIFIC --> |
| |
| <!-- Body content --> |
| <map:match pattern="**.xml"> |
| <map:match pattern="changes.xml"> |
| <map:mount uri-prefix="" src="status.xmap" check-reload="yes" /> |
| </map:match> |
| |
| <map:match pattern="todo.xml"> |
| <map:mount uri-prefix="" src="status.xmap" check-reload="yes" /> |
| </map:match> |
| |
| <map:match pattern="**dtdx.xml"> |
| <map:mount uri-prefix="" src="dtd.xmap" check-reload="yes" /> |
| </map:match> |
| |
| <map:match pattern="forrest-issues.xml"> |
| <map:mount uri-prefix="" src="issues.xmap" check-reload="yes" /> |
| </map:match> |
| |
| <!-- COCOON SPECIFIC --> |
| <map:match pattern="faq/**.xml"> |
| <map:mount uri-prefix="" src="faq.xmap" check-reload="yes" /> |
| </map:match> |
| <!-- /COCOON SPECIFIC --> |
| |
| <map:match pattern="**faq.xml"> |
| <map:mount uri-prefix="" src="faq.xmap" check-reload="yes" /> |
| </map:match> |
| |
| <map:match pattern="community/**index.xml"> |
| <map:mount uri-prefix="" src="forrest.xmap" check-reload="yes" /> |
| </map:match> |
| |
| <map:match pattern="community/*/**.xml"> |
| <map:mount uri-prefix="" src="revisions.xmap" check-reload="yes" /> |
| </map:match> |
| |
| <map:match pattern="site.xml"> |
| <map:mount uri-prefix="" src="aggregate.xmap" check-reload="yes" /> |
| </map:match> |
| |
| <!-- Default source types --> |
| <map:mount uri-prefix="" src="forrest.xmap" check-reload="yes" /> |
| |
| </map:match> |
| |
| <!-- Menu content --> |
| <map:match pattern="abs-menulinks"> |
| <map:mount uri-prefix="" src="menu.xmap" check-reload="yes" /> |
| </map:match> |
| |
| <map:match pattern="**menulinks-*"> |
| <map:mount uri-prefix="" src="menu.xmap" check-reload="yes" /> |
| </map:match> |
| |
| <!-- Link maps --> |
| <map:match pattern="abs-linkmap"> |
| <map:mount uri-prefix="" src="linkmap.xmap"/> |
| </map:match> |
| |
| <map:match pattern="**linkmap-*"> |
| <map:match pattern="linkmap-site.*"> |
| <map:mount uri-prefix="" src="aggregate.xmap" check-reload="yes" /> |
| </map:match> |
| |
| <map:mount uri-prefix="" src="linkmap.xmap" check-reload="yes" /> |
| </map:match> |
| |
| </map:pipeline> |
| |
| |
| <!-- ============================================================ --> |
| <!-- INTERMEDIATE FORMATS --> |
| <!-- Tabs, menus and body HTML. --> |
| <!-- Called from output format pipelines --> |
| <!-- ============================================================ --> |
| <!-- http://xml.apache.org/forrest/sitemap-ref.html#intermediate_pipelines --> |
| |
| <map:pipeline internal-only="false"> |
| |
| <!-- COCOON SPECIFIC --> |
| <map:match pattern="faq/**body-*.html"> |
| <map:mount uri-prefix="" src="faq.xmap" check-reload="yes" /> |
| </map:match> |
| <!-- /COCOON SPECIFIC --> |
| |
| |
| <!-- External matches --> |
| <!-- (HTML rendered directly from special formats) --> |
| <map:match pattern="**body-faq.html"> |
| <map:mount uri-prefix="" src="faq.xmap" check-reload="yes" /> |
| </map:match> |
| |
| <map:match pattern="**body-*.html"> |
| <map:select type="exists"> |
| <map:when test="content/xdocs/{1}{2}.ehtml"> |
| <map:generate src="content/xdocs/{1}{2}.ehtml" /> |
| <map:transform src="resources/stylesheets/html2htmlbody.xsl" /> |
| <map:transform type="linkrewriter" src="cocoon:/{1}linkmap-{2}.html"/> |
| <map:serialize type="xml" /> |
| </map:when> |
| </map:select> |
| </map:match> |
| |
| <!-- Default matches --> |
| <!-- (HTML rendered from doc-v11 intermediate format --> |
| <map:match pattern="**body-*.html"> |
| <map:generate src="cocoon:/{1}{2}.xml"/> |
| <map:transform type="idgen"/> |
| <map:transform type="xinclude"/> |
| <map:transform type="linkrewriter" src="cocoon:/{1}linkmap-{2}.html"/> |
| <map:call resource="skinit"> |
| <map:parameter name="type" value="document2html"/> |
| <map:parameter name="path" value="{1}{2}.html"/> |
| <map:parameter name="notoc" value="false"/> |
| </map:call> |
| </map:match> |
| |
| <map:match pattern="**menu-*.html"> |
| <map:generate src="cocoon:/{1}book-{2}.html"/> |
| <map:transform type="linkrewriter" src="cocoon:/{1}linkmap-{2}.html"/> |
| <map:call resource="skinit"> |
| <map:parameter name="type" value="book2menu"/> |
| <map:parameter name="path" value="{1}{2}.html"/> |
| </map:call> |
| </map:match> |
| |
| <map:match pattern="**tab-*.html"> |
| <map:generate src="content/xdocs/tabs.xml" /> |
| <map:transform type="linkrewriter" src="cocoon:/{1}linkmap-{2}.html"/> |
| <map:call resource="skinit"> |
| <map:parameter name="type" value="tab2menu"/> |
| <map:parameter name="path" value="{1}{2}.html"/> |
| </map:call> |
| </map:match> |
| |
| <map:match pattern="**book-*.html"> |
| <map:mount uri-prefix="" src="menu.xmap" check-reload="yes" /> |
| </map:match> |
| |
| </map:pipeline> |
| |
| |
| <map:pipeline internal-only="false"> |
| |
| <!-- ============================================================ --> |
| <!-- OUTPUT FORMATS --> |
| <!-- Serves content directly to the user --> |
| <!-- +==========================================================+ --> |
| <!-- http://xml.apache.org/forrest/sitemap-ref.html#output_pipelines --> |
| |
| <!-- COCOON SPECIFIC --> |
| <map:match pattern="**.txt"> |
| <!-- Handle .txt files (incorrectly) placed in xdocs. Forrest will |
| eventually evolve to handle mixed-content scenarios (JT) --> |
| <map:read src="content/xdocs/{0}" mime-type="text/plain"/> |
| </map:match> |
| <!-- /COCOON SPECIFIC --> |
| |
| <map:match type="regexp" pattern="^.+$"> |
| <map:select type="exists"> |
| <map:when test="content/{0}"> |
| <map:mount uri-prefix="" src="raw.xmap" check-reload="yes" /> |
| </map:when> |
| </map:select> |
| </map:match> |
| |
| <map:match pattern="*.html"> |
| <map:aggregate element="site"> |
| <map:part src="cocoon:/tab-{0}"/> |
| <map:part src="cocoon:/menu-{0}"/> |
| <map:part src="cocoon:/body-{0}"/> |
| </map:aggregate> |
| <map:call resource="skinit"> |
| <map:parameter name="type" value="site2xhtml"/> |
| <map:parameter name="path" value="{0}"/> |
| </map:call> |
| </map:match> |
| |
| <map:match pattern="**/*.html"> |
| <map:aggregate element="site"> |
| <map:part src="cocoon:/{1}/tab-{2}.html"/> |
| <map:part src="cocoon:/{1}/menu-{2}.html"/> |
| <map:part src="cocoon:/{1}/body-{2}.html"/> |
| </map:aggregate> |
| <map:call resource="skinit"> |
| <map:parameter name="type" value="site2xhtml"/> |
| <map:parameter name="path" value="{0}"/> |
| </map:call> |
| </map:match> |
| |
| <map:match pattern="**faq.pdf"> |
| <map:mount uri-prefix="" src="faq.xmap" check-reload="yes" /> |
| </map:match> |
| |
| <map:match type="regexp" pattern="^(.*?)([^/]*).pdf$"> |
| <map:generate src="cocoon:/{1}{2}.xml"/> |
| <!-- <map:transform type="idgen"/> --> |
| <map:transform type="xinclude"/> |
| <map:transform type="linkrewriter" src="cocoon://{1}linkmap-{2}.pdf"/> |
| <map:transform src="skins/{forrest:skin}/xslt/fo/document2fo.xsl"> |
| <map:parameter name="ctxbasedir" value="{realpath:.}/"/> |
| <map:parameter name="xmlbasedir" value="content/xdocs/{1}"/> |
| </map:transform> |
| <map:serialize type="fo2pdf"/> |
| </map:match> |
| |
| <!-- FIXME This is a hack that makes building the docs work again --> |
| <map:match pattern="**changes.rss"> |
| <map:mount uri-prefix="{1}" src="status.xmap" check-reload="yes" /> |
| </map:match> |
| |
| <map:match pattern="profiler"> |
| <map:mount uri-prefix="" src="profiler.xmap" check-reload="yes" /> |
| </map:match> |
| <map:match pattern="**.js"> |
| <map:mount uri-prefix="" src="resources.xmap" check-reload="yes" /> |
| </map:match> |
| <map:match pattern="**.css"> |
| <map:mount uri-prefix="" src="resources.xmap" check-reload="yes" /> |
| </map:match> |
| <map:match pattern="**images**"> |
| <map:mount uri-prefix="" src="resources.xmap" check-reload="yes" /> |
| </map:match> |
| <map:match pattern="**favicon.ico"> |
| <map:mount uri-prefix="" src="resources.xmap" check-reload="yes" /> |
| </map:match> |
| </map:pipeline> |
| |
| |
| |
| <!-- ============================================================ --> |
| <!-- REDIRECTS --> |
| <!-- ============================================================ --> |
| <map:pipeline internal-only="false"> |
| |
| <map:match pattern=""> |
| <map:redirect-to uri="index.html" /> |
| </map:match> |
| <map:match type="regexp" pattern="^.+/$"> |
| <map:redirect-to uri="index.html"/> |
| </map:match> |
| </map:pipeline> |
| |
| |
| </map:pipelines> |
| </map:sitemap> |