diff options
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/haddock.xml | 70 | 
1 files changed, 62 insertions, 8 deletions
| diff --git a/doc/haddock.xml b/doc/haddock.xml index b5331c26..7c1ca91c 100644 --- a/doc/haddock.xml +++ b/doc/haddock.xml @@ -100,7 +100,7 @@  	<para>We might want documentation in multiple formats - online  	and printed, for example.  Haddock comes with HTML, LaTeX,    and Hoogle backends, and it is structured in such a way that adding new -	back-ends is straightforward.</para> +	backends is straightforward.</para>        </listitem>      </itemizedlist> @@ -1229,17 +1229,71 @@ f  :: Int      -- ^ The 'Int' argument      <section>        <title>The module description</title> -      <para>A module may contain a documentation comment before the -      module header, in which case this comment is interpreted by -      Haddock as an overall description of the module itself, and -      placed in a section entitled <quote>Description</quote> in the -      documentation for the module.  For example:</para> +      <para>A module itself may be documented with multiple fields +      that can then be displayed by the backend. In particular, the +      HTML backend displays all the fields it currently knows +      about. We first show the most complete module documentation +      example and then talk about the fields.</para>  <programlisting> --- | This is the description for module "Foo" -module Foo where +{-| +Module      : W +Description : Short description +Copyright   : (c) Some Guy, 2013 +                  Someone Else, 2014 +License     : GPL-3 +Maintainer  : sample@email.com +Stability   : experimental +Portability : POSIX + +Here is a longer description of this module, containing some +commentary with @some markup@. +-} +module W where  ...  </programlisting> + +      <para>The <quote>Module</quote> field should be clear. It +      currently doesn't affect the output of any of the backends but +      you might want to include it for human information or for any +      other tools that might be parsing these comments without the +      help of GHC.</para> + +      <para>The <quote>Description</quote> field accepts some short text +      which outlines the general purpose of the module. If you're +      generating HTML, it will show up next to the module link in +      the module index.</para> + +      <para>The <quote>Copyright</quote>, <quote>License</quote>, +      <quote>Maintainer</quote> and <quote>Stability</quote> fields +      should be obvious. An alternative spelling for the +      <quote>License</quote> field is accepted as +      <quote>Licence</quote> but the output will always prefer +      <quote>License</quote>.</para> + +      <para>The <quote>Portability</quote> field has seen varied use +      by different library authors. Some people put down things like +      operating system constraints there while others put down which +      GHC extensions used. Note that you might want to consider using +      the <quote>show-extensions</quote> module flag for the +      latter.</para> + +      <para>Finally, a module may contain a documentation comment +      before the module header, in which case this comment is +      interpreted by Haddock as an overall description of the module +      itself, and placed in a section entitled +      <quote>Description</quote> in the documentation for the module. +      All usual Haddock markup is valid in this comment.</para> + +      <para>All fields are optional but they must be in order if they +      do appear. Multi-line fields are accepted but the consecutive +      lines have to start indented more than their label. If your +      label is indented one space as is often the case with +      <quote>--</quote> syntax, the consecutive lines have to start at +      two spaces at the very least. Please note that we do not enforce +      the format for any of the fields and the established formats are +      just a convention.</para> +      </section>      <section> | 
