From: Antonio Ospite <ao2@ao2.it> Date: Fri, 20 May 2016 09:10:43 +0000 (+0200) Subject: rss_converter_twitter.com.xsl: use direct URLs for links, when possible X-Git-Tag: v0.6~22 X-Git-Url: https://git.ao2.it/tweeper.git/commitdiff_plain/68dbd68eb630fe24eb8ca51756c8d95a44d51205?ds=sidebyside;hp=e6dab4aed3a61e569cb8d8bb2262ebc0d8f20aef rss_converter_twitter.com.xsl: use direct URLs for links, when possible Replace the t.co URLs with the actual location the link was originally meant to point to. --- diff --git a/rss_converter_twitter.com.xsl b/rss_converter_twitter.com.xsl index 1903607..7367dd8 100644 --- a/rss_converter_twitter.com.xsl +++ b/rss_converter_twitter.com.xsl @@ -32,6 +32,52 @@ <xsl:text>https://twitter.com</xsl:text> </xsl:variable> + <!-- Identity transform --> + <xsl:template match="@*|node()"> + <xsl:copy> + <xsl:apply-templates select="@*|node()"/> + </xsl:copy> + </xsl:template> + + <!-- + Anchors to external links provide the direct URL in the + data-expanded-url attribute, so use this in the href attribute too + instead of the default short URL which uses the t.co redirection + service. + + NOTE: when creating an element, attributes must be processed _before_ + adding the contents (either children or a value): + http://stackoverflow.com/questions/21984867/ + --> + <xsl:template match="a[@data-expanded-url]"> + <!-- Prepend and append a white space for aestethic reasons --> + <xsl:text> </xsl:text> + <a> + <xsl:attribute name="href"> + <xsl:value-of select="@data-expanded-url"/> + </xsl:attribute> + <!-- Also strip and … --> + <xsl:value-of select="translate(., ' …', '')"/> + </a> + <xsl:text> </xsl:text> + </xsl:template> + + <!-- + These are links to pic.twitter.com, use the direct link for those + too instead of the t.co redirections. + --> + <xsl:template match="a[@data-pre-embedded='true']"> + <!-- Prepend and append a white space for aestethic reasons --> + <xsl:text> </xsl:text> + <a> + <xsl:attribute name="href"> + <xsl:value-of select="concat('https://', .)"/> + </xsl:attribute> + <xsl:value-of select="concat('https://', .)"/> + </a> + <xsl:text> </xsl:text> + </xsl:template> + <xsl:template match="a[@data-expanded-url]" mode="enclosure"> <xsl:copy-of select="php:function('Tweeper::generateEnclosure', string(./@data-expanded-url))"/> </xsl:template> @@ -69,7 +115,7 @@ <description> <xsl:value-of select="concat($user-name, ': ')"/> <xsl:text disable-output-escaping="yes"><![CDATA[</xsl:text> - <xsl:copy-of select="$item-content/node()"/> + <xsl:apply-templates select="$item-content/node()"/> <xsl:text disable-output-escaping="yes">]]></xsl:text> </description> <xsl:if test="$generate-enclosure = 1">