X-Git-Url: https://git.ao2.it/tweeper.git/blobdiff_plain/38c2ac42ae048844424fd579b5c9ee6ec28c0bf8..2eb4e1d36fcc9c6a251b3ec33ef46920d18cb7f8:/rss_converter_dilbert.com.xsl?ds=inline diff --git a/rss_converter_dilbert.com.xsl b/rss_converter_dilbert.com.xsl index 82c33f2..b6d1975 100644 --- a/rss_converter_dilbert.com.xsl +++ b/rss_converter_dilbert.com.xsl @@ -34,55 +34,81 @@ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl" - xsl:extension-element-prefixes="php"> + xsl:extension-element-prefixes="php" + exclude-result-prefixes="php"> <xsl:output method="xml" indent="yes"/> - <xsl:variable name="BaseURL" select="concat('http://', //meta[@property='og:site_name']/@content)"/> + <xsl:variable name="BaseURL" select="//meta[@property='og:url']/@content"/> - <xsl:template match="//a[@id='strip_zoom']"> - <xsl:variable name="picture-id" select="substring-after(./@href, '#')"/> - <xsl:variable name="picture-element" select="//div[@id=$picture-id]/img"/> - <xsl:variable name="picture-print-url" select="php:functionString('str_replace', 'zoom', 'print', $picture-element/@src)"/> + <xsl:template match="//section[@class='comic-item']"> + <xsl:variable name="item-permalink" select=".//a[@class='img-comic-link']/@href"/> + <xsl:variable name="picture-url" select=".//img[@class='img-responsive img-comic']/@src"/> + <xsl:variable name="picture-title" select=".//img[@class='img-responsive img-comic']/@alt"/> <item> <title> - <xsl:value-of select="$picture-element/@title"/> + <xsl:variable name="title-length" select="140"/> + <!-- ellipsize, inspired from http://stackoverflow.com/questions/13622338 --> + <xsl:choose> + <xsl:when test="string-length($picture-title) > $title-length"> + <xsl:variable name="truncated-length" select="$title-length - 3"/> + <xsl:value-of select="substring($picture-title, 1, $truncated-length)"/> + <xsl:text>...</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$picture-title"/> + </xsl:otherwise> + </xsl:choose> </title> <link> - <xsl:value-of select="concat($BaseURL, $picture-element/@src)"/> + <xsl:value-of select="$item-permalink"/> </link> + <guid> + <xsl:value-of select="$item-permalink"/> + </guid> <pubDate> - <xsl:value-of select="php:functionString('Tweeper::str_to_gmdate', substring-after($picture-id, 'strip_enlarged_'))"/> + <xsl:value-of select="php:functionString('Tweeper::strToRssDate', normalize-space(.//date))"/> </pubDate> <description> <xsl:text disable-output-escaping="yes"><![CDATA[</xsl:text> - <img src="{$picture-print-url}" /> + <img src="{$picture-url}" alt="{$picture-title}"/> <xsl:text disable-output-escaping="yes">]]></xsl:text> </description> + <xsl:if test="$generate-enclosure = 1"> + <xsl:copy-of select="php:functionString('Tweeper::generateEnclosure', $picture-url)"/> + </xsl:if> </item> </xsl:template> <xsl:template match="/"> + <xsl:variable name="channel-title" select="//meta[@property='og:title']/@content"/> + <xsl:variable name="channel-link" select="$BaseURL"/> <rss version="2.0"> <xsl:attribute name="xml:base"><xsl:value-of select="$BaseURL" /></xsl:attribute> <channel> <generator>Tweeper</generator> <title> - <xsl:value-of select="//meta[@property='og:title']/@content"/> + <xsl:value-of select="$channel-title"/> </title> <link> - <xsl:value-of select="$BaseURL"/> + <xsl:value-of select="$channel-link"/> </link> <description> <xsl:value-of select="//meta[@property='og:description']/@content"/> </description> <image> + <title> + <xsl:value-of select="$channel-title"/> + </title> + <link> + <xsl:value-of select="$channel-link"/> + </link> <url> - <xsl:value-of select="//meta[@property='og:image']/@content"/> + <xsl:value-of select="concat($BaseURL, //img[@alt='Dilbert logo']/@src)"/> </url> </image> - <xsl:apply-templates select="//a[@id='strip_zoom']"/> + <xsl:apply-templates select="//section[@class='comic-item']"/> </channel> </rss> </xsl:template>