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. 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. - on définit un module pour la commande add_function qui est exportée du module.
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
] ]
). ).
doc(_) :- doc(_) :- % this predicate must just succeed in prolog
!, !,
true. true.
...@@ -56,6 +56,10 @@ format_doc_html(document_opening(Title), []) :- ...@@ -56,6 +56,10 @@ format_doc_html(document_opening(Title), []) :-
<head> <head>
<title>~a</title> <title>~a</title>
</head> </head>
<style>
h5 {font-family: "Courier New"; font-size: 1.1em; font-weight: normal; }
div.indented {margin-left: 1cm; }
</style>
<body> <body>
<h1>~a</h1> <h1>~a</h1>
', [Title, Title]). ', [Title, Title]).
...@@ -304,11 +308,13 @@ format_doc_tex(end(emph), []) :- ...@@ -304,11 +308,13 @@ format_doc_tex(end(emph), []) :-
format_doc_tex(begin(texttt), []) :- format_doc_tex(begin(texttt), []) :-
!, !,
format('\\texttt{', []). %format('\\texttt{', []).
format('\verb£', []).
format_doc_tex(end(texttt), []) :- format_doc_tex(end(texttt), []) :-
!, !,
format('}', []). %format('}', []).
format('£', []).
format_doc_tex(url(Url), []) :- format_doc_tex(url(Url), []) :-
!, !,
...@@ -814,7 +820,7 @@ generate_body_item_clause(Clause, Type) :- ...@@ -814,7 +820,7 @@ generate_body_item_clause(Clause, Type) :-
format_doc('<h5 id="~a""><code>~a', [Id, Command]), format_doc('<h5 id="~a""><code>~a', [Id, Command]),
write_arguments(Arguments), write_arguments(Arguments),
format_doc('.</code></h5>\n', []), format_doc('.</code></h5>\n', []),
format_doc('<div>', []), format_doc('<div class="indented">', []),
\+ ( \+ (
member(DocItem, Doc), member(DocItem, Doc),
\+ ( \+ (
...@@ -827,7 +833,7 @@ generate_body_item_clause(Clause, Type) :- ...@@ -827,7 +833,7 @@ generate_body_item_clause(Clause, Type) :-
-> ->
true 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), member(option(Option, OptionType, OptionDoc), Options),
\+ ( \+ (
......
...@@ -13,6 +13,8 @@ ...@@ -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). :- grammar(wgpac).
wgpac(B) :- wgpac(B) :-
...@@ -99,7 +101,7 @@ get_fresh(N) :- ...@@ -99,7 +101,7 @@ get_fresh(N) :-
compile_wgpac(Wgpac, Rate) :- compile_wgpac(Wgpac, Rate) :-
biocham_command, biocham_command,
doc('compiles a weak-gpac into a biochemical system.'), doc('compiles a wgpac into a biochemical system.'),
type(Wgpac, wgpac), type(Wgpac, wgpac),
!, !,
retractall(fresh_index(_)), retractall(fresh_index(_)),
...@@ -110,7 +112,7 @@ compile_wgpac(Wgpac, Rate) :- ...@@ -110,7 +112,7 @@ compile_wgpac(Wgpac, Rate) :-
compile_wgpac(WgpacSet, Rate) :- compile_wgpac(WgpacSet, Rate) :-
biocham_command, biocham_command,
type(WgpacSet, {wgpac}), type(WgpacSet, {wgpac}),
doc('compiles a set of w-gpac.'), doc('compiles a set of wgpac.'),
\+ ( \+ (
member(Wgpac, WgpacSet), 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