summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul W. Frields <stickster@gmail.com>2005-12-29 22:37:32 +0000
committerPaul W. Frields <stickster@gmail.com>2005-12-29 22:37:32 +0000
commite7a55bc0fad50b29b27c5287d75d4e92f9f66798 (patch)
tree096dbccbe7a0dcedf63a2977c005db522915f97d
parent01d8b2b7b2df62c91f12369e9c578666438117bf (diff)
downloadfedora-doc-utils-e7a55bc0fad50b29b27c5287d75d4e92f9f66798.tar.gz
fedora-doc-utils-e7a55bc0fad50b29b27c5287d75d4e92f9f66798.tar.xz
fedora-doc-utils-e7a55bc0fad50b29b27c5287d75d4e92f9f66798.zip
Reduce redundancy, and create new, stupider pet tricks
-rw-r--r--packaging/bookinfo.xsl126
-rw-r--r--packaging/gnome-desktop.xsl21
-rw-r--r--packaging/kde-desktop.xsl2
-rw-r--r--packaging/khelpcenter-plugin.xsl14
-rw-r--r--packaging/spec.xsl26
-rw-r--r--packaging/templates.xsl64
6 files changed, 141 insertions, 112 deletions
diff --git a/packaging/bookinfo.xsl b/packaging/bookinfo.xsl
index 178e80c..104c192 100644
--- a/packaging/bookinfo.xsl
+++ b/packaging/bookinfo.xsl
@@ -1,73 +1,69 @@
<!-- Transform rpm-info.xml into either "bookinfo" or "articleinfo" -->
<xsl:stylesheet version="1.0" xml:space="preserve" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:output encoding="UTF-8" indent="yes" method="xml" omit-xml-declaration="yes" standalone="no" version="1.0"/>
- <xsl:param name="lang" select="'en'"/>
- <xsl:param name="doctype" select="'bookinfo'"/>
+ <xsl:output encoding="UTF-8" indent="yes" method="xml" omit-xml-declaration="yes" standalone="no" version="1.0"/>
- <xsl:template match="/">
- <xsl:element name="{$doctype}">
- <title>
- <xsl:call-template name="get-title"/>
- </title>
- <copyright>
- <xsl:for-each select="/rpm-info/copyright/year"><year>
- <xsl:value-of select="node()"/>
- </year></xsl:for-each>
- <xsl:for-each select="/rpm-info/copyright/holder">
- <holder>
- <xsl:value-of select="node()"/>
- </holder>
- </xsl:for-each>
- </copyright>
- <authorgroup>
- <xsl:for-each select="/rpm-info/author">
- <author>
- <xsl:call-template name="human"/>
- </author>
- </xsl:for-each>
- <xsl:for-each select="/rpm-info/translator">
- <othercredit>
- <xsl:call-template name="human"/>
- <personalblurb>Translator</personalblurb>
- </othercredit>
- </xsl:for-each>
- <xsl:for-each select="/rpm-info/editor">
- <editor>
- <xsl:call-template name="human"/>
- </editor>
- </xsl:for-each>
- </authorgroup>
- <xsl:text disable-output-escaping="yes">&amp;LEGALNOTICE;</xsl:text>
- <revhistory>
- <xsl:for-each select="/rpm-info/changelog/revision[@role != 'rpm']">
- <revision>
- <revnumber><xsl:value-of select="@version"/></revnumber>
- <date><xsl:value-of select="@date"/></date>
- <authorinitials><xsl:value-of select="author/@initials"/></authorinitials>
- <revdescription>
- <para>
- <xsl:value-of select="details"/>
- </para>
- </revdescription>
- </revision>
- </xsl:for-each>
- </revhistory>
- </xsl:element>
- </xsl:template>
+ <xsl:param name="lang" select="'en'"/>
+ <xsl:param name="doctype" select="'bookinfo'"/>
+ <xsl:param name="who" select="''"/>
- <xsl:template name="get-title">
- <xsl:for-each select="/rpm-info/titles/translation">
- <xsl:choose>
- <xsl:when test="@lang = $lang">
- <xsl:value-of select="title"/>
- </xsl:when>
- </xsl:choose>
+ <xsl:template match="/">
+ <xsl:element name="{$doctype}">
+ <xsl:element name="title">
+ <xsl:call-template name="get-title"/>
+ </xsl:element>
+ <xsl:element name="copyright">
+ <xsl:for-each select="/rpm-info/copyright/year"><xsl:element name="year">
+ <xsl:value-of select="node()"/>
+ </xsl:element></xsl:for-each>
+ <xsl:for-each select="/rpm-info/copyright/holder">
+ <xsl:element name="holder">
+ <xsl:value-of select="node()"/>
+ </xsl:element>
</xsl:for-each>
- </xsl:template>
+ </xsl:element>
+ <xsl:element name="authorgroup">
+ <xsl:for-each select="/rpm-info/author">
+ <xsl:element name="author">
+ <xsl:call-template name="human"><xsl:with-param name="who" select="@worker"/></xsl:call-template>
+ </xsl:element>
+ </xsl:for-each>
+ <xsl:for-each select="/rpm-info/editor">
+ <xsl:element name="editor">
+ <xsl:call-template name="human"><xsl:with-param name="who" select="@worker"/></xsl:call-template>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:element>
+ <xsl:for-each select="/rpm-info/translator">
+ <othercredit class="translator">
+ <xsl:call-template name="human"><xsl:with-param name="who"
+ select="@worker"/></xsl:call-template>
+ </othercredit>
+ </xsl:for-each>
+ <xsl:text disable-output-escaping="yes">&amp;LEGALNOTICE;</xsl:text>
+ <xsl:element name="revhistory">
+ <xsl:for-each select="/rpm-info/changelog/revision[@role != 'rpm']">
+ <xsl:element name="revision">
+ <xsl:element name="revnumber">
+ <xsl:value-of select="@version"/>
+ </xsl:element>
+ <xsl:element name="date">
+ <xsl:value-of select="@date"/>
+ </xsl:element>
+ <xsl:element name="authorinitials">
+ <xsl:value-of select="author/@initials"/>
+ </xsl:element>
+ <xsl:element name="revdescription">
+ <xsl:element name="para">
+ <xsl:value-of select="details"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:include href="templates.xsl"/>
- <xsl:template name="human">
- <surname><xsl:value-of select="@surname"/></surname>
- <firstname><xsl:value-of select="@firstname"/></firstname>
- </xsl:template>
</xsl:stylesheet>
diff --git a/packaging/gnome-desktop.xsl b/packaging/gnome-desktop.xsl
index 02dcdfc..6edba7b 100644
--- a/packaging/gnome-desktop.xsl
+++ b/packaging/gnome-desktop.xsl
@@ -35,24 +35,5 @@ Type=Application
OnlyShowIn=GNOME;
</xsl:template>
- <xsl:template name="get-title">
- <xsl:for-each select="/rpm-info/titles/translation">
- <xsl:choose>
- <xsl:when test="@lang = $lang">
- <xsl:value-of select="title"/>
- </xsl:when>
- </xsl:choose>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template name="get-desc">
- <xsl:for-each select="/rpm-info/titles/translation">
- <xsl:choose>
- <xsl:when test="@lang = $lang">
- <xsl:value-of select="desc"/>
- </xsl:when>
- </xsl:choose>
- </xsl:for-each>
- </xsl:template>
-
+ <xsl:include href="templates.xsl"/>
</xsl:stylesheet>
diff --git a/packaging/kde-desktop.xsl b/packaging/kde-desktop.xsl
index 762c184..ab8c89f 100644
--- a/packaging/kde-desktop.xsl
+++ b/packaging/kde-desktop.xsl
@@ -29,6 +29,6 @@ Keywords=fedora
OnlyShowIn=KDE;
</xsl:template>
-<xsl:template name="get-title"><xsl:for-each select="/rpm-info/titles/translation"><xsl:choose><xsl:when test="@lang = $lang"><xsl:value-of select="title"/></xsl:when></xsl:choose></xsl:for-each></xsl:template>
+<xsl:include href="templates.xsl"/>
</xsl:stylesheet>
diff --git a/packaging/khelpcenter-plugin.xsl b/packaging/khelpcenter-plugin.xsl
index 5381c6a..d9ca581 100644
--- a/packaging/khelpcenter-plugin.xsl
+++ b/packaging/khelpcenter-plugin.xsl
@@ -1,13 +1,12 @@
<!-- Transform rpm-info.xml into a KHelpCenter .desktop File -->
<xsl:stylesheet version="1.0" xml:space="preserve" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:output encoding="UTF-8" indent="no" method="text" omit-xml-declaration="no" standalone="no" version="1.0"/>
+ <xsl:output encoding="UTF-8" indent="no" method="text" omit-xml-declaration="yes" standalone="no" version="1.0"/>
<!-- Note: do not indent this file! Any whitespace here
will be reproduced in the output -->
<xsl:param name="lang" select="'en'" />
<xsl:param name="docbase" select="'example-tutorial'" />
- <xsl:param name="release" select="1"/>
<xsl:template match="/">[Desktop Entry]
DocPath=help:/<xsl:value-of select="$docbase"/>/index.html
@@ -19,14 +18,5 @@ Name=<xsl:value-of select="/rpm-info/titles/translation[@lang='en']/title"/>
X-DOC-Weight=-5000
</xsl:template>
- <xsl:template name="get-title">
- <xsl:for-each select="/rpm-info/titles/translation">
- <xsl:choose>
- <xsl:when test="@lang = $lang">
- <xsl:value-of select="title"/>
- </xsl:when>
- </xsl:choose>
- </xsl:for-each>
- </xsl:template>
-
+<xsl:include href="templates.xsl"/>
</xsl:stylesheet>
diff --git a/packaging/spec.xsl b/packaging/spec.xsl
index 2ce3e3a..6693634 100644
--- a/packaging/spec.xsl
+++ b/packaging/spec.xsl
@@ -46,13 +46,15 @@ Group: Documentation
<xsl:value-of select="desc"/></xsl:if></xsl:for-each>
%prep
-%setup -q -n %{docbase}-${version}
-for in in $RPM_BUILD_DIR/%{docbase}-%{version}/%{docbase}*.xml
+%setup -q -n %{docbase}-%{version}
+for i in $RPM_BUILD_DIR/%{docbase}-%{version}/{%{docbase}*.xml,Makefile}
do
- %{__sed} -i 's;../docs-common;../../docs-common;' "$i"
+ %{__sed} -i 's;../docs-common;../../../docs-common;' "$i"
done
+
%build
+make html
# /bin/rm -r $RPM_BUILD_ROOT
# /usr/bin/install -d -m 0755 $RPM_BUILD_ROOT/%{_datadir}/omf/%{name}
@@ -71,19 +73,15 @@ done
</xsl:for-each>
%changelog
-<xsl:for-each select="/rpm-info/changelog/revision"><xsl:if test="@role='rpm'">* <xsl:value-of select="@date"/> - <xsl:value-of select="author/@wholename"/> &lt;<xsl:value-of select="author/@email"/>&gt; - <xsl:value-of select="@version"/>
+<xsl:for-each select="/rpm-info/changelog/revision"><xsl:if
+ test="@role='rpm'">* <xsl:value-of select="@date"/> - <xsl:call-template
+ name="packager"><xsl:with-param name="who"
+ select="author/@worker"/></xsl:call-template> - <xsl:value-of
+ select="@version"/>-<xsl:value-of select="@release"/>
- <xsl:value-of select="details"/>
+
</xsl:if></xsl:for-each>
</xsl:template>
- <xsl:template name="get-title">
- <xsl:for-each select="/rpm-info/titles/translation">
- <xsl:choose>
- <xsl:when test="@lang = $lang">
- <xsl:value-of select="title"/>
- </xsl:when>
- </xsl:choose>
- </xsl:for-each>
- </xsl:template>
-
+ <xsl:include href="templates.xsl"/>
</xsl:stylesheet>
diff --git a/packaging/templates.xsl b/packaging/templates.xsl
new file mode 100644
index 0000000..811a52d
--- /dev/null
+++ b/packaging/templates.xsl
@@ -0,0 +1,64 @@
+<xsl:stylesheet version="1.0" xml:space="preserve" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+ <xsl:strip-space elements="*"/>
+
+ <!-- Print the translated title of a document for language $lang -->
+ <xsl:template name="get-title">
+ <xsl:for-each select="/rpm-info/titles/translation">
+ <xsl:choose>
+ <xsl:when test="@lang = $lang">
+ <xsl:value-of select="title"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:template>
+
+ <!-- Print the translated description of a document for language $lang -->
+ <xsl:template name="get-desc">
+ <xsl:for-each select="/rpm-info/titles/translation">
+ <xsl:choose>
+ <xsl:when test="@lang = $lang">
+ <xsl:value-of select="desc"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:template>
+
+ <!-- Print a hierarchical entry for a given worker with id $who -->
+ <xsl:template name="human">
+ <xsl:for-each select="/rpm-info/colophon/worker">
+ <xsl:if test="@id = $who">
+ <xsl:element name="surname">
+ <xsl:value-of select="@surname"/>
+ </xsl:element>
+ <xsl:element name="firstname">
+ <xsl:value-of select="@firstname"/>
+ </xsl:element>
+ <xsl:if test="@othername != ''">
+ <xsl:element name="othername">
+ <xsl:value-of select="@othername"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:template>
+
+ <!-- Print a full name for a given worker with id $who -->
+ <!-- DO NOT CHANGE SPACING! -->
+ <xsl:template name="personname"><xsl:for-each
+ select="/rpm-info/colophon/worker"><xsl:if test="@id = $who"><xsl:value-of
+ select="@firstname"/> <xsl:if test="@othername != ''"><xsl:value-of
+ select="@othername"/> </xsl:if><xsl:value-of
+ select="@surname"/></xsl:if></xsl:for-each></xsl:template>
+
+ <!-- Print a full name and email for a given worker with id $who -->
+ <!-- DO NOT CHANGE SPACING! -->
+ <xsl:template name="packager"><xsl:call-template
+ name="personname"><xsl:with-param name="who"
+ select="$who"/></xsl:call-template> &lt;<xsl:for-each
+ select="/rpm-info/colophon/worker"><xsl:if test="@id = $who"><xsl:value-of
+ select="@email"/></xsl:if></xsl:for-each>&gt;</xsl:template>
+
+
+
+</xsl:stylesheet>