<?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" style="xslt-template" id="mal.link.content">
 <info>
  <link type="guide" xref="mal-link" group="templates"/>
  <link type="guide" xref="templates" group="mal"/>
  <desc>Output the content for a <sys>link</sys> element.</desc>
  <revision version="3.18" date="2015-06-06" status="final"/>
 </info>
 <title>mal.link.content</title>
 <synopsis>
  <title>Parameters</title>
  <terms>
   <item>
    <title><code>$node</code></title>
    <p>The <sys>link</sys> or other element creating the link.</p>
   </item>
   <item>
    <title><code>$action</code></title>
    <p>The <sys>action</sys> attribute of <code>$node</code>.</p>
   </item>
   <item>
    <title><code>$xref</code></title>
    <p>The <sys>xref</sys> attribute of <code>$node</code>.</p>
   </item>
   <item>
    <title><code>$href</code></title>
    <p>The <sys>href</sys> attribute of <code>$node</code>.</p>
   </item>
   <item>
    <title><code>$role</code></title>
    <p>A space-separated list of link roles, used to select the appropriate title.</p>
   </item>
   <item>
    <title><code>$info</code></title>
    <p>An <sys>info</sys> element that overrides the info found in a target node.</p>
   </item>
  </terms>
 </synopsis>
 <p>This template outputs the automatic text content for a link.  It should only
 be used for links that do not have specified content.  If <code>$xref</code> points to a
 valid page or section, the appropriate link title from that page or section
 will be selected, based on the list of roles in <code>$role</code>. The first role for
 which a matching link title is found will be used. Otherwise, the link title
 without a role is used, or the primary title. The <code xref="mal.link.content.mode">mal.link.content.mode</code>
 mode is applied to the contents of that title.  Stylesheets using this template
 should map that mode to inline processing.</p>
 <p>For inline links, <code>$node</code> should be the <sys>link</sys> element. For links from a
 <sys>links</sys> element, <code>$node</code> should be that <sys>links</sys> element, or the containing
 element when the <sys>links</sys> element is implicit.</p>
 <p>This template first calls <code xref="mal.link.content.custom">mal.link.content.custom</code> with the same arguments.
 If that template returns a non-empty result, it is used as the return value,
 overriding any other behavior of this template.</p>
 <p>If only <code>$href</code> is provided, that URL is used as the text content.  If a target
 page or section cannot be found, <code>$xref</code> is used as the text content.</p>
 <p>Normally, this template automatically looks up information from a targret node
 according to the <code>$xref</code> parameter. However, if the <code>$info</code> parameter is given,
 information in that node set is used instead. This is useful for external info
 links, where the target information is provided as child elements to the <sys>link</sys>
 element.</p>
 <list style="compact">
  <title>Calls Parameters</title>
  <item>
   <p><link xref="mal.cache"/></p>
  </item>
  <item>
   <p><link xref="mal.cache.file"/></p>
  </item>
  <item>
   <p><link xref="mal.link.default_root"/></p>
  </item>
  <item>
   <p><link xref="mal.link.extension"/></p>
  </item>
  <item>
   <p><link xref="mal.link.prefix"/></p>
  </item>
 </list>
 <list style="compact">
  <title>Calls Keys</title>
  <item>
   <p><link xref="mal.cache.key"/></p>
  </item>
 </list>
 <list style="compact">
  <title>Calls Templates</title>
  <item>
   <p><link xref="mal.link.content.custom"/></p>
  </item>
  <item>
   <p><link xref="mal.link.xref.linkid"/></p>
  </item>
 </list>
 <list style="compact">
  <title>Calls Modes</title>
  <item>
   <p><link xref="mal.link.content.mode"/></p>
  </item>
 </list>
</page>
