diff --git a/src/plugins/callgraph/requests.ml b/src/plugins/callgraph/requests.ml index ec50ebcb6aa41c6c03b7b672050b5edd4a79c6a8..e431a7d22ea579d38f36a968ead02525e687a1d3 100644 --- a/src/plugins/callgraph/requests.ml +++ b/src/plugins/callgraph/requests.ml @@ -26,7 +26,7 @@ module G = Services.G (* --- Package declaration --- *) -let package = Package.package ~plugin:"callgraph" ~title:"Callgraph" () +let package = Package.package ~plugin:"callgraph" ~title:"Callgraph Services" () (* --- Helper modules --- *) diff --git a/src/plugins/server/package.ml b/src/plugins/server/package.ml index a056c3cad8914e6f1af95a3cdcccf963ffd17026..a61a1319f211fa6c7959e785734d7a65d4af8be6 100644 --- a/src/plugins/server/package.ml +++ b/src/plugins/server/package.ml @@ -236,7 +236,7 @@ type packageInfo = { p_package : string list ; p_title : string ; p_descr : Markdown.text ; - p_readme : Filepath.Normalized.t option ; + p_readme : string option ; p_content : declInfo list ; } @@ -377,17 +377,6 @@ let register_ident id = Senv.fatal "Duplicate identifier '%a'" pp_ident id ; registry := IdSet.add id !registry -let resolve_readme ~plugin = function - | None -> None - | Some readme -> - let file = - match plugin with - | Kernel -> - Filepath.Normalized.concats Fc_config.datadir ["server"; "doc"; readme] - | Plugin name -> - Filepath.Normalized.concats Fc_config.datadir [name; "doc"; readme] - in Some file - (* -------------------------------------------------------------------------- *) (* --- Declarations --- *) (* -------------------------------------------------------------------------- *) @@ -403,7 +392,7 @@ let package ?plugin ?name ~title ?(descr=[]) ?readme () = p_package = pkgname ; p_title = title ; p_descr = descr ; - p_readme = resolve_readme ~plugin readme ; + p_readme = readme ; p_content = [] ; } in let package = { pkgInfo ; revDecl=[] } in diff --git a/src/plugins/server/package.mli b/src/plugins/server/package.mli index 101688e27c7b628e305815f319a42d08c67d354c..34a878af92122b8bcd514e0cc6834815e2345f06 100644 --- a/src/plugins/server/package.mli +++ b/src/plugins/server/package.mli @@ -100,7 +100,7 @@ type packageInfo = { p_package : string list ; p_title : string ; p_descr : Markdown.text ; - p_readme : Filepath.Normalized.t option ; + p_readme : string option ; p_content : declInfo list ; } diff --git a/src/plugins/server/server_doc.ml b/src/plugins/server/server_doc.ml index 9641f91c100b78d683e9ba55fb0e13e0249598d0..52eb8613929beaab64f7de7c011f12b6a546f873 100644 --- a/src/plugins/server/server_doc.ml +++ b/src/plugins/server/server_doc.ml @@ -68,13 +68,20 @@ let path_for chapter filename = | `Kernel -> ".." , Printf.sprintf "kernel/%s" filename | `Plugin name -> "../.." , Printf.sprintf "plugins/%s/%s" name filename -let page chapter ~title ?(descr=[]) ?readme ~filename () = +let path_for_readme ~plugin filename = + let dirname = match plugin with Kernel -> "server" | Plugin p -> p in + Filepath.Normalized.concats + (Filepath.Normalized.of_string ".") + ["src";"plugins";dirname;"doc";filename] + +let page chapter ~title ?(descr=[]) ?(plugin=Kernel) ~readme ~filename () = let rootdir , path = path_for chapter filename in try let other = Pages.find path !pages in Senv.failure "Duplicate page '%s' path@." path ; other with Not_found -> let order = incr order ; !order in + let readme = Option.map (path_for_readme ~plugin) readme in let page = { order ; rootdir ; path ; chapter ; title ; descr ; readme ; @@ -99,8 +106,7 @@ let publish ~page ?name ?(index=[]) ~title page.sections <- section :: page.sections ; href let protocol ~title ~readme:filename = - let readme = Filepath.Normalized.concats Fc_config.datadir ["server"; "doc"; filename] in - ignore (page `Protocol ~title ~readme ~filename ()) + ignore (page `Protocol ~title ~readme:(Some filename) ~filename ()) let () = protocol ~title:"Architecture" ~readme:"server.md" @@ -131,7 +137,8 @@ let page_of_package pkg = page chapter ~title:pkg.p_title ~descr:(Markdown.par pkg.p_descr) - ?readme:pkg.p_readme + ~plugin:pkg.p_plugin + ~readme:pkg.p_readme ~filename () let kind_of_decl = function diff --git a/src/plugins/server/server_doc.mli b/src/plugins/server/server_doc.mli index 635b09905d0c020db922f9023eea93baab663c35..9643170c0704d1e3cca89cea6540eafa479bed13 100644 --- a/src/plugins/server/server_doc.mli +++ b/src/plugins/server/server_doc.mli @@ -39,14 +39,15 @@ val chapter : page -> chapter (** Obtain the given page in the server documentation. The readme introductory section is - read from the share directory: - - [frama-c/share/<filename>] server and kernel pages, - - [frama-c/share/<plugin>/server/<filename>] for plugin's pages. + read from the source directory: + - [src/plugins/server/<filename>] server and kernel pages, + - [src/plugins/<plugin>/<filename>] for plugin's pages. *) val page : chapter -> title:string -> ?descr:elements -> - ?readme:Filepath.Normalized.t -> + ?plugin:Package.plugin -> + readme:string option -> filename:string -> unit ->page