You are viewing a plain text version of this content. The canonical link for it is here.
Posted to svn@forrest.apache.org by fe...@apache.org on 2005/11/11 17:31:10 UTC
svn commit: r332592 [4/6] - in
/forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.smartSlides:
./ build/ build/classes/ build/site/ build/site/images/ build/site/skin/
build/site/skin/css/ build/site/skin/images/ build/site/skin/scripts/...
Added: forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.smartSlides/forrest.properties
URL: http://svn.apache.org/viewcvs/forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.smartSlides/forrest.properties?rev=332592&view=auto
==============================================================================
--- forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.smartSlides/forrest.properties (added)
+++ forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.smartSlides/forrest.properties Fri Nov 11 08:26:33 2005
@@ -0,0 +1,109 @@
+# Copyright 2002-2005 The Apache Software Foundation or its licensors,
+# as applicable.
+#
+# Licensed 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.
+
+##############
+# Properties used by forrest.build.xml for building the website
+# These are the defaults, un-comment them if you need to change them.
+##############
+
+# Prints out a summary of Forrest settings for this project
+#forrest.echo=true
+
+# Project name (used to name .war file)
+#project.name=my-project
+
+# Specifies name of Forrest skin to use
+#project.skin=tigris
+#project.skin=pelt
+
+# comma separated list, file:// is supported
+#forrest.skins.descriptors=http://forrest.apache.org/skins/skins.xml,file:///c:/myskins/skins.xml
+
+##############
+# behavioural properties
+#project.menu-scheme=tab_attributes
+#project.menu-scheme=directories
+
+##############
+# layout properties
+
+# Properties that can be set to override the default locations
+#
+# Parent properties must be set. This usually means uncommenting
+# project.content-dir if any other property using it is uncommented
+
+#project.status=status.xml
+#project.content-dir=src/documentation
+#project.raw-content-dir=${project.content-dir}/content
+#project.conf-dir=${project.content-dir}/conf
+#project.sitemap-dir=${project.content-dir}
+#project.xdocs-dir=${project.content-dir}/content/xdocs
+#project.resources-dir=${project.content-dir}/resources
+#project.stylesheets-dir=${project.resources-dir}/stylesheets
+#project.images-dir=${project.resources-dir}/images
+#project.schema-dir=${project.resources-dir}/schema
+#project.skins-dir=${project.content-dir}/skins
+#project.skinconf=${project.content-dir}/skinconf.xml
+#project.lib-dir=${project.content-dir}/lib
+#project.classes-dir=${project.content-dir}/classes
+#project.translations-dir=${project.content-dir}/translations
+
+##############
+# validation properties
+
+# This set of properties determine if validation is performed
+# Values are inherited unless overridden.
+# e.g. if forrest.validate=false then all others are false unless set to true.
+#forrest.validate=true
+#forrest.validate.xdocs=${forrest.validate}
+#forrest.validate.skinconf=${forrest.validate}
+#forrest.validate.sitemap=${forrest.validate}
+#forrest.validate.stylesheets=${forrest.validate}
+#forrest.validate.skins=${forrest.validate}
+#forrest.validate.skins.stylesheets=${forrest.validate.skins}
+
+# *.failonerror=(true|false) - stop when an XML file is invalid
+#forrest.validate.failonerror=true
+
+# *.excludes=(pattern) - comma-separated list of path patterns to not validate
+# e.g.
+#forrest.validate.xdocs.excludes=samples/subdir/**, samples/faq.xml
+#forrest.validate.xdocs.excludes=
+
+
+##############
+# General Forrest properties
+
+# The URL to start crawling from
+#project.start-uri=linkmap.html
+# Set logging level for messages printed to the console
+# (DEBUG, INFO, WARN, ERROR, FATAL_ERROR)
+#project.debuglevel=ERROR
+# Max memory to allocate to Java
+#forrest.maxmemory=64m
+# Any other arguments to pass to the JVM. For example, to run on an X-less
+# server, set to -Djava.awt.headless=true
+#forrest.jvmargs=
+# The bugtracking URL - the issue number will be appended
+#project.bugtracking-url=http://issues.apache.org/bugzilla/show_bug.cgi?id=
+#project.bugtracking-url=http://issues.apache.org/jira/browse/
+# The issues list as rss
+#project.issues-rss-url=
+#I18n Property only works for the "forrest run" target.
+#project.i18n=true
+# The names of plugins that are required to build the project
+# comma separated list (no spaces)
+# Run "forrest available-plugins" for a list of plug-ins currently available
+project.required.plugins=org.apache.forrest.plugin.input.smartSlides,org.apache.forrest.plugin.input.projectInfo,org.apache.forrest.plugin.output.pdf
Added: forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.smartSlides/input.xmap
URL: http://svn.apache.org/viewcvs/forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.smartSlides/input.xmap?rev=332592&view=auto
==============================================================================
--- forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.smartSlides/input.xmap (added)
+++ forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.smartSlides/input.xmap Fri Nov 11 08:26:33 2005
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<!--
+ Copyright 1999-2005 The Apache Software Foundation or its licensors,
+ as applicable.
+
+ Licensed 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:actions>
+ <map:action logger="sitemap.action.sourcetype" name="sourcetype" src="org.apache.forrest.sourcetype.SourceTypeAction">
+ <sourcetype name="SmartSlides-1.0">
+ <document-declaration public-id="-//APACHE//DTD SmartSlides Presentation V1.0//EN" />
+ </sourcetype>
+
+ </map:action>
+ </map:actions>
+
+ <map:selectors default="parameter">
+ <map:selector logger="sitemap.selector.parameter" name="parameter" src="org.apache.cocoon.selection.ParameterSelector" />
+ </map:selectors>
+ </map:components>
+
+ <map:resources>
+ <map:resource name="transform-to-document">
+ <map:act type="sourcetype" src="{src}">
+ <map:select type="parameter">
+ <map:parameter name="parameter-selector-test" value="{sourcetype}" />
+ <map:when test="SmartSlides-1.0">
+ <map:generate src="{project:content.xdocs}{../../1}.xml" />
+ <map:transform src="{forrest:plugins}/org.apache.forrest.plugin.input.smartSlides/resources/stylesheets/presentation-to-document.xsl" />
+ <map:serialize type="xml-document"/>
+ </map:when>
+ </map:select>
+ </map:act>
+ </map:resource>
+ </map:resources>
+
+ <map:pipelines>
+ <map:pipeline internal="true">
+ <map:match pattern="**.xml">
+ <map:call resource="transform-to-document">
+ <map:parameter name="src" value="{project:content.xdocs}{1}.xml" />
+ </map:call>
+ </map:match>
+ </map:pipeline>
+ </map:pipelines>
+</map:sitemap>
\ No newline at end of file
Added: forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.smartSlides/lib/readme.txt
URL: http://svn.apache.org/viewcvs/forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.smartSlides/lib/readme.txt?rev=332592&view=auto
==============================================================================
--- forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.smartSlides/lib/readme.txt (added)
+++ forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.smartSlides/lib/readme.txt Fri Nov 11 08:26:33 2005
@@ -0,0 +1 @@
+Place any libraries required by your plugin in this directory.
\ No newline at end of file
Added: forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.smartSlides/locationmap.xml
URL: http://svn.apache.org/viewcvs/forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.smartSlides/locationmap.xml?rev=332592&view=auto
==============================================================================
--- forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.smartSlides/locationmap.xml (added)
+++ forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.smartSlides/locationmap.xml Fri Nov 11 08:26:33 2005
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2002-2005 The Apache Software Foundation or its licensors,
+ as applicable.
+
+ Licensed 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.
+-->
+<locationmap xmlns="http://apache.org/forrest/locationmap/1.0">
+
+ <components>
+ <matchers default="lm">
+ <matcher
+ name="lm"
+ src="org.apache.forrest.locationmap.WildcardLocationMapHintMatcher"/>
+ </matchers>
+ <selectors default="exists">
+ <selector name="exists" logger="sitemap.selector.exists"
+ src="org.apache.forrest.sourceexists.SourceExistsSelector" />
+ </selectors>
+ </components>
+
+ <locator>
+ <match pattern="daisy.transform.*.*">
+ <location src="resources/stylesheets/{1}-to-{2}.xsl"/>
+ </match>
+ </locator>
+</locationmap>
Added: forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.smartSlides/resources/schema/relaxng/smartslides-v10.rnc
URL: http://svn.apache.org/viewcvs/forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.smartSlides/resources/schema/relaxng/smartslides-v10.rnc?rev=332592&view=auto
==============================================================================
--- forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.smartSlides/resources/schema/relaxng/smartslides-v10.rnc (added)
+++ forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.smartSlides/resources/schema/relaxng/smartslides-v10.rnc Fri Nov 11 08:26:33 2005
@@ -0,0 +1,318 @@
+namespace rng = "http://relaxng.org/ns/structure/1.0"
+
+# This grammar is designed to support transformation of content to several
+# different output versions:
+#
+# Complete Version
+# Output for proofreading by presentation writer
+# Show all elements in an easily readable layout
+# Speaker Versions
+# * Speaker specific versions
+# All the following versions can be output in different versions
+# for each individual speaker or a all-speaker version
+# Speaker specific versions should highlight the speakers active part
+# while still showing the other speakers parts for orientation and context
+# Speaker Slides
+# Presentation Slides with additional info for viewing on the
+# speakers screen. This requires a split screen technique of outputting
+# two differenet versions (speaker and audience) at the same time.
+# Speaker Print Version
+# Content of slides and additional info for speakers prepared for
+# use in a printed version
+# Learner Version
+# Adds didactical explanations to content of explanation-elements
+# to speaker versions to help new speakers
+# familiarize themselves with a new presentation.
+# Audience Versions
+# Audience Slides
+# The normal presentation slides.
+# Audience Print Version
+# Content of presentation slides and additional info prepared
+# as printed handout for the audience.
+
+# ******************* Macros ****************************************************************************
+
+## list of commonly used block elements
+elemenlist.blocks &= text* & numberedList* & bulletList* & para* & table* & code* & section* & TOC? & chapterTOC? & Presenters*
+
+## list of block level special elements
+elementlist.specialblocks &= demo* & talk* & comment* & todo*
+
+## list of commonly used inline elements
+elemenlist.inlines &=
+
+ ## emphasis
+ element em { attribList.common, (text & elemenlist.inlines) }*
+ &
+ ## strong emphasis
+ element strong { attribList.common, (text & elemenlist.inlines) }*
+ &
+ ## inline image
+ image*
+ &
+ ## keyboard input
+ element kbd { attribList.common, (text & elemenlist.inlines) }*
+ &
+ ## quoted text
+ element quote { attribList.common, (text & elemenlist.inlines) }*
+ &
+ ## line break
+ br*
+ & PresentationTitle*
+attribList.common &=
+ attribute class { text }?,
+ attribute id { text }?,
+ attribute style { text }?
+attribList.presControl &=
+
+ ## number of presenter to present this content
+ ## if none is given the presenter is inherited
+ ## from the parent elements
+ attribute presenter { "1" | "2" | "3" }?,
+
+ ## attribute to control visibility of any element
+ ## in different output versions
+ ## attribute is passed on to all children that have
+ ## no attribute themselves
+ ## Default rules are:
+ ##
+ ## - Elements are visible in all Slides unless
+ ## showOnlyFor has "print" or "slides" in it
+ ## - Elements are only visible in slides if
+ ## showOnlyFor has "slides" in it
+ ## - Elements are only visible in printed versions if
+ ## showOnlyFor has "print" in it
+ ## - If showOnlyFor contains "print" and "slides"
+ ## then element is only used in printouts for speakers!
+ attribute showOnlyFor { "print" | "slides" }?
+# ******************* Grammar ***********************************************************************
+start = element presentation { metadata?, content }
+
+## Meta Information about the whole presentation
+metadata =
+ element metadata {
+
+ ## The title of the presentation
+ element title { text },
+
+ ## The subtitle of the presentation
+ element subtitle { text }?,
+ abstract?,
+
+ ## one or more authors of the presentation
+ element author { fullName, email? }*,
+
+ ## creation date
+ element created { xsd:date },
+
+ ## update log
+ element updates {
+
+ ## who has written the updated
+ element updatedby { text },
+
+ ## when was it saved
+ element changeDate { xsd:date }
+ }*,
+
+ ## central configuration of all speakers
+ ## These name are inserted into intro slides and used whenever
+ ## there is a switch between speakers
+ ## if no name is given, "Speaker 1", "Speaker 2" etc. is used instead
+
+ ## If no presenters are given, the authors are assumed to be the presenters
+ ## First presenter is default presenter for the presenation
+ element presenter { fullName, shortName?, email? }*
+ }
+
+## an abstract of the content and purpose of this presentation
+abstract = element abstract { attribList.presControl, elemenlist.blocks* }
+
+## speaker's shortname for use within the speaker notes
+fullName = element fullName { text }
+shortName = element shortName { text }
+email = element email { text }
+
+## content-element is the frame around all content
+## as opposed to metadata
+content = element content { chapter* & module* & page* }
+
+## chapters group pages or modules to add chapter structure
+## to your presentation. Create chapters to
+chapter =
+ element chapter {
+ attribList.common,
+
+ ## title for outline and listing of chapter in toc
+ attribute title { text },
+
+ ## summary of this chapter
+ ## if present it will be shown on the chapter intro slide
+ attribute summary { text }?,
+
+ ## Don't show this chapter in Table of Content
+ attribute hideInTOC { empty }?,
+
+ ## define presenter here to assign a complete chapter to one speaker
+ ## or make her the default speaker for it
+ attribList.presControl,
+ (chapter* & module* & page*)
+ }
+
+## Insert this element to generate a table of content
+## within any of your slides
+## the TOC is embedded in a bulleted list
+TOC = element TOC { attribList.common }
+chapterTOC = element chapterTOC { attribList.common }
+PresentationTitle = element PresentationTitle { attribList.common }
+Presenters = element Presenters { attribList.common }
+
+## modules group pages of a learning unit
+## using modules is optional
+## creating modules simplifies re-use
+module =
+ element module {
+
+ ## name for listing of module in software to recombine modules
+ attribute name { text },
+
+ ## define presenter here to assign a complete module to one speaker
+ ## or make her the default speaker for it
+ attribList.presControl,
+ page+
+ }
+
+## individual presentation page
+page =
+ element page {
+ attribList.common,
+
+ ## title for outline and listing of chapter in toc
+ ## if page has no heading element we'll use title as page title as well
+ ## so that page title normally shows in toc
+ attribute title { text },
+
+ ## type of page to determine background and processing
+ ## default is empty
+ attribute type { "slide" | "chapterTitle" | text }?,
+
+ ## define presenter here to assign a complete page to one speaker
+ ## or make her the default speaker for it
+ attribList.presControl,
+
+ ## control listing of element in Table of content slides
+ ## by default a slide is not listed anywhere
+ attribute listIn { "chapterTOC" | "globalTOC" | "allTOCs" }?,
+ heading?,
+ (elemenlist.blocks* & elementlist.specialblocks* & image*),
+ addlInfo?
+ }
+
+## linebreak
+br = element br { attribList.common }
+
+## frame element around a bullet list
+bulletList = element bulletList { attribList.common, attribList.presControl, item+ }
+
+## frame element around a bullet list
+numberedList = element numberedList { attribList.common, attribList.presControl, item+ }
+
+## element for each item in a list
+## note that lists can contain other lists
+## listitem for simplicity can directly contain text.
+## if it does processing should consider it being wrapped in para-element
+item = element item { attribList.common, attribList.presControl, (elemenlist.blocks* & elementlist.specialblocks*) }
+para = element para { attribList.common, attribList.presControl, (text & elemenlist.inlines* & xref*) }
+
+## source code quotes
+code = element code { attribList.common, attribList.presControl, (text & elemenlist.inlines* & xref*) }
+image =
+ element image {
+ attribList.common,
+ attribute url { text },
+ attribute alternativeText { text },
+ attribList.presControl
+ }
+
+## Optional element for page heading
+## if not the same as page title
+heading = element heading { attribList.common, attribList.presControl, (text & elemenlist.inlines* & xref*) }
+
+## subheadings within the text
+section =
+ element section {
+ attribList.common,
+ attribList.presControl,
+ attribute title { text },
+ (elemenlist.blocks* & elementlist.specialblocks* & image*)
+ }
+table =
+ element table {
+ attribList.common,
+ attribList.presControl,
+ element row {
+ attribList.presControl,
+
+ ## table cell for simplicity can directly contain text.
+ ## if it does processing should consider it being wrapped in para-element
+ element cell {
+ attribList.common,
+ attribList.presControl,
+
+ ## span cell over several rows
+ attribute colspan { xsd:integer }?,
+
+ ## span cell over several columns
+ attribute rowspan { xsd:integer }?,
+ (elemenlist.blocks & elementlist.specialblocks*)
+ }
+ }
+ }
+
+## cross reference
+xref =
+ element xref {
+ attribList.common,
+ attribute url { text },
+ (elemenlist.inlines* & text*)
+ }
+# special block elements
+
+## element for dictatical comment to be inserted anywhere within a page
+## will only be rendered in full and leaner version of speaker notes
+comment = element comment { attribList.presControl, elemenlist.blocks* }
+
+## describe what is to be shown to the audience
+demo = element demo { attribList.common, attribList.presControl, elemenlist.blocks* }
+
+## additional info for the printed version
+addlInfo =
+ element addlInfo {
+ attribList.common,
+
+ ## optional title for this part
+ ## if none is given we use a default heading "Additional Information"
+ attribute title { text }?,
+ (elemenlist.blocks* & elementlist.specialblocks*)
+ }
+# special inline elements
+
+## reminder about something that needs to be done
+todo =
+ element todo {
+ attribList.common,
+
+ ## who is to do it (optional)
+ attribute assignedTo { text }?,
+
+ ## when we need it
+ attribute doUntil { xsd:date }?,
+
+ ## importance
+ attribute priority { "showStopper" | "important" | "optional" }?,
+ (elemenlist.blocks* & elementlist.specialblocks*)
+ }
+
+## explain what needs to be said in addition to the info
+## on the slides
+talk = element talk { attribList.common, attribList.presControl, elemenlist.blocks* }
Added: forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.smartSlides/resources/stylesheets/presentation-to-document.xsl
URL: http://svn.apache.org/viewcvs/forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.smartSlides/resources/stylesheets/presentation-to-document.xsl?rev=332592&view=auto
==============================================================================
--- forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.smartSlides/resources/stylesheets/presentation-to-document.xsl (added)
+++ forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.smartSlides/resources/stylesheets/presentation-to-document.xsl Fri Nov 11 08:26:33 2005
@@ -0,0 +1,530 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" extension-element-prefixes="datetime redirect"
+ xmlns:datetime="http://exslt.org/dates-and-times" xmlns:redirect="http://xml.apache.org/xalan/redirect">
+ <xsl:output doctype-public="-//APACHE//DTD Documentation V1.3//EN" doctype-system="http://forrest.apache.org/dtd/document-v13.dtd" encoding="ISO-8859-1"
+ indent="yes" method="xml" />
+ <!--
+
+ Parameters
+
+ -->
+ <!--space separated list of all special elements to be visible in target (talk demo addlInfo comment todo) -->
+ <xsl:param name="show"> </xsl:param>
+ <!--Keep this set as long as DIVs are not legal in doc13-->
+ <xsl:param name="noDIVs">1</xsl:param>
+ <xsl:template match="/">
+ <xsl:apply-templates mode="doc13" />
+ </xsl:template>
+ <!--
+
+ Main processing template
+ -->
+ <xsl:template match="presentation" mode="doc13">
+ <document>
+ <header>
+ <xsl:apply-templates select="metadata" mode="doc13" />
+ </header>
+ <xsl:apply-templates select="content" mode="doc13" />
+ </document>
+ </xsl:template>
+ <!--
+
+ Process metadata
+ -->
+ <xsl:template match="metadata" mode="doc13">
+ <title>
+ <xsl:value-of select="title" />
+ </title>
+ <xsl:if test="count(author)">
+ <authors>
+ <xsl:for-each select="author">
+ <person>
+ <xsl:attribute name="name">
+ <xsl:value-of select="fullName" />
+ </xsl:attribute>
+ <xsl:if test="email">
+ <xsl:attribute name="email">
+ <xsl:value-of select="email" />
+ </xsl:attribute>
+ </xsl:if>
+ </person>
+ </xsl:for-each>
+ </authors>
+ </xsl:if>
+ <abstract>
+ <xsl:value-of select="abstract" />
+ </abstract>
+ </xsl:template>
+ <!--
+
+ Generate visible content
+ -->
+ <xsl:template match="content" mode="doc13">
+ <body>
+ <xsl:attribute name="class">
+ <xsl:value-of select="normalize-space(concat('slidyPresentation ', @class))" />
+ </xsl:attribute>
+ <xsl:copy-of select="@id|@style" />
+ <!-- <section id="main">
+ <title>
+ <xsl:value-of select="/presentation/metadata/title" />
+ </title>-->
+ <xsl:apply-templates mode="doc13" />
+ <!-- </section>-->
+ </body>
+ </xsl:template>
+ <!--
+
+ Process chapter start
+ -->
+ <xsl:template match="chapter" mode="doc13">
+ <xsl:if test="not(contains(@showOnlyFor,'slides'))">
+ <section>
+ <xsl:attribute name="class">
+ <xsl:value-of select="normalize-space(concat('chapter ', @class))" />
+ </xsl:attribute>
+ <xsl:copy-of select="@id|@style" />
+ <title>
+ <xsl:value-of select="@title" />
+ </title>
+ <xsl:apply-templates mode="doc13" />
+ </section>
+ </xsl:if>
+ </xsl:template>
+ <!--
+
+ Process module (no processing at all)
+ -->
+ <xsl:template match="module" mode="doc13">
+ <xsl:if test="not(contains(@showOnlyFor,'slides'))">
+ <xsl:apply-templates mode="doc13" />
+ </xsl:if>
+ </xsl:template>
+ <!--
+
+ Process page
+ -->
+ <xsl:template match="page" mode="doc13">
+ <xsl:if test="not(contains(@showOnlyFor,'slides'))">
+ <section>
+ <xsl:attribute name="class">
+ <xsl:value-of select="normalize-space(concat('slide ', @type))" />
+ </xsl:attribute>
+ <xsl:copy-of select="@id|@style" />
+ <xsl:choose>
+ <xsl:when test="heading">
+ <title>
+ <xsl:copy-of select="heading/@*" />
+ <xsl:apply-templates mode="doc13Heading" select="heading" />
+ </title>
+ </xsl:when>
+ <xsl:otherwise>
+ <title>
+ <xsl:apply-templates mode="doc13" select="@title" />
+ </title>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:apply-templates mode="doc13" />
+ </section>
+ </xsl:if>
+ </xsl:template>
+ <!--
+
+ Special element TOC as a macro for a Table of content
+ -->
+ <xsl:template match="TOC" mode="doc13">
+ <ul>
+ <xsl:for-each select="//chapter[not (@hideInTOC)]|//page[@listIn='allTOCs' or @listIn='globalTOC']">
+ <li>
+ <p>
+ <xsl:attribute name="class">
+ <xsl:choose>
+ <xsl:when test="local-name()='chapter'">TOCchapterEntry</xsl:when>
+ <xsl:otherwise>TOCPageEntry</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="@title">
+ <xsl:value-of select="@title" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="heading" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </p>
+ </li>
+ </xsl:for-each>
+ </ul>
+ </xsl:template>
+ <!--
+
+ Special element chapterTOC as a macro for a Table of content
+ -->
+ <xsl:template match="chapterTOC" mode="doc13">
+ <!-- List of pages -->
+ <xsl:variable name="list" select="ancestor::page/following-sibling::page[@listIn='allTOCs' or @listIn='chapterTOC']|ancestor::
+ page/following-sibling::chapter" />
+ <xsl:if test="$list">
+ <ul>
+ <xsl:for-each select="$list">
+ <li>
+ <xsl:value-of select="@title" />
+ </li>
+ </xsl:for-each>
+ </ul>
+ </xsl:if>
+ </xsl:template>
+ <!--
+
+ Special element PresentationTitle as a macro for a Table of content
+ -->
+ <xsl:template match="PresentationTitle" mode="doc13">
+ <xsl:value-of select="/presentation/metadata/title" />
+ </xsl:template>
+ <!--
+
+ Special element Presenters as a macro for a Table of content
+ -->
+ <xsl:template match="Presenters" mode="doc13">
+ <xsl:for-each select="/presentation/metadata/presenter">
+ <p class="Presenter">
+ <xsl:value-of select="fullName" />
+ <br />
+ <link href="mailto:{email}">
+ <xsl:value-of select="email" />
+ </link>
+ </p>
+ </xsl:for-each>
+ </xsl:template>
+ <!--
+
+ Heading
+ block processing
+ -->
+ <xsl:template match="heading" mode="doc13" />
+ <!--
+
+ Heading
+ block processing
+ -->
+ <xsl:template match="heading" mode="doc13Heading">
+ <xsl:apply-templates mode="doc13" />
+ </xsl:template>
+ <!--
+
+ section
+ -->
+ <xsl:template match="section" mode="doc13">
+ <xsl:if test="not(contains(@showOnlyFor,'slides'))">
+ <section>
+ <xsl:copy-of select="@class|@id|@style" />
+ <title>
+ <xsl:value-of select="@title" />
+ </title>
+ <xsl:apply-templates mode="doc13" />
+ </section>
+ </xsl:if>
+ </xsl:template>
+ <!--
+
+ XRef
+ -->
+ <xsl:template match="xref" mode="doc13">
+ <xsl:if test="not(contains(@showOnlyFor,'slides'))">
+ <link>
+ <xsl:copy-of select="@class|@id|@style" />
+ <!-- FIXME: Remove this as soon as we can have divs in docX -->
+ <xsl:choose>
+ <xsl:when test="$noDIVs and ancestor::talk">
+ <xsl:attribute name="class">talk</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$noDIVs and ancestor::demo">
+ <xsl:attribute name="class">demo</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$noDIVs and ancestor::comment">
+ <xsl:attribute name="class">comment</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:attribute name="href">
+ <xsl:value-of select="@url" />
+ </xsl:attribute>
+ <xsl:copy-of select="@*[name(.) != 'url']" />
+ <xsl:apply-templates mode="doc13" />
+ </link>
+ </xsl:if>
+ </xsl:template>
+ <!--
+
+ Image
+ -->
+ <xsl:template match="image" mode="doc13">
+ <xsl:if test="not(contains(@showOnlyFor,'slides'))">
+ <xsl:choose>
+ <xsl:when test="parent::page|parent::section">
+ <figure>
+ <xsl:copy-of select="@class|@id|@style" />
+ <!-- FIXME: Remove this as soon as we can have divs in docX -->
+ <xsl:choose>
+ <xsl:when test="$noDIVs and ancestor::talk">
+ <xsl:attribute name="class">talk</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$noDIVs and ancestor::demo">
+ <xsl:attribute name="class">demo</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$noDIVs and ancestor::comment">
+ <xsl:attribute name="class">comment</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:attribute name="src">
+ <xsl:value-of select="@url" />
+ </xsl:attribute>
+ <xsl:attribute name="alt">
+ <xsl:value-of select="@alternativeText" />
+ </xsl:attribute>
+ </figure>
+ </xsl:when>
+ <xsl:otherwise>
+ <icon>
+ <xsl:copy-of select="@class|@id|@style" />
+ <!-- FIXME: Remove this as soon as we can have divs in docX -->
+ <xsl:choose>
+ <xsl:when test="$noDIVs and ancestor::talk">
+ <xsl:attribute name="class">talk</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$noDIVs and ancestor::demo">
+ <xsl:attribute name="class">demo</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$noDIVs and ancestor::comment">
+ <xsl:attribute name="class">comment</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:attribute name="src">
+ <xsl:value-of select="@url" />
+ </xsl:attribute>
+ <xsl:attribute name="alt">
+ <xsl:value-of select="@alternativeText" />
+ </xsl:attribute>
+ </icon>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:template>
+ <!--
+
+ numberedList
+ -->
+ <xsl:template match="numberedList" mode="doc13">
+ <xsl:if test="not(contains(@showOnlyFor,'slides'))">
+ <ol>
+ <xsl:copy-of select="@class|@id|@style" />
+ <!-- FIXME: Remove this as soon as we can have divs in docX -->
+ <xsl:choose>
+ <xsl:when test="$noDIVs and ancestor::talk">
+ <xsl:attribute name="class">talk</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$noDIVs and ancestor::demo">
+ <xsl:attribute name="class">demo</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$noDIVs and ancestor::comment">
+ <xsl:attribute name="class">comment</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:apply-templates mode="doc13" />
+ </ol>
+ </xsl:if>
+ </xsl:template>
+ <!--
+
+ bulletList
+ -->
+ <xsl:template match="bulletList" mode="doc13">
+ <xsl:if test="not(contains(@showOnlyFor,'slides'))">
+ <ul>
+ <xsl:copy-of select="@class|@id|@style" />
+ <!-- FIXME: Remove this as soon as we can have divs in docX -->
+ <xsl:choose>
+ <xsl:when test="$noDIVs and ancestor::talk">
+ <xsl:attribute name="class">talk</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$noDIVs and ancestor::demo">
+ <xsl:attribute name="class">demo</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$noDIVs and ancestor::comment">
+ <xsl:attribute name="class">comment</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:apply-templates mode="doc13" />
+ </ul>
+ </xsl:if>
+ </xsl:template>
+ <!--
+
+ Macro for Abstract in body
+ -->
+ <xsl:template match="Abstract" mode="doc13">
+ <abstract>
+ <xsl:apply-templates select="/presentation/abstract" mode="doc13" />
+ </abstract>
+ </xsl:template>
+ <!--
+
+ list item
+ -->
+ <xsl:template match="item" mode="doc13">
+ <xsl:if test="not(contains(@showOnlyFor,'slides'))">
+ <li>
+ <xsl:copy-of select="@class|@id|@style" />
+ <!-- FIXME: Remove this as soon as we can have divs in docX -->
+ <xsl:choose>
+ <xsl:when test="$noDIVs and ancestor::talk">
+ <xsl:attribute name="class">talk</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$noDIVs and ancestor::demo">
+ <xsl:attribute name="class">demo</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$noDIVs and ancestor::comment">
+ <xsl:attribute name="class">comment</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:apply-templates mode="doc13" />
+ </li>
+ </xsl:if>
+ </xsl:template>
+ <!--
+
+ para
+ -->
+ <xsl:template match="para" mode="doc13">
+ <xsl:if test="not(contains(@showOnlyFor,'slides'))">
+ <p>
+ <xsl:copy-of select="@class|@id|@style" />
+ <!-- FIXME: Remove this as soon as we can have divs in docX -->
+ <xsl:choose>
+ <xsl:when test="$noDIVs and ancestor::talk">
+ <xsl:attribute name="class">talk</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$noDIVs and ancestor::demo">
+ <xsl:attribute name="class">demo</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$noDIVs and ancestor::comment">
+ <xsl:attribute name="class">comment</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:apply-templates mode="doc13" />
+ </p>
+ </xsl:if>
+ </xsl:template>
+ <!--
+
+ todo
+ -->
+ <xsl:template match="todo" mode="doc13">
+ <xsl:if test="contains($show,local-name())">
+ <xsl:choose>
+ <!--wrap in divs when allowed, otherwise just pass content-->
+ <xsl:when test="not($noDIVs)">
+ <div>
+ <xsl:attribute name="class">
+ <xsl:value-of select="local-name()" />
+ </xsl:attribute>
+ <xsl:copy-of select="@id|@style" />
+ <xsl:value-of select="assignedTo"/>:<xsl:value-of select="doUntil"/>:<xsl:value-of select="priority"/><br/>
+ <xsl:apply-templates mode="doc13" />
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="doc13" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:template>
+ <!--
+
+ comment,demo,talk
+ -->
+ <xsl:template match="comment|talk|demo" mode="doc13">
+ <xsl:if test="contains($show,local-name())">
+ <xsl:choose>
+ <!--wrap in divs when allowed, otherwise just pass content-->
+ <xsl:when test="not($noDIVs)">
+ <div>
+ <xsl:attribute name="class">
+ <xsl:value-of select="local-name()" />
+ </xsl:attribute>
+ <xsl:copy-of select="@id|@style" />
+ <xsl:apply-templates mode="doc13" />
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="doc13" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:template>
+ <!--
+
+ addlInfo
+ -->
+ <xsl:template match="addlInfo" mode="doc13">
+ <xsl:if test="contains($show,local-name())">
+ <section>
+ <xsl:attribute name="class">
+ <xsl:value-of select="normalize-space(concat('addlInfo ', @class))" />
+ </xsl:attribute>
+ <title>
+ <xsl:choose>
+ <xsl:when test="@title">
+ <xsl:value-of select="@title" />
+ </xsl:when>
+ <xsl:otherwise> Additional Information </xsl:otherwise>
+ </xsl:choose>
+ </title>
+ <xsl:apply-templates mode="doc13" />
+ </section>
+ </xsl:if>
+ </xsl:template>
+ <!--
+
+ Elements that can be passed on unchanged
+ -->
+ <xsl:template match="em|strong|kbd|quote|code|br" mode="doc13">
+
+ <xsl:copy>
+ <xsl:copy-of select="@class|@id|@style" />
+ <xsl:apply-templates mode="doc13" />
+ </xsl:copy>
+ </xsl:template>
+ <!--
+
+ Process bare text in items
+ and wrap it in paras
+ -->
+ <xsl:template match="item/text()|cell/text()|talk/text()|demo/text()|comment/text()" mode="doc13">
+ <!-- Ignore completely empty pieces of text -->
+ <xsl:if test="normalize-space(.)!=''">
+ <p>
+ <!-- FIXME: Remove this as soon as we can have divs in docX -->
+ <xsl:choose>
+ <xsl:when test="$noDIVs and ancestor::talk">
+ <xsl:attribute name="class">talk</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$noDIVs and ancestor::demo">
+ <xsl:attribute name="class">demo</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$noDIVs and ancestor::comment">
+ <xsl:attribute name="class">comment</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:value-of select="." />
+ </p>
+ </xsl:if>
+ </xsl:template>
+ <!--
+
+ Catch unblocked elements
+ -->
+ <xsl:template match="node()|text()|comment()">
+ <xsl:message>Ungeblocktes Elemente <xsl:value-of select="." /></xsl:message>
+ </xsl:template>
+ <xsl:template match="processing-instruction()" />
+</xsl:stylesheet>