forrest-svn mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cdupoiri...@apache.org
Subject svn commit: r463592 - in /forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.odt: resources/stylesheets/odt-to-forrest-xhtml.xsl src/documentation/content/xdocs/samples/opendocument-writer.odt
Date Fri, 13 Oct 2006 08:44:59 GMT
Author: cdupoirieux
Date: Fri Oct 13 01:44:59 2006
New Revision: 463592

URL: http://svn.apache.org/viewvc?view=rev&rev=463592
Log:
Move the specific forrest code into odt-to-forrest-xhtml.
(cf. http://svn.apache.org/viewvc?view=rev&revision=463265)
We have to note that some improvements made should be shared with Lenya, such as the picture
management
or the link management which is better in forrest ;)
I need to understand the Lenya project to see if we can improve the odt-to-xhtml.xsl...

Modified:
    forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.odt/resources/stylesheets/odt-to-forrest-xhtml.xsl
    forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.odt/src/documentation/content/xdocs/samples/opendocument-writer.odt

Modified: forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.odt/resources/stylesheets/odt-to-forrest-xhtml.xsl
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.odt/resources/stylesheets/odt-to-forrest-xhtml.xsl?view=diff&rev=463592&r1=463591&r2=463592
==============================================================================
--- forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.odt/resources/stylesheets/odt-to-forrest-xhtml.xsl
(original)
+++ forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.odt/resources/stylesheets/odt-to-forrest-xhtml.xsl
Fri Oct 13 01:44:59 2006
@@ -20,7 +20,9 @@
   xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" 
   xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" 
   xmlns:xlink="http://www.w3.org/1999/xlink" 
-  xmlns:dc="http://purl.org/dc/elements/1.1/" >
+  xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" 
+  xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" 
+  xmlns:dc="http://purl.org/dc/elements/1.1/">
   <xsl:import href="lm://transform.odt.xhtml"/>
   <xsl:param name="path" select="'odt path name'"/>
   
@@ -74,4 +76,172 @@
       </body>
     </html>
   </xsl:template>
+
+<!-- FIXME : this is not XHTML -->
+<!-- Case of Notes -->
+<xsl:template match="text:p[@text:style-name='Forrest_3a__20_Note']">
+	<note>
+		<xsl:apply-templates/>
+		<xsl:if test="count(node())=0"><br /></xsl:if>
+	</note>
+</xsl:template>
+
+<!-- FIXME : this is not XHTML -->
+<!-- Case of Warnings -->
+<xsl:template match="text:p[@text:style-name='Forrest_3a__20_Warning']">
+	<warning>
+		<xsl:apply-templates/>
+		<xsl:if test="count(node())=0"><br /></xsl:if>
+	</warning>
+</xsl:template>
+
+<!-- Case of Fixme  - still a problem to retrieve the author...-->
+<!-- FIXME : this is not XHTML -->
+<xsl:template match="text:p[@text:style-name='Forrest_3a__20_Fixme']">
+	<fixme>
+		<xsl:apply-templates/>
+		<xsl:if test="count(node())=0"><br /></xsl:if>
+	</fixme>
+</xsl:template>
+
+<!-- Case of Sources -->
+<!-- FIXME : this is not XHTML -->
+<xsl:template match="text:p[@text:style-name='Forrest_3a__20_Source']">
+	<source>
+		<xsl:apply-templates/>
+		<xsl:if test="count(node())=0"><br /></xsl:if>
+	</source>
+</xsl:template>
+
+<!-- Otherwise -->
+
+<!-- FIXME : An idea should be to add a class attribute to <p> in order to be able
to keep the original
+             layout. Maybe depending on a properties keepLayout=True. -->
+<xsl:template match="text:p">
+	<p>
+		<xsl:apply-templates/>
+	</p>
+</xsl:template>
+
+<!-- Instead of using styles like in the Lenya file, we try here to recognise the style
to use XHTML specific
+     tags such as <em>, <strong>, <sup> and <sub>... -->
+<xsl:template match="text:span">
+	<xsl:variable name="styleName" select="@text:style-name"/>
+	<xsl:apply-templates select="//office:document-content/office:automatic-styles/style:style[@style:name=$styleName]/style:text-properties/@*[last()]">
+		<xsl:with-param name="text" select="./text()"/>
+	</xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="style:text-properties/@*">
+	<xsl:param name="text"/>
+	<xsl:param name="indStyle" select="count(../@*)"/>
+	<xsl:choose>
+		<!-- Case of the emphasys style - generally rendered with Italic -->
+		<xsl:when test="name()='fo:font-style' and .='italic'">
+			<xsl:call-template name="layout-span">
+				<xsl:with-param name="text" select="$text"/>
+				<xsl:with-param name="indStyle" select="$indStyle"/>
+				<xsl:with-param name="tag" select="'em'"/>
+			</xsl:call-template>
+		</xsl:when>
+		<!-- Case of the strong style -->
+		<xsl:when test="name()='fo:font-weight' and .='bold'">
+			<xsl:call-template name="layout-span">
+				<xsl:with-param name="text" select="$text"/>
+				<xsl:with-param name="indStyle" select="$indStyle"/>
+				<xsl:with-param name="tag" select="'strong'"/>
+			</xsl:call-template>
+		</xsl:when>
+		<!-- Case of the exponent style -->
+		<xsl:when test="name()='style:text-position' and starts-with(.,'super')">
+			<xsl:call-template name="layout-span">
+				<xsl:with-param name="text" select="$text"/>
+				<xsl:with-param name="indStyle" select="$indStyle"/>
+				<xsl:with-param name="tag" select="'sup'"/>
+			</xsl:call-template>
+		</xsl:when>
+		<!-- Case of the subscript style -->
+		<xsl:when test="name()='style:text-position' and starts-with(.,'sub')">
+			<xsl:call-template name="layout-span">
+				<xsl:with-param name="text" select="$text"/>
+				<xsl:with-param name="indStyle" select="$indStyle"/>
+				<xsl:with-param name="tag" select="'sub'"/>
+			</xsl:call-template>
+		</xsl:when>
+		<xsl:otherwise>
+			<xsl:call-template name="text-span">
+				<xsl:with-param name="text" select="$text"/>
+				<xsl:with-param name="indStyle" select="$indStyle"/>
+			</xsl:call-template>
+		</xsl:otherwise>
+	</xsl:choose>
+</xsl:template>
+
+<xsl:template name="layout-span">
+	<xsl:param name="text"/>
+	<xsl:param name="indStyle"/>
+	<xsl:param name="tag" select="NONE"/>
+	<!-- Add a layout tag for a span -->
+	<xsl:if test="not($tag='NONE')">
+		<xsl:element name="{$tag}">
+			<xsl:call-template name="text-span">
+				<xsl:with-param name="text" select="$text"/>
+				<xsl:with-param name="indStyle" select="$indStyle"/>
+			</xsl:call-template>
+		</xsl:element>
+	</xsl:if>
+</xsl:template>
+
+<xsl:template name="text-span">
+	<xsl:param name="text"/>
+	<xsl:param name="indStyle" select="last()"/>
+	<!-- Add the text of a span or continue to browse the styles -->
+	<xsl:choose>
+		<xsl:when test="$indStyle=1">
+			<xsl:apply-templates select="$text"/>
+		</xsl:when>
+		<xsl:otherwise>
+			<xsl:apply-templates select="../@*[number($indStyle)-1]">
+				<xsl:with-param name="text" select="$text"/>
+				<xsl:with-param name="indStyle" select="number($indStyle)-1"/>
+			</xsl:apply-templates>
+		</xsl:otherwise>
+	</xsl:choose>
+</xsl:template>
+
+  <!--+
+      | Images
+      +-->
+<xsl:template match="draw:image[@xlink:show]">
+	<xsl:variable name="href"><xsl:value-of select="@xlink:href"/></xsl:variable>
+	<xsl:choose>
+		<xsl:when test="starts-with($href, 'http:')">
+			<img src="{$href}" alt="{@draw:name}"/>
+		</xsl:when>
+		<xsl:otherwise>
+			<img src="/{$dirname}openDocumentEmbeddedImages/zip-{$filename}.odt/file-{$href}" alt="{../@draw:name}"/>
+		</xsl:otherwise>
+	</xsl:choose>
+</xsl:template>
+
+  <!--+
+      | Links
+      +-->
+<!-- A little more detailled than in the Lenya file, we add a title and a target attribute
if it is supplied... -->
+<xsl:template match="text:a">
+	<a href="{@xlink:href}">
+		<xsl:if test="@office:target-frame-name">
+			<xsl:attribute name="target">
+				<xsl:value-of select="@office:target-frame-name"/>
+			</xsl:attribute>
+		</xsl:if>
+		<xsl:if test="@office:name">
+			<xsl:attribute name="title">
+				<xsl:value-of select="@office:name"/>
+			</xsl:attribute>
+		</xsl:if>
+		<xsl:apply-templates/>
+	</a>
+</xsl:template>
+
 </xsl:stylesheet>

Modified: forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.odt/src/documentation/content/xdocs/samples/opendocument-writer.odt
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.input.odt/src/documentation/content/xdocs/samples/opendocument-writer.odt?view=diff&rev=463592&r1=463591&r2=463592
==============================================================================
Binary files - no diff available.



Mime
View raw message