Sophie

Sophie

distrib > Fedora > 13 > i386 > media > os > by-pkgid > f806c0f24240b25bde21a53f71766070 > files > 535

erlang-doc-R13B-04.6.fc13.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns:fn="http://www.w3.org/2005/02/xpath-functions">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../../../doc/otp_doc.css" type="text/css">
<title>Erlang -- docb_gen</title>
</head>
<body bgcolor="white" text="#000000" link="#0000ff" vlink="#ff00ff" alink="#ff0000"><div id="container">
<script id="js" type="text/javascript" language="JavaScript" src="../../../../doc/js/flipmenu/flipmenu.js"></script><script id="js2" type="text/javascript" src="../../../../doc/js/erlresolvelinks.js"></script><script language="JavaScript" type="text/javascript">
            <!--            
              function getWinHeight() {
                var myHeight = 0;
                if( typeof( window.innerHeight ) == 'number' ) {
                  //Non-IE
                  myHeight = window.innerHeight;
                } else if( document.documentElement && ( document.documentElement.clientWidth || 
                                                         document.documentElement.clientHeight ) ) {
                  //IE 6+ in 'standards compliant mode'
                  myHeight = document.documentElement.clientHeight;
                } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
                  //IE 4 compatible
                  myHeight = document.body.clientHeight;
                }
                return myHeight;            
              }

              function setscrollpos() {
                var objf=document.getElementById('loadscrollpos');
                 document.getElementById("leftnav").scrollTop = objf.offsetTop - getWinHeight()/2;
              }

              function addEvent(obj, evType, fn){ 
                if (obj.addEventListener){ 
                obj.addEventListener(evType, fn, true); 
                return true; 
              } else if (obj.attachEvent){ 
                var r = obj.attachEvent("on"+evType, fn); 
                return r; 
              } else { 
                return false; 
              } 
             }

             addEvent(window, 'load', setscrollpos);

             //--></script><div id="leftnav"><div class="innertube">
<img alt="Erlang logo" src="../../../../doc/erlang-logo.png"><br><small><a href="users_guide.html">User's Guide</a><br><a href="index.html">Reference Manual</a><br><a href="release_notes.html">Release Notes</a><br><a href="../pdf/docbuilder-0.9.8.7.pdf">PDF</a><br><a href="../../../../doc/index.html">Top</a></small><p><strong>DocBuilder</strong><br><strong>Reference Manual</strong><br><small>Version 0.9.8.7</small></p>
<br><a href="javascript:openAllFlips()">Expand All</a><br><a href="javascript:closeAllFlips()">Contract All</a><p><small><strong>Table of Contents</strong></small></p>
<ul class="flipMenu">
<li title="docbuilder (App)"><a href="docbuilder_app.html">docbuilder (App)
                </a></li>
<li id="loadscrollpos" title="docb_gen " expanded="true">docb_gen<ul>
<li><a href="docb_gen.html">
                  Top of manual page
                </a></li>
<li title="module-1"><a href="docb_gen.html#module-1">module/1</a></li>
<li title="module-2"><a href="docb_gen.html#module-2">module/2</a></li>
<li title="users_guide-1"><a href="docb_gen.html#users_guide-1">users_guide/1</a></li>
<li title="users_guide-2"><a href="docb_gen.html#users_guide-2">users_guide/2</a></li>
</ul>
</li>
<li id="no" title="docb_transform " expanded="false">docb_transform<ul>
<li><a href="docb_transform.html">
                  Top of manual page
                </a></li>
<li title="file-1"><a href="docb_transform.html#file-1">file/1</a></li>
<li title="file-2"><a href="docb_transform.html#file-2">file/2</a></li>
<li title="Module:head-0"><a href="docb_transform.html#Module:head-0">Module:head/0</a></li>
<li title="Module:top-0"><a href="docb_transform.html#Module:top-0">Module:top/0</a></li>
<li title="Module:bottom-0"><a href="docb_transform.html#Module:bottom-0">Module:bottom/0</a></li>
<li title="Module:seealso-1"><a href="docb_transform.html#Module:seealso-1">Module:seealso/1</a></li>
</ul>
</li>
<li id="no" title="docb_xml_check " expanded="false">docb_xml_check<ul>
<li><a href="docb_xml_check.html">
                  Top of manual page
                </a></li>
<li title="validate-1"><a href="docb_xml_check.html#validate-1">validate/1</a></li>
</ul>
</li>
</ul>
</div></div>
<div id="content">
<div class="innertube">
<!-- refpage --><center><h1>docb_gen</h1></center>
  
  <h3>MODULE</h3>
<div class="REFBODY">docb_gen</div>
  <h3>MODULE SUMMARY</h3>
<div class="REFBODY">Generate XML from EDoc comments in Erlang source code.
  </div>

  <h3>DESCRIPTION</h3>
<div class="REFBODY"><p>
    <p><span class="code">docb_gen</span> contains functions for generating XML
      documentation source code according to the <span class="code">erlref</span> or
      <span class="code">chapter</span> DTD from
      <span class="bold_code"><a href="javascript:erlhref('../../../../doc/../','edoc','chapter.html');">EDoc</a></span> comments in Erlang
      source code or an <span class="code">overview.edoc</span> file, using EDoc.</p>
  </p></div>

  <h3>EXPORTS</h3>
    <p><a name="module-1"><span class="bold_code">module(File) -&gt; ok | {error, Reason}</span></a><br><a name="module-2"><span class="bold_code">module(File, Options) -&gt; ok | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
	<div class="REFTYPES">
<span class="bold_code">File = string()</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">Options = [Opt]</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">Opt = {def,Defs} | {includes,Dirs} | {preprocess,Bool}
	  | {sort_functions,Bool}</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">Defs = [{atom(),string()}]</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">Dirs = [string()]</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">Bool = bool()</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">Reason = badfile | {badopt,term()} | term()</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Generates XML documentation source code according to
	  the <span class="code">erlref</span> DTD from EDoc comments <span class="code">File</span>, using
	  the EDoc application.</p>

        <p><span class="code">File</span> is an Erlang source file, given with or without
	  the <span class="code">.erl</span> extension as <span class="code">Name.erl</span> or <span class="code">Name</span>.
	  The resulting XML file is created in the current working
	  directory and named <span class="code">Name.xml</span>.</p>

	<p><span class="code">Options</span> is a list of options, see below.</p>

	<p>Returns <span class="code">ok</span> if successful, and an error tuple
	  otherwise.</p>
      </p></div>

    <p><a name="users_guide-1"><span class="bold_code">users_guide(File) -&gt; ok | {error, Reason}</span></a><br><a name="users_guide-2"><span class="bold_code">users_guide(File, Options) -&gt; ok | {error, Reason}</span></a><br></p>
<div class="REFBODY">
<p>Types:</p>
	<div class="REFTYPES">
<span class="bold_code">File -- see module/1,2</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">Options -- see module/1,2</span><br>
</div>
	<div class="REFTYPES">
<span class="bold_code">Reason -- see module/1,2</span><br>
</div>
      </div>
<div class="REFBODY"><p>
        <p>Like <span class="code">module/1,2</span> but generates XML source code
	  according to the <span class="code">chapter</span> DTD from an
	  <span class="code">overview.edoc</span> or similar file.</p>

	<p>The resulting file is named <span class="code">chapter.xml</span>.</p>
      </p></div>
  

  <h3><a name="id2252619">Options</a></h3>
<div class="REFBODY">
    
    <dl>
      <dt><strong><span class="code">{def, [{Name,Text}]}</span></strong></dt>
      <dd>Specifies EDoc macro definitions. See
	<span class="bold_code"><a href="javascript:erlhref('../../../../doc/../','edoc','edoc.html');">edoc:get_doc/2</a></span>.</dd>

      <dt><strong><span class="code">{includes, [Dir]}</span></strong></dt>
      <dd>Specifies directories where EDoc should search for include
	files. See
	<span class="bold_code"><a href="javascript:erlhref('../../../../doc/../','edoc','edoc.html');">edoc:read_source/2</a></span>.</dd>

      <dt><strong><span class="code">{preprocess, true|false}</span></strong></dt>
      <dd>Specifies if EDoc should read the source file via the Erlang
	preprocessor. Default is <span class="code">false</span>. See
	<span class="bold_code"><a href="javascript:erlhref('../../../../doc/../','edoc','edoc.html');">edoc:read_source/2</a></span>.</dd>

      <dt><strong><span class="code">{sort_functions, true|false}</span></strong></dt>
      <dd>Specifies if the functions in the resulting XML file should
	be sorted alphabetically. Default is <span class="code">true</span>.</dd>
    </dl>
  </div>

  <h3><a name="id2257752">Limitations</a></h3>
<div class="REFBODY">
    
    <p>The mapping from the EDoc XHTML output to valid Erlang/OTP XML
       is not complete. An attempt has been made to cover the most
       commonly used XHTML constructs, but there will still be cases
       where XML generation fails or where the resulting XML is
       inadequate. This is especially true for <span class="code">users_guide/1,2</span>.
    </p>

    <p>Known limitations for some XHTML tags:</p>
    <dl>
      <dt><strong><span class="code">&lt;a&gt;</span></strong></dt>
      <dd>
        <p>All attributes except the first <span class="code">href</span> or <span class="code">name</span>
	  attribute are ignored.</p>
        <p>A <span class="code">href</span> attribute means the <span class="code">&lt;a&gt;</span> tag
	  will be transformed to a <span class="code">&lt;seealso&gt;</span> or
	  <span class="code">&lt;url&gt;</span> tag and an attempt is made to
	  resolve the reference if necessary.</p>

	<p>A <span class="code">name</span> attribute means the <span class="code">&lt;a&gt;</span> tag
	  will be transformed to a <span class="code">&lt;marker&gt;</span> tag.</p>
      </dd>

      <dt><strong><span class="code">&lt;b&gt;, &lt;em&gt;, &lt;pre&gt;</span></strong></dt>
      <dd>Cannot contain other tags in Erlang/OTP XML, content is
	converted to plain text.
      </dd>

      <dt><strong><span class="code">&lt;center&gt;</span></strong></dt>
      <dd>No corresponding Erlang/OTP XML tag, converted to plain
	text.
      </dd>

      <dt><strong><span class="code">&lt;font&gt;</span></strong></dt>
      <dd>No corresponding Erlang/OTP XML tag, converted to plain
	text.
      </dd>

      <dt><strong><span class="code">&lt;h1&gt;, &lt;h2&gt;, ...</span></strong></dt>
      <dd>There is no tag corresponding to a header in Erlang/OTP XML,
	so these are converted to plain text instead, with
	the exception of <span class="code">&lt;h3&gt;</span> and
	<span class="code">&lt;h4&gt;</span> tags within <span class="code">overview.edoc</span>, see
	part about "<span class="code">chapter</span> DTD" below.
      </dd>

      <dt><strong><span class="code">&lt;sup&gt;</span></strong></dt>
      <dd>There is no tag corresponding to superscript in Erlang/OTP
	XML, so this is converted to plain text within brackets "(..)".
      </dd>

      <dt><strong>References</strong></dt>
      <dd>The markers automatically inserted by EDoc at each heading
	and function will override the markers automatically inserted
	by DocBuilder, with the unfortunate result that the links in
	the left-hand frame of the User's Guide will not work, and
	also that cross referencing a function in a module the usual
	Erlang/OTP way
	"<span class="code">&lt;seealso marker="edoc:edoc#run/3...&gt;</span>" does
	not work. (But
	"<span class="code">&lt;seealso marker="edoc:edoc#run-3...&gt;</span>" does.)
      </dd>
    </dl>

    <p><strong>erlref DTD</strong></p>
    <dl>
      <dt><strong>Tables</strong></dt>
      <dd>Tables are not allowed. The contents of a table is
	converted to text instead, each row corresponding to one line
	of text.
      </dd>
    </dl>

    <p><strong>chapter DTD</strong></p>
    <dl>
      <dt><strong>Sections</strong></dt>
      <dd>Only two levels of sections. <span class="code">&lt;h3&gt;</span>
	(equivalent to EDoc headings "<span class="code">== Heading ==</span>") is
	interpreted as start of top-level section, or if there is no
	<span class="code">&lt;h3&gt;</span> tag, the entire document is made into
	one top-level section. <span class="code">&lt;h4&gt;</span> (equivalent to
	EDoc sub-headings ("<span class="code">=== Sub-heading ===</span>") is
	interpreted as start of second-level section.
      </dd>

      <dt><strong>Tables</strong></dt>
      <dd>Tables without borders are converted to text in the same
	manner as for the <span class="code">erlref</span> DTD.
      </dd>
    </dl>
  </div>

</div>
<div class="footer">
<hr>
<p>Copyright © 1997-2010 Ericsson AB. All Rights Reserved.</p>
</div>
</div>
</div></body>
</html>