<?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" style="xslt-template" id="html.output">
 <info>
  <link type="guide" xref="html" group="templates"/>
  <link type="guide" xref="templates" group="html"/>
  <desc>Create an HTML output file.</desc>
  <revision version="1.0" date="2010-05-26" status="final"/>
 </info>
 <title>html.output</title>
 <synopsis>
  <title>Parameters</title>
  <terms>
   <item>
    <title><code>$node</code></title>
    <p>The node to create an output file for.</p>
   </item>
   <item>
    <title><code>$href</code></title>
    <p>The output filename.</p>
   </item>
  </terms>
 </synopsis>
 <p>This template creates an HTML output file for the source element <code>$node</code>. It
 uses <sys>exsl:document</sys> to output the file, and calls <code xref="html.page">html.page</code> with the
 <code>$node</code> parameter to output the actual HTML contents.</p>
 <p>If <code>$href</code> is not provided, this template will attempt to generate a base
 filename and append <code xref="html.extension">html.extension</code> to it. The base filename is generated
 as follows:</p>
 <list>
  <item>
   <p>If an <sys>xml:id</sys> attribute is present, it is used.</p>
  </item>
  <item>
   <p>Otherwise, if an <sys>id</sys> attribute is present, it is used.</p>
  </item>
  <item>
   <p>Otherwise, if <code>$node</code> is the root element, <code xref="html.basename">html.basename</code> is used.</p>
  </item>
  <item>
   <p>Otherwise, <sys>generate-id()</sys> is called.</p>
  </item>
 </list>
 <p>This template prepends <code xref="html.output.prefix">html.output.prefix</code> to the value of <code>$href</code> when
 it calls <sys>exsl:document</sys>, regardless of whether <code>$href</code> was passed in or
 generated automatically.</p>
 <p>After calling <sys>exsl:document</sys>, this template calls the <code xref="html.output.after.mode">html.output.after.mode</code>
 mode on <code>$node</code>. Importing stylesheets that create multiple output files can
 use this to process output files without blocking earlier output.</p>
 <list style="compact">
  <title>Calls Parameters</title>
  <item>
   <p><link xref="html.basename"/></p>
  </item>
  <item>
   <p><link xref="html.extension"/></p>
  </item>
  <item>
   <p><link xref="html.xhtml"/></p>
  </item>
 </list>
 <list style="compact">
  <title>Calls Templates</title>
  <item>
   <p><link xref="html.page"/></p>
  </item>
 </list>
 <list style="compact">
  <title>Calls Modes</title>
  <item>
   <p><link xref="html.output.after.mode"/></p>
  </item>
 </list>
</page>
