<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="/pool/xslt_ht.xslt" type="application/xml"?>
<xsl:stylesheet
  xmlns = "http://www.w3.org/1999/xhtml"
  xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"
  xmlns:d = "http://herbaer.de/xmlns/20051201/doc"
  xmlns:ht = "http://www.w3.org/1999/xhtml"
  xmlns:xl = "http://www.w3.org/1999/xlink"
  version = "1.0"
  exclude-result-prefixes = "d ht xl"
>

<d:info xmlns="http://herbaer.de/xmlns/20051201/doc">
  <title>xhtml_setlinks.xslt</title>
  <subtitle>link(stylesheet), link(icon)</subtitle>
  <date>2017-04-18</date>
  <author>
    <personname>
      <firstname>Herbert</firstname>
      <surname>Schiemann</surname>
    </personname>
    <email>h.schiemann@herbaer.de</email>
  </author>
</d:info>

<d:para>
Wert <d:code>@href</d:code> zu <d:code>@rel = "stylesheet"</d:code>
</d:para>
<xsl:param name="p_href_css" select="'/style/embedded.css'"/>

<d:para>
Wert <d:code>@href</d:code> zu <d:code>@rel = "icon"</d:code>
</d:para>
<xsl:param name="p_href_icon" select="'/style/shortcut_icon.png'"/>

<d:para>Wurzel</d:para>
<xsl:template match="/">
  <xsl:apply-templates select="comment() | processing-instruction() | *"/>
</xsl:template>

<d:para>
Der Rumpf wird im Block kopiert.
</d:para>
<xsl:template match="ht:body">
  <xsl:copy-of select="."/>
</xsl:template>

<d:para>
Im Kopf werden die Verweise auf CSS-Regeln und das Icon eingefügt.
Für Handy-Nutzer wird auch ein Element meta[@name="viewport"] eingefügt.
</d:para>
<xsl:template match="ht:head">
  <xsl:copy>
    <xsl:if
      test = "
        string-length ($p_href_css) &gt; 0
        and not (ht:link[@rel='stylesheet'])
        and not (ht:style)
      "
    >
      <link href="{$p_href_css}" rel="stylesheet"/>
    </xsl:if>
    <xsl:if
      test = "string-length ($p_href_icon) &gt; 0 and not (ht:link[@rel='icon'])"
    >
      <link href="{$p_href_icon}" rel="icon"/>
    </xsl:if>
    <xsl:if test="not (ht:meta[@name = 'viewport'])">
      <meta name="viewport" content="width=device-width, initial-scale=1"/>
    </xsl:if>
    <xsl:copy-of select="*"/>
  </xsl:copy>
</xsl:template>

<d:para>Andere Elemente werden hohl kopiert.</d:para>
<xsl:template match="*">
  <xsl:copy>
    <xsl:apply-templates select="@*|*|text()"/>
  </xsl:copy>
</xsl:template>

<d:para>Attribute, Kommentare und Verarbeitungsanweisungen werden kopiert</d:para>
<xsl:template match="@* | comment() | processing-instruction()">
  <xsl:copy-of select="."/>
</xsl:template>

</xsl:stylesheet>
