openstack-planet/common/atom.xml.xslt

81 lines
2.6 KiB
HTML

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:access="http://www.bloglines.com/about/specs/fac-1.0"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:indexing="urn:atom-extension:indexing"
xmlns:planet="http://planet.intertwingly.net/"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns="http://www.w3.org/1999/xhtml"
exclude-result-prefixes="planet xhtml">
<!-- strip planet elements and attributes -->
<xsl:template match="planet:*|@planet:*"/>
<!-- strip obsolete link relationships -->
<xsl:template match="atom:link[@rel='service.edit']"/>
<xsl:template match="atom:link[@rel='service.post']"/>
<xsl:template match="atom:link[@rel='service.feed']"/>
<!-- Feedburner detritus -->
<xsl:template match="xhtml:div[@class='feedflare']"/>
<!-- Strip site meter -->
<xsl:template match="xhtml:div[comment()[. = ' Site Meter ']]"/>
<!-- add Google/LiveJournal-esque and Bloglines noindex directive -->
<xsl:template match="atom:feed">
<xsl:copy>
<xsl:attribute name="indexing:index">no</xsl:attribute>
<xsl:apply-templates select="@*"/>
<access:restriction relationship="deny"/>
<xsl:apply-templates select="node()"/>
<xsl:text>&#10;</xsl:text>
</xsl:copy>
</xsl:template>
<!-- popular customization: add planet name to each entry title
<xsl:template match="atom:entry/atom:title">
<xsl:text>&#10; </xsl:text>
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:value-of select="../atom:source/planet:name"/>
<xsl:text>: </xsl:text>
<xsl:apply-templates select="node()"/>
</xsl:copy>
</xsl:template>
-->
<!-- indent atom elements -->
<xsl:template match="atom:*">
<!-- double space before atom:entries -->
<xsl:if test="self::atom:entry">
<xsl:text>&#10;</xsl:text>
</xsl:if>
<!-- indent start tag -->
<xsl:text>&#10;</xsl:text>
<xsl:for-each select="ancestor::*">
<xsl:text> </xsl:text>
</xsl:for-each>
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
<!-- indent end tag if there are element children -->
<xsl:if test="*">
<xsl:text>&#10;</xsl:text>
<xsl:for-each select="ancestor::*">
<xsl:text> </xsl:text>
</xsl:for-each>
</xsl:if>
</xsl:copy>
</xsl:template>
<!-- pass through everything else -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>