Fix lazy loading of rules
We must load package rules when a file in the _mld dir is requested
This commit is contained in:
parent
1b1c5f032d
commit
ff211b18a7
24
src/odoc.ml
24
src/odoc.ml
|
@ -501,17 +501,19 @@ module Gen (S : sig val sctx : SC.t end) = struct
|
|||
in
|
||||
SC.packages sctx
|
||||
|> Package.Name.Map.iter ~f:(fun (pkg : Package.t) ->
|
||||
SC.on_load_dir sctx
|
||||
~dir:(Paths.odocs (Pkg pkg.name))
|
||||
~f:(fun () ->
|
||||
setup_package_odoc_rules
|
||||
~pkg
|
||||
~mlds:(
|
||||
docs_by_package pkg
|
||||
|> List.concat_map ~f:(fun (dir, doc) -> mlds_of_dir doc ~dir)
|
||||
)
|
||||
~entry_modules_by_lib:modules_by_lib
|
||||
);
|
||||
let rules = lazy (
|
||||
setup_package_odoc_rules
|
||||
~pkg
|
||||
~mlds:(
|
||||
docs_by_package pkg
|
||||
|> List.concat_map ~f:(fun (dir, doc) -> mlds_of_dir doc ~dir)
|
||||
)
|
||||
~entry_modules_by_lib:modules_by_lib
|
||||
) in
|
||||
List.iter [ Paths.odocs (Pkg pkg.name)
|
||||
; Paths.gen_mld_dir pkg ]
|
||||
~f:(fun dir ->
|
||||
SC.on_load_dir sctx ~dir ~f:(fun () -> Lazy.force rules));
|
||||
(* setup @doc to build the correct html for the package *)
|
||||
setup_package_aliases pkg;
|
||||
);
|
||||
|
|
|
@ -33,5 +33,7 @@
|
|||
</html>
|
||||
|
||||
$ $JBUILDER build @foo-mld -j1 --display short --root .
|
||||
No rule found for _doc/_mlds/foo/index.mld
|
||||
[1]
|
||||
{1 Library foo}
|
||||
This library exposes the following toplevel modules: {!modules:Foo}.
|
||||
{1 Library foo.byte}
|
||||
This library exposes the following toplevel modules: {!modules:Foo_byte}.
|
||||
|
|
Loading…
Reference in New Issue