1:- module(doc_latex, [latex_for_pack/3]). 2
3:- ensure_loaded(library(pldoc)). 4
5:- use_module(pldoc(doc_html)). 6
7:- use_module(library(canny/files)). 8
12
22latex_for_pack(Spec, OutFile, Options) :-
23 once(pack_file(Spec, PackFile)),
24 file_directory_name(PackFile, Pack),
25 bagof(File, latex_for_pack_(Pack, File), Files),
26 doc_latex(Files, OutFile, Options),
27 !.
28
29latex_for_pack_(Pack, File) :-
30 md(Spec),
31 absolute_file_name(Spec, File, [extensions([md]), relative_to(Pack)]).
32latex_for_pack_(Pack, File) :-
33 absolute_file_name(Pack/prolog, Absolute),
34 directory_member(Absolute, File, [file_type(prolog), recursive(true)]),
35 doc_file_objects(File, _, Objects, FileOptions, []),
36 ( Objects = [_|_]
37 -> true
38 ; member(file(_, _), FileOptions)
39 ).
40
41md(readme).
42
43pack_file(Spec, File) :-
44 absolute_file_name(Spec, Absolute),
45 absolute_directory(Absolute, Directory),
46 absolute_file_name(pack, File, [ file_type(prolog),
47 relative_to(Directory),
48 access(read),
49 file_errors(fail)
50 ])