diff options
author | Paul W. Frields <stickster@gmail.com> | 2005-12-29 22:37:32 +0000 |
---|---|---|
committer | Paul W. Frields <stickster@gmail.com> | 2005-12-29 22:37:32 +0000 |
commit | e7a55bc0fad50b29b27c5287d75d4e92f9f66798 (patch) | |
tree | 096dbccbe7a0dcedf63a2977c005db522915f97d | |
parent | 01d8b2b7b2df62c91f12369e9c578666438117bf (diff) | |
download | fedora-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.xsl | 126 | ||||
-rw-r--r-- | packaging/gnome-desktop.xsl | 21 | ||||
-rw-r--r-- | packaging/kde-desktop.xsl | 2 | ||||
-rw-r--r-- | packaging/khelpcenter-plugin.xsl | 14 | ||||
-rw-r--r-- | packaging/spec.xsl | 26 | ||||
-rw-r--r-- | packaging/templates.xsl | 64 |
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">&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">&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"/> <<xsl:value-of select="author/@email"/>> - <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> <<xsl:for-each + select="/rpm-info/colophon/worker"><xsl:if test="@id = $who"><xsl:value-of + select="@email"/></xsl:if></xsl:for-each>></xsl:template> + + + +</xsl:stylesheet> |