Files
fsfe-website/fsfe.org/contribute/promotion-materials-archive.xsl
delliott 1a05dee2f6
continuous-integration/drone/push Build is passing
build: use lefthook for pre-commit (#5248)
update docs
update nix-shell to auto install
rework custom pre-commit hooks to integrate better
add dockerfile for lefthook and integrate into drone
add some more hooks for formatting and linting some files

Co-authored-by: Darragh Elliott <me@delliott.net>
Reviewed-on: #5248
Co-authored-by: delliott <delliott@fsfe.org>
Co-committed-by: delliott <delliott@fsfe.org>
2025-08-27 15:22:06 +00:00

261 lines
10 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:import href="../fsfe.xsl"/>
<!-- Automatically created list of content -->
<xsl:template match="toc">
<xsl:element name="div">
<xsl:attribute name="id">toc</xsl:attribute>
<xsl:element name="ul">
<xsl:for-each select="/buildinfo/document/set/item">
<xsl:sort select="@type" order="ascending"/>
<!-- Load variables id, #link, type and year -->
<xsl:variable name="id">
<xsl:value-of select="@id"/>
</xsl:variable>
<xsl:variable name="link" select="concat('#', $id)"/>
<xsl:variable name="type">
<xsl:value-of select="@type"/>
</xsl:variable>
<xsl:variable name="year">
<xsl:value-of select="@year"/>
</xsl:variable>
<xsl:element name="li">
<xsl:text>[</xsl:text>
<xsl:value-of select="$type"/>
<!-- e.g. [dfd] -->
<xsl:text>] </xsl:text>
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="$link"/>
<!-- #id-of-item -->
</xsl:attribute>
<xsl:value-of select="/buildinfo/document/set/info[@id=$id]/name"/>
<!-- name of the item -->
<xsl:text> (</xsl:text>
<xsl:value-of select="$year"/>
<!-- (20xx) -->
<xsl:text>)</xsl:text>
</xsl:element>
<!-- /a -->
</xsl:element>
<!-- /li -->
</xsl:for-each>
</xsl:element>
<!-- /ul -->
</xsl:element>
<!-- /div -->
</xsl:template>
<!-- Fill dynamic content -->
<xsl:template match="dynamic-content">
<xsl:variable name="year">
<xsl:value-of select="@year"/>
</xsl:variable>
<xsl:for-each select="/buildinfo/document/set/item [@year = $year]">
<xsl:sort select="@order" order="ascending"/>
<!-- Full Item -->
<xsl:element name="div">
<xsl:attribute name="class">left break margin-vertical</xsl:attribute>
<!-- Load item variables id and year -->
<xsl:variable name="id">
<xsl:value-of select="@id"/>
</xsl:variable>
<xsl:variable name="type">
<xsl:value-of select="@type"/>
</xsl:variable>
<!-- Name -->
<xsl:element name="p">
<xsl:attribute name="id">
<xsl:value-of select="$id"/>
</xsl:attribute>
<xsl:element name="strong">
<xsl:value-of select="/buildinfo/document/set/info[@id=$id]/name"/>
</xsl:element>
</xsl:element>
<!-- / Name -->
<!-- Image -->
<xsl:for-each select="image">
<!-- <xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="@imglarge" />
</xsl:attribute>
<xsl:attribute name="title">
<xsl:value-of select="/buildinfo/document/set/info[@id=$id]/name" />
</xsl:attribute> -->
<xsl:element name="img">
<xsl:attribute name="class">left grid-30</xsl:attribute>
<xsl:attribute name="src">
<xsl:value-of select="@imgsmall"/>
</xsl:attribute>
</xsl:element>
<!-- /img -->
<!-- </xsl:element> -->
<!-- /a -->
</xsl:for-each>
<!-- /Image -->
<!-- Description -->
<xsl:element name="p">
<xsl:attribute name="class">right grid-70</xsl:attribute>
<xsl:attribute name="style">margin-top:0;</xsl:attribute>
<xsl:copy-of select="/buildinfo/document/set/info[@id=$id]/description"/>
</xsl:element>
<!-- / Description -->
<!-- Details -->
<xsl:element name="p">
<xsl:attribute name="class">right grid-70</xsl:attribute>
<!-- Type -->
<xsl:if test="/buildinfo/document/set/info[@id=$id]/type != ''">
<xsl:element name="strong">
<xsl:call-template name="fsfe-gettext">
<xsl:with-param name="id" select="'stw-type'"/>
</xsl:call-template>
<xsl:text>: </xsl:text>
</xsl:element>
<xsl:copy-of select="/buildinfo/document/set/info[@id=$id]/type"/>
<xsl:element name="br"/>
</xsl:if>
<!-- Size -->
<xsl:if test="/buildinfo/document/set/info[@id=$id]/size != ''">
<xsl:element name="strong">
<xsl:call-template name="fsfe-gettext">
<xsl:with-param name="id" select="'stw-size'"/>
</xsl:call-template>
<xsl:text>: </xsl:text>
</xsl:element>
<xsl:copy-of select="/buildinfo/document/set/info[@id=$id]/size"/>
<xsl:element name="br"/>
</xsl:if>
<!-- Context (e.g Campaign) -->
<xsl:if test="/buildinfo/document/set/info[@id=$id]/context != ''">
<xsl:element name="strong">
<xsl:call-template name="fsfe-gettext">
<xsl:with-param name="id" select="'stw-context'"/>
</xsl:call-template>
<xsl:text>: </xsl:text>
</xsl:element>
<xsl:copy-of select="/buildinfo/document/set/info[@id=$id]/context"/>
<xsl:element name="br"/>
</xsl:if>
<!-- Languages -->
<xsl:if test="/buildinfo/document/set/info[@id=$id]/languages != ''">
<xsl:element name="span">
<!--<xsl:attribute name="style">font-size:0.8em</xsl:attribute>-->
<xsl:element name="abbr">
<!-- mouseover info text -->
<xsl:attribute name="title">
<xsl:call-template name="fsfe-gettext">
<xsl:with-param name="id" select="'stw-languages-tooltip'"/>
</xsl:call-template>
</xsl:attribute>
<xsl:element name="strong">
<!-- Field name -->
<xsl:call-template name="fsfe-gettext">
<xsl:with-param name="id" select="'stw-languages'"/>
</xsl:call-template>
</xsl:element>
<!-- /strong -->
</xsl:element>
<!-- /abbr -->
<xsl:text>: </xsl:text>
<xsl:element name="br"/>
<xsl:copy-of select="/buildinfo/document/set/info[@id=$id]/languages"/>
<!-- Dynamic value of the field -->
</xsl:element>
<!-- /span -->
<xsl:element name="br"/>
</xsl:if>
<!-- License -->
<xsl:if test="/buildinfo/document/set/info[@id=$id]/license != ''">
<xsl:element name="strong">
<xsl:call-template name="fsfe-gettext">
<xsl:with-param name="id" select="'stw-license'"/>
</xsl:call-template>
<xsl:text>: </xsl:text>
</xsl:element>
<xsl:copy-of select="/buildinfo/document/set/info[@id=$id]/license"/>
<xsl:element name="br"/>
</xsl:if>
<!-- Author -->
<xsl:if test="/buildinfo/document/set/info[@id=$id]/author != ''">
<xsl:element name="strong">
<xsl:call-template name="fsfe-gettext">
<xsl:with-param name="id" select="'stw-author'"/>
</xsl:call-template>
<xsl:text>: </xsl:text>
</xsl:element>
<xsl:copy-of select="/buildinfo/document/set/info[@id=$id]/author"/>
<xsl:element name="br"/>
</xsl:if>
<!-- Year -->
<xsl:element name="strong">
<xsl:call-template name="fsfe-gettext">
<xsl:with-param name="id" select="'stw-year'"/>
</xsl:call-template>
<xsl:text>: </xsl:text>
</xsl:element>
<xsl:value-of select="$year"/>
<xsl:element name="br"/>
<!-- SMALLER TEXT -->
<!-- Source -->
<xsl:if test="/buildinfo/document/set/info[@id=$id]/source != ''">
<xsl:element name="span">
<xsl:attribute name="style">font-size:0.8em</xsl:attribute>
<xsl:element name="abbr">
<!-- mouseover info text -->
<xsl:attribute name="title">
<xsl:call-template name="fsfe-gettext">
<xsl:with-param name="id" select="'stw-source-tooltip'"/>
</xsl:call-template>
</xsl:attribute>
<xsl:element name="strong">
<!-- Field name -->
<xsl:call-template name="fsfe-gettext">
<xsl:with-param name="id" select="'stw-source'"/>
</xsl:call-template>
</xsl:element>
<!-- /strong -->
</xsl:element>
<!-- /abbr -->
<xsl:text>: </xsl:text>
<xsl:element name="br"/>
<xsl:copy-of select="/buildinfo/document/set/info[@id=$id]/source"/>
<!-- Dynamic value of the field -->
</xsl:element>
<!-- /span -->
<xsl:element name="br"/>
</xsl:if>
<!-- Printready -->
<xsl:if test="/buildinfo/document/set/info[@id=$id]/printready != ''">
<xsl:element name="span">
<xsl:attribute name="style">font-size:0.8em</xsl:attribute>
<xsl:element name="abbr">
<!-- mouseover info text -->
<xsl:attribute name="title">
<xsl:call-template name="fsfe-gettext">
<xsl:with-param name="id" select="'stw-printready-tooltip'"/>
</xsl:call-template>
</xsl:attribute>
<xsl:element name="strong">
<!-- Field name -->
<xsl:call-template name="fsfe-gettext">
<xsl:with-param name="id" select="'stw-printready'"/>
</xsl:call-template>
</xsl:element>
<!-- /strong -->
</xsl:element>
<!-- /abbr -->
<xsl:text>: </xsl:text>
<xsl:element name="br"/>
<xsl:copy-of select="/buildinfo/document/set/info[@id=$id]/printready"/>
<!-- Dynamic value of the field -->
</xsl:element>
<!-- /span -->
<xsl:element name="br"/>
</xsl:if>
</xsl:element>
<!-- / Details -->
</xsl:element>
<!-- / Full Item -->
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>