fsfe-website/build/xslt/sharebuttons.xsl
Darragh Elliott 948cfa52ed
Some checks failed
continuous-integration/drone/pr Build is failing
fix: use fileurl for several links, fixing them
2024-09-18 18:40:06 +01:00

189 lines
7.7 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:str="http://exslt.org/strings">
<xsl:template name="sharebuttons">
<!-- normalized article title -->
<xsl:variable name="share-title">
<xsl:value-of select="normalize-space(head/title)" />
</xsl:variable>
<!-- article URL -->
<xsl:variable name="share-url">
<xsl:text>https://fsfe.org</xsl:text>
<xsl:value-of select="/buildinfo/@url"/>
<xsl:text>.html</xsl:text>
</xsl:variable>
<xsl:element name="form"> <!-- div containing all buttons -->
<xsl:attribute name="action">/share</xsl:attribute>
<xsl:attribute name="method">GET</xsl:attribute>
<xsl:attribute name="class">share-buttons</xsl:attribute>
<xsl:attribute name="target">_blank</xsl:attribute>
<xsl:attribute name="onkeypress">return event.keyCode != 13;</xsl:attribute>
<h3>
<xsl:call-template name="fsfe-gettext">
<xsl:with-param name="id" select="'share-head'" />
</xsl:call-template>
</h3>
<xsl:element name="input">
<xsl:attribute name="type">radio</xsl:attribute>
<xsl:attribute name="name">popup</xsl:attribute>
<xsl:attribute name="id">no-share-popup</xsl:attribute>
</xsl:element>
<xsl:element name="input" >
<xsl:attribute name="type">hidden</xsl:attribute>
<xsl:attribute name="name">ref</xsl:attribute>
<xsl:attribute name="value">bottom</xsl:attribute>
</xsl:element>
<xsl:element name="input" >
<xsl:attribute name="type">hidden</xsl:attribute>
<xsl:attribute name="name">url</xsl:attribute>
<xsl:attribute name="value"><xsl:value-of select="$share-url"/></xsl:attribute>
</xsl:element>
<xsl:element name="input" >
<xsl:attribute name="type">hidden</xsl:attribute>
<xsl:attribute name="name">title</xsl:attribute>
<xsl:attribute name="value"><xsl:value-of select="$share-title"/></xsl:attribute>
</xsl:element>
<xsl:element name="input" >
<xsl:attribute name="class">n</xsl:attribute>
<xsl:attribute name="name">website</xsl:attribute>
<xsl:attribute name="placeholder">Please do not put anything here</xsl:attribute>
</xsl:element>
<!-- Fediverse -->
<xsl:element name="label">
<xsl:attribute name="class">button share-fediverse</xsl:attribute>
<xsl:attribute name="title">
<xsl:call-template name="fsfe-gettext">
<xsl:with-param name="id" select="'share-page'" />
</xsl:call-template>
<xsl:text> Fediverse</xsl:text>
</xsl:attribute>
<xsl:attribute name="for">fediverse-share</xsl:attribute>
<xsl:text>Fediverse</xsl:text>
</xsl:element>
<xsl:element name="input">
<xsl:attribute name="type">radio</xsl:attribute>
<xsl:attribute name="name">popup</xsl:attribute>
<xsl:attribute name="id">fediverse-share</xsl:attribute>
</xsl:element>
<xsl:element name="span">
<xsl:attribute name="class">popup fediverse</xsl:attribute>
<xsl:element name="label"><xsl:attribute name="for">no-share-popup</xsl:attribute></xsl:element>
<xsl:element name="input">
<xsl:attribute name="type">text</xsl:attribute>
<xsl:attribute name="name">fediversepod</xsl:attribute>
<xsl:attribute name="value"></xsl:attribute>
<xsl:attribute name="placeholder">Fediverse URL (fediverse.tld)</xsl:attribute>
</xsl:element>
<xsl:element name="button">
<xsl:attribute name="type">submit</xsl:attribute>
<xsl:attribute name="name">service</xsl:attribute>
<xsl:attribute name="value">fediverse</xsl:attribute>
<xsl:text>OK</xsl:text>
</xsl:element>
</xsl:element>
<!-- Reddit -->
<xsl:element name="button">
<xsl:attribute name="type">submit</xsl:attribute>
<xsl:attribute name="name">service</xsl:attribute>
<xsl:attribute name="value">reddit</xsl:attribute>
<xsl:attribute name="class">button share-reddit</xsl:attribute>
<xsl:attribute name="title">
<xsl:call-template name="fsfe-gettext">
<xsl:with-param name="id" select="'share-page'" />
</xsl:call-template>
<xsl:text> Reddit</xsl:text>
</xsl:attribute>
<xsl:text>Reddit</xsl:text>
</xsl:element>
<!-- Hacker News -->
<xsl:element name="button">
<xsl:attribute name="type">submit</xsl:attribute>
<xsl:attribute name="name">service</xsl:attribute>
<xsl:attribute name="value">hnews</xsl:attribute>
<xsl:attribute name="class">button share-hnews</xsl:attribute>
<xsl:attribute name="title">
<xsl:call-template name="fsfe-gettext">
<xsl:with-param name="id" select="'share-page'" />
</xsl:call-template>
<xsl:text> Hacker News</xsl:text>
</xsl:attribute>
<xsl:text>Hacker News</xsl:text>
</xsl:element>
<!-- e-mail -->
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="concat('mailto:?subject=', str:encode-uri($share-title, 'true', 'UTF-8'), '&amp;body=', str:encode-uri($extract, 'true', 'UTF-8'), '%0A%0A', str:encode-uri($share-url, 'true', 'UTF-8'))"/>
</xsl:attribute>
<xsl:attribute name="class">button share-mail</xsl:attribute>
<xsl:text>E-Mail</xsl:text>
</xsl:element>
<!-- Twitter -->
<xsl:element name="button">
<xsl:attribute name="type">submit</xsl:attribute>
<xsl:attribute name="name">service</xsl:attribute>
<xsl:attribute name="value">twitter</xsl:attribute>
<xsl:attribute name="class">button share-twitter</xsl:attribute>
<xsl:attribute name="title">
<xsl:call-template name="fsfe-gettext">
<xsl:with-param name="id" select="'share-page'" />
</xsl:call-template>
<xsl:text> Twitter</xsl:text>
</xsl:attribute>
<xsl:text>Twitter</xsl:text>
</xsl:element>
<!-- Facebook -->
<xsl:element name="button">
<xsl:attribute name="type">submit</xsl:attribute>
<xsl:attribute name="name">service</xsl:attribute>
<xsl:attribute name="value">facebook</xsl:attribute>
<xsl:attribute name="class">button share-facebook</xsl:attribute>
<xsl:attribute name="title">
<xsl:call-template name="fsfe-gettext">
<xsl:with-param name="id" select="'share-page'" />
</xsl:call-template>
<xsl:text> Facebook</xsl:text>
</xsl:attribute>
<xsl:text>Facebook</xsl:text>
</xsl:element>
<!-- Support -->
<xsl:element name="button">
<xsl:attribute name="type">submit</xsl:attribute>
<xsl:attribute name="name">service</xsl:attribute>
<xsl:attribute name="value">support</xsl:attribute>
<xsl:attribute name="class">button share-support</xsl:attribute>
<xsl:attribute name="title">
<xsl:call-template name="fsfe-gettext">
<xsl:with-param name="id" select="'support'" />
</xsl:call-template>
</xsl:attribute>
<xsl:text>Support!</xsl:text>
</xsl:element>
<p><em>
<xsl:call-template name="fsfe-gettext">
<xsl:with-param name="id" select="'share-warning'" />
</xsl:call-template>
<xsl:text> </xsl:text>
<a href="https://wiki.fsfe.org/Advocacy/ProprietaryWebServices">
<xsl:call-template name="fsfe-gettext">
<xsl:with-param name="id" select="'learn-more'" />
</xsl:call-template>
</a>.</em></p>
</xsl:element> <!-- /form Social network share buttons -->
</xsl:template>
</xsl:stylesheet>