<?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" type="guide" id="mal_inline">

<info>
  <link type="guide" xref="spec"/>

  <revision version="0.1" date="2009-04-16" status="review"/>

  <credit type="author">
    <name>Shaun McCance</name>
    <email>shaunm@gnome.org</email>
  </credit>
  <copyright>
    <year>2009</year>
    <name>Shaun McCance</name>
  </copyright>

  <include xmlns="http://www.w3.org/2001/XInclude" href="legal.xml"/>

  <desc>Rich semantic elements for marking up inline content.</desc>
</info>

<title>Inline Elements</title>

<synopsis><code mime="application/relax-ng-compact-syntax">
mal_inline = {
  <link xref="mal_inline_app">mal_inline_app</link> * &amp;
  <link xref="mal_inline_cmd">mal_inline_cmd</link> * &amp;
  <link xref="mal_inline_code">mal_inline_code</link> * &amp;
  <link xref="mal_inline_em">mal_inline_em</link> * &amp;
  <link xref="mal_inline_file">mal_inline_file</link> * &amp;
  <link xref="mal_inline_gui">mal_inline_gui</link> * &amp;
  <link xref="mal_inline_guiseq">mal_inline_guiseq</link> * &amp;
  <link xref="mal_inline_input">mal_inline_input</link> * &amp;
  <link xref="mal_inline_key">mal_inline_key</link> * &amp;
  <link xref="mal_inline_keyseq">mal_inline_keyseq</link> * &amp;
  <link xref="mal_inline_link">mal_inline_link</link> * &amp;
  <link xref="mal_inline_media">mal_inline_media</link> * &amp;
  <link xref="mal_inline_output">mal_inline_output</link> * &amp;
  <link xref="mal_inline_span">mal_inline_span</link> * &amp;
  <link xref="mal_inline_sys">mal_inline_sys</link> * &amp;
  <link xref="mal_inline_var">mal_inline_var</link> * &amp;
  element * - (mal:* | local:*) { mal_inline } * &amp;
  text ?
}
</code></synopsis>

<p>Mallard provides a small but rich set of semantic inline elements.
The elements provided are culled from first-hand experience with software
documentation and other document formats.  The inline elements defined in
this specification will serve most software documentation writers' needs
well.</p>

<p>Authors, editors, or other content producers sometimes need to supply
richer information in their documents.  While this information may not
be conveyed by display tools, it may be used for various internal tracking
purposes.  Mallard allows elements to be extended with attributes from
external namespaces.  See <link xref="mal_external"/> for more
information.</p>

<p>Furthermore, Mallard allows elements from external namespaces to be
used in any inline context.  See <link xref="#processing"/> below for
more information.</p>


<!-- BEGIN elements -->
<section id="elements" style="2column">
  <info>
    <title type="link">Inline Elements</title>
  </info>
  <title>Elements</title>
</section>
<!-- END elements -->


<!-- BEGIN processing -->
<section id="processing">
  <info>
    <title type="link">Inline Processing Instructions</title>
  </info>
  <title>Processing Expectations</title>

  <p>Inline elements occur within block elements or other inline elements.
  Mallard never allows block elements within inline elements.  Inline elements
  should never introduce a line break in the rendered output.</p>

  <p>Different inline elements may introduce different styling effects, such
  as font variations, text and background colors, and backgrounds.  Generally,
  if a styling effect is set for a particular element, it is in effect for all
  descendant elements, unless explicitly overridden.</p>

  <p>Mallard allows elements from external namespaces to be used in any inline
  context.  Processing tools may have special behavior for particular elements
  they understand.  Otherwise, an unknown inline element should be processed
  as if it were replaced by its child content.</p>
</section>
<!-- END processing -->

</page>
