Commit 5ef306bb authored by FAGES Francois's avatar FAGES Francois

look de la doc

parent 264da436
Je voulais te préciser que la documentation est générée automatiquement à partir du code
et que c’est bien de commencer par les prédicats qui seront documentés
Documentation
-------------
La documentation est générée automatiquement à partir du code
dans les repertoire doc/index.html et devdoc/index.html
(versions index.tex également disponibles pour xelatex)
Il est bon de documenter les prédicats
avant même de les programmer complètement.
Par exemple regarde dans le fichier odefunction.pl:
Par exemple dans le fichier odefunction.pl:
- on définit un module pour la commande add_function qui est exportée du module.
......
......@@ -10,7 +10,7 @@
]
).
doc(_) :-
doc(_) :- % this predicate must just succeed in prolog
!,
true.
......@@ -56,6 +56,10 @@ format_doc_html(document_opening(Title), []) :-
<head>
<title>~a</title>
</head>
<style>
h5 {font-family: "Courier New"; font-size: 1.1em; font-weight: normal; }
div.indented {margin-left: 1cm; }
</style>
<body>
<h1>~a</h1>
', [Title, Title]).
......@@ -304,11 +308,13 @@ format_doc_tex(end(emph), []) :-
format_doc_tex(begin(texttt), []) :-
!,
format('\\texttt{', []).
%format('\\texttt{', []).
format('\verb£', []).
format_doc_tex(end(texttt), []) :-
!,
format('}', []).
%format('}', []).
format('£', []).
format_doc_tex(url(Url), []) :-
!,
......@@ -814,7 +820,7 @@ generate_body_item_clause(Clause, Type) :-
format_doc('<h5 id="~a""><code>~a', [Id, Command]),
write_arguments(Arguments),
format_doc('.</code></h5>\n', []),
format_doc('<div>', []),
format_doc('<div class="indented">', []),
\+ (
member(DocItem, Doc),
\+ (
......@@ -827,7 +833,7 @@ generate_body_item_clause(Clause, Type) :-
->
true
;
format_doc('\n<div>\n<h6>Options.</h6>\n<dl>', []),
format_doc('\n<div class="indented">\n<h6>Options.</h6>\n<dl>', []),
\+ (
member(option(Option, OptionType, OptionDoc), Options),
\+ (
......
......@@ -13,6 +13,8 @@
]).
:- doc('Biocham can import GPAC (Shannon\'s General Purpose Analog Computer) and compile them into reaction systems. Only weak GPACs, in which the integration is with respect to time and not a variable, are considered. The syntax of weak GPACs is as follows:').
:- grammar(wgpac).
wgpac(B) :-
......@@ -99,7 +101,7 @@ get_fresh(N) :-
compile_wgpac(Wgpac, Rate) :-
biocham_command,
doc('compiles a weak-gpac into a biochemical system.'),
doc('compiles a wgpac into a biochemical system.'),
type(Wgpac, wgpac),
!,
retractall(fresh_index(_)),
......@@ -110,7 +112,7 @@ compile_wgpac(Wgpac, Rate) :-
compile_wgpac(WgpacSet, Rate) :-
biocham_command,
type(WgpacSet, {wgpac}),
doc('compiles a set of w-gpac.'),
doc('compiles a set of wgpac.'),
\+ (
member(Wgpac, WgpacSet),
\+ (
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment