doc_html.pl -- PlDoc HTML backend
This module translates the Herbrand term from the documentation extracting module doc_wiki.pl into HTML+CSS.
- doc_for_file(+File, +Options) is det
- HTTP handler that writes documentation for File as HTML.
Options:
- public_only(+Bool)
- If
true
(default), only emit documentation for exported predicates. - edit(Bool)
- If
true
, provide edit buttons. Default, these buttons are suppressed. - title(+Title)
- Specify the page title. Default is the base name of the file.
- doc_resources(+Options)// is det
- Include required resources (CSS, JS) into the output. The first
clause supports
doc_files.pl
. A bit hacky ... - doc_file_objects(+FileSpec, -File, -Objects, -FileOptions, +Options) is det
- Extracts relevant information for FileSpec from the PlDoc
database. FileOptions contains:
file(Title:string, Comment:string)
module(Module:atom)
- public(Public:
list(predicate_indicator)
Objects contains
doc(PI:predicate_indicator, File:Line, Comment)
We distinguish three different states for FileSpec:
- File was cross-referenced with collection enabled. All information is in the xref database.
- File was loaded. If comments are not loaded, cross-reference the file, while storing the comments as the compiler would do.
- Neither of the above. In this case we cross-reference the file.
- xref_doc_object(File, DocObject) is nondet[private]
- ensure_doc_objects(+File) is det
- Ensure we have documentation about File. If we have no comments for the file because it was loaded before comment collection was enabled, run the cross-referencer on it to collect the comments and meta-information.
- module_info(+File, -ModuleOptions, +OtherOptions) is det
- Add options
module(Name)
,public(Exports)
to OtherOptions if File is a module file. - doc_hide_private(+Objs, +Public, +Options)
- Remove the private objects from Objs according to Options.
- obj(+Term, -Object) is det[private]
- Extract the documented object from its environment. It is assumed to be the first term. Note that if multiple objects are described by the same comment Term is a list.
- private(+Obj, +Options) is semidet
- True if Obj is not exported from Options. This means Options defined a module and Obj is not member of the exports of the module.
- prolog:doc_is_public_object(+Object) is semidet[multifile]
- Hook that allows objects to be displayed with the default public-only view.
- multifile(+Obj, +Options) is semidet
- True if Obj is a multifile predicate.
- file_info(+Comments, -RestComment, -FileOptions, +OtherOptions) is det[private]
- Add options
file(Title, Comment)
to OtherOptions if available. - file_header(+File, +Options)// is det
- Create the file header.
- file_title(+Title:list, +File, +Options)// is det[private]
- Emit the file-header and manipulation buttons.
- reload_button(+File, +Base, +Options)// is det[private]
- Create a button for reloading the sources and updating the documentation page. Note that the button is not shown if the file is not loaded because we do not want to load files through the documentation system.
- edit_button(+File, +Options)// is det
- Create an edit button for File. If the button is clicked, JavaScript sends a message to the server without modifying the current page. JavaScript code is in the file pldoc.js.
- zoom_button(BaseName, +Options)// is det
- Add zoom in/out button to show/hide the private documentation.
- source_button(+File, +Options)// is det
- Add show-source button.
- objects(+Objects:list, +Options)// is det
- Emit the documentation body. Options includes:
- navtree(+Boolean)
- If
true
, provide a navitation tree.
- object(+Spec, +ModeIn, -ModeOut, +Options)// is det[private]
- Emit the documentation of a single object.
- need_mode(+Mode:atom, +Stack:list, -NewStack:list)// is det[private]
- While predicates are part of a description list, sections are not and we therefore need to insert <dl>...</dl> into the output. We do so by demanding an outer environment and push/pop the required elements.
- undocumented(+File, +Objects, +Options)// is det[private]
- Describe undocumented predicates if the file is a module file.
- eq_pi(PI1, PI2) is semidet[private]
- True if PI1 and PI2 refer to the same predicate.
- is_pi(@Term) is semidet
- True if Term is a predicate indicator.
- re_exported_doc(+Undoc:list(pi), +File:atom, +Module:atom, -ImportedDoc, -ReallyUnDoc:list(pi))[private]
- object_page(+Obj, +Options)// is semidet
- Generate an HTML page describing Obj. The top presents the file
the object is documented in and a search-form. Options:
- header(+Boolean)
- Show the navigation and search header.
- object_page_footer(+Obj, +Options)// is det
- Call the hook doc_object_page_footer//2. This hook will be used to deal with annotations.
- object_synopsis(Obj, Options)// is det
- Provide additional information about Obj. Note that due to reexport facilities, predicates may be available from multiple modules.
- unquote_filespec(+Spec, -Unquoted) is det
- Translate e.g. library('semweb/rdf_db') into library(semweb/rdf_db).
- doc_write_html(+Out:stream, +Title:atomic, +DOM) is det
- Write HTML for the documentation page DOM using Title to Out.
- doc_page_dom(+Title, +Body, -DOM) is det
- Create the complete HTML DOM from the Title and Body. It adds links to the style-sheet and javaScript files.
- print_html_head(+Out:stream) is det
- Print the
DOCTYPE
line. - tags(+Tags)// is det
- Emit the @tag tags of a description. Tags is produced by tags/3.
- tag(+Tag, +Values:list)// is det[private]
- Called from \
tag(Name, Values)
terms produced by doc_wiki.pl. - doc_tag_title(+Tag, -Title) is det
- Title is the name to use for Tag in the generated documentation.
- args(+Params:list) is det[private]
- Called from \
args(List)
created by doc_wiki.pl. Params is a list ofarg(Name, Descr)
. - objects_nav_tree(+Objects, -Tree) is det[private]
- Provide a navigation tree showing the context of Object. Tree
is of the form
node(Object, Children)
. - remove_unique_root(+TreeIn, -Tree)[private]
- Remove the root part that does not branch
- nav_tree(+Tree, +Current, +Options)// is det[private]
- Render the navigation tree
- object_tree(+Tree, +Current, +Options)// is det
- Render a tree of objects used for navigation.
- pred_dt(+Modes, +Class, Options)// is det[private]
- Emit the predicate header.
- anon_vars(+Term) is det[private]
- Bind remaining variables in Term to '$VAR'('_'), so they are printed as '_'.
- pred_edit_button(+PredIndicator, +Options)// is det
- Create a button for editing the given predicate. Options
processed:
- module(M)
- Resolve to module M
- file(F)
- For multi-file predicates: link to version in file.
- line(L)
- Line to edit (in file)
- object_edit_button(+Object, +Options)// is det
- Create a button for editing Object.
- pred_source_button(+PredIndicator, +Options)// is det[private]
- Create a button for viewing the source of a predicate.
- object_source_button(+Object, +Options)// is det
- Create a button for showing the source of Object.
- canonicalise_predref(+PredRef, -PI:Name/Arity, +Options0, -Options) is det[private]
- Canonicalise a predicate reference. A possible module qualifier is
added as
module(M)
to Options. - pred_head(+Term) is det[private]
- Emit a predicate head. The functor is typeset as a
span
using classpred
and the arguments andvar
using classarglist
. - is_op_type(+Atom, ?Type)
- True if Atom is an operator of Type. Type is one of
prefix
,infix
orpostfix
. - term(+Text, +Term, +Bindings)// is det
- Process the \term element as produced by doc_wiki.pl.
- predref(+PI)// is det
- predref(+PI, +Options)// is det
- Create a reference to a predicate. The reference consists of the
relative path to the file using the predicate indicator as
anchor.
Current file must be available through the global variable
pldoc_file
. If this variable not set it creates a link to /doc/<file>#anchor. Such links only work in the online browser. - manref(+NameArity, -HREF, +Options) is det[private]
- Create reference to a manual page. When generating files, this
listens to the option
man_server(+Server)
. - pred_href(+NameArity, +Module, -HREF) is semidet[private]
- Create reference. Prefer:
- Local definition
- If from package and documented: package documentation
- From any file
- pred_source_href(+Pred:predicate_indicator, +Module, -HREF) is semidet[private]
- HREF is a URL to show the predicate source in its file.
- object_ref(+Object, +Options)// is det
- Create a hyperlink to Object. Points to the /doc_for URL. Object is as the first argument of doc_comment/4. Note this can be a list of objects.
- object_href(+Object, -HREF) is det
- object_href(+Object, -HREF, +Options) is det
- HREF is the URL to access Object.
- localise_object(+ObjIn, -ObjOut) is det[private]
- Abstract path-details to make references more stable over versions.
- term_to_string(+Term, -String) is det[private]
- Convert Term, possibly holding variables, into a canonical string using A, B, ... for variables and _ for singletons.
- object_name(+Obj, +Options)// is det
- HTML description of documented Obj. Obj is as the first argument
of doc_comment/4. Options:
- style(+Style)
- One of
inline
ortitle
- qualify(+Boolean)
- Qualify predicates by their module
- secref_style(Style)
- One of
number
,title
ornumber_title
- in_file(+Head, ?File) is nondet[private]
- File is the name of a file containing the Predicate Head. Head may be qualified with a module.
- file(+FileName)// is det
- file(+FileName, +Options)// is det
- Create a link to another filename if the file exists. Called by
\
file(File)
terms in the DOM term generated bywiki.pl
. Supported options are:- label(+Label)
- Label to use for the link to the file.
- absolute_path(+Path)
- Absolute location of the referenced file.
- href(+HREF)
- Explicitely provided link; overrule link computation.
- map_extension(+Pairs)
- Map the final extension if OldExt-NewExt is in Pairs.
- files(+Map)
- List of
file(Name, Link)
that specifies that we must user Link for the given physical file Name. - edit_handler(+Id)
- HTTP handler Id to call if the user clicks the edit button.
- file_href(+FilePath, -HREF, +Options) is det[private]
- Find URL for refering to FilePath based on Options.
- map_extension(+HREFIn, -HREFOut, Options) is det[private]
- Replace extension using the option
map_extension(+Pairs)
- file_href(+FilePath, -HREF) is det[private]
- Create a relative URL from the current location to the given
absolute file name. It resolves the filename relative to the
file being processed that is available through the global
variable
pldoc_file
. - existing_linked_file(+File, -Path) is semidet
- True if File is a path to an existing file relative to the current file. Path is the absolute location of File.
- include(+FileName, +Type, +Options)// is det
- Inline FileName. If this is an image file, show an inline image.
Else we create a link like file//1. Called by \
include(File, Type)
terms in the DOM term generated bywiki.pl
if it encounters [[file.ext]]. - html_tokens_for_predicates(+PI, +Options)// is semidet[private]
- Inline description for a predicate as produced by the text below
from wiki processing.
* [[member/2]] * [[append/3]]
- doc_for_wiki_file(+File, +Options) is det
- Write HTML for the File containing wiki data.
- mode_anchor_name(+Mode, -Anchor:atom) is det
- Get the anchor name for a mode.
- pred_anchor_name(+Head, -PI:atom/integer, -Anchor:atom) is det
- Create an HTML anchor name from Head.
- predref(+PI)// is det
- predref(+PI, +Options)// is det
- Create a reference to a predicate. The reference consists of the
relative path to the file using the predicate indicator as
anchor.
Current file must be available through the global variable
pldoc_file
. If this variable not set it creates a link to /doc/<file>#anchor. Such links only work in the online browser. - object_href(+Object, -HREF) is det[private]
- object_href(+Object, -HREF, +Options) is det[private]
- HREF is the URL to access Object.
- file(+FileName)// is det
- file(+FileName, +Options)// is det
- Create a link to another filename if the file exists. Called by
\
file(File)
terms in the DOM term generated bywiki.pl
. Supported options are:- label(+Label)
- Label to use for the link to the file.
- absolute_path(+Path)
- Absolute location of the referenced file.
- href(+HREF)
- Explicitely provided link; overrule link computation.
- map_extension(+Pairs)
- Map the final extension if OldExt-NewExt is in Pairs.
- files(+Map)
- List of
file(Name, Link)
that specifies that we must user Link for the given physical file Name. - edit_handler(+Id)
- HTTP handler Id to call if the user clicks the edit button.
Undocumented predicates
The following predicates are exported, but not or incorrectly documented.