:- module(document).
:- export htmlify_string / 2.
:- export comment_to_html / 2.
:- export eci_to_html / 3.
:- export object_spec_to_filename / 2.
:- export ecis_to_htmls / 4.
:- export ecis_to_htmls / 3.
:- export ecis_to_htmls / 0.
:- export icompile_body / 3.
:- export icompile_body / 2.
:- export icompile / 2.
:- export icompile / 1.
:- tool(icompile / 2,icompile_body / 3).
:- tool(icompile / 1,icompile_body / 2).
:- comment(icompile_body / 3, hidden).
:- comment(icompile_body / 2, hidden).
:- comment(summary, "Tools for generating documentation from ECLiPSe sources").
:- comment(date, "$Date: 2008/03/19 01:59:01 $").
:- comment(copyright, "Cisco Systems, Inc").
:- comment(author, "Kish Shen and Joachim Schimpf, IC-Parc").
:- comment(status, stable).
:- comment(desc, html("\n    This library contains the tools necessary to generate documentation\n    from ECLiPSe sources. It complements the file-to-file compiler\n    library(fcompile) as follows:\n    <PRE>\n    xyz.ecl  ---fcompile--&gt;  xyz.eco\n    xyz.ecl  ---icompile--&gt;  xyz.eci  ---eci_to_html--&gt;  xyz/...html\n    </PRE>\n    ")).
:- comment(eci_to_html / 3, [summary : "Create HTML documentation from one .eci file", args : ["EciFile" : "String", "HtmlTopDir" : "String", "LinkBack" : "HTML string (may be empty)"], amode : eci_to_html(++, ++, ++), see_also : [ecis_to_htmls / 3, ecis_to_htmls / 0, comment / 2], desc : html("\n        This predicate processes one ECLiPSe interface information file\n\tEciFile (usually with .eci Extension) and generates .html\n\tfiles. The .html files are placed in a subdirectory in HtmlTopDir\n\twith the same name as EciFile but without the extension. This\n\tdirectory is created if it does not exist. The generated files are\n\tindex.html, containing a summary description of the library, plus\n\tone file for each predicate that was commented using a comment/2\n\tdirective in the source. The LinkBack argument should contain a\n\thyperlink in HTML format. This will appear at the top of the\n\tgenerated pages and should usually point back to a parent page.")]).
:- comment(ecis_to_htmls / 0, [summary : "Generate the HTML documentation tree for all ECLiPSe libraries", desc : html("Generate the HTML documentation tree for all ECLiPSe libraries.\n    It takes into account all .eci files in the library path and generates\n    an HTML documentation tree in <ECLiPSe installation directory>/doc/bips.\n    "), see_also : [ecis_to_htmls / 4]]).
:- comment(ecis_to_htmls / 3, [summary : "Generate an HTML documentation tree for the given library directories", args : ["LibDirs" : "A list of directory path names", "HtmlTopDir" : "A directory path name", "LinkBack" : "HTML string (may be empty)"], amode : ecis_to_htmls(++, ++, ++), desc : html("See ecis_to_htmls/4 for details"), see_also : [ecis_to_htmls / 4, ecis_to_htmls / 0]]).
:- comment(ecis_to_htmls / 4, [summary : "Generate an HTML documentation tree for the given library directories", args : ["LibDirs" : "A directory path name or a list of them", "HtmlTopDir" : "A directory path name", "LinkBack" : "HTML string (may be empty)", "SystemName" : "A string (may be empty)"], amode : ecis_to_htmls(++, ++, ++, ++), see_also : [ecis_to_htmls / 0, eci_to_html / 3], desc : html("This predicate finds all ECLiPSe interface information (.eci)\n\tfiles in a list of directories and generates .html files in the\n\tdirectory HtmlTopDir (which is created if it does not exist).\n\tThe generated files are:\n\t<UL>\n\t<LI>a toplevel index of all the processed directories\n\t\t(only if LibDirs has more than one element)\n\t<LI>for each directory an index of all the processed .eci files\n\t<LI>the documentation generated from each .eci file\n\t</UL>\n\tThe LinkBack argument should contain a hyperlink in HTML format\n\twhich will appear at the top of the toplevel index.  The\n\tSystemName argument will appear in several places and should\n\tbe the name of the documented software system.")]).
:- comment(icompile / 1, [summary : "Generates an information file from the ECLiPSe source File.", args : ["File" : "Name of source file (Atom or string)"], amode : icompile(+), desc : html("\n    Given an ECLiPSe source file (usually a file with a .ecl suffix), this\n    tool generates an ECLiPSe interface information file (with .eci suffix).\n    <P>\n    The given source file must contain a module definition. icompile then\n    extracts all information about this module's interface (in particular\n    all export directives), as well as the corresponding documentation\n    (comment/2) directives, and writes those into an interface information\n    file with .eci suffix. The latter can then be used to generate HTML\n    documentation about the module.\n    "), see_also : [icompile / 2, comment / 2, eci_to_html / 3, ecis_to_htmls / 4]]).
:- comment(icompile / 2, [summary : "Generates an information file from the ECLiPSe source File in directory Destination.", args : ["File" : "Name of source file (Atom or string)", "Destination" : "Destination directory (Atom or string)"], amode : icompile(+, +), see_also : [icompile / 1]]).
