From 1cb7b3602c2d8a7f28260c725d5c4c1a40841a00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Wed, 17 Jun 2020 18:19:45 +0200 Subject: [PATCH] [server] include readmes on demand only --- src/plugins/server/package.ml | 5 +---- src/plugins/server/server_doc.ml | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/plugins/server/package.ml b/src/plugins/server/package.ml index b8475e57b60..202558bcb39 100644 --- a/src/plugins/server/package.ml +++ b/src/plugins/server/package.ml @@ -327,10 +327,7 @@ let resolve_readme ~plugin = function Printf.sprintf "%s/server/%s" Fc_config.datadir readme | Plugin name -> Printf.sprintf "%s/%s/server/%s" Fc_config.datadir name readme - in - if Sys.file_exists file - then Some file - else (Senv.warning "Can not find %S file" file ; None) + in Some file (* -------------------------------------------------------------------------- *) (* --- Declarations --- *) diff --git a/src/plugins/server/server_doc.ml b/src/plugins/server/server_doc.ml index f05d814853e..058414a0cd0 100644 --- a/src/plugins/server/server_doc.ml +++ b/src/plugins/server/server_doc.ml @@ -45,6 +45,7 @@ type page = { title : string ; order : int ; descr : Markdown.elements ; + readme: string option ; mutable sections : section list ; } @@ -74,12 +75,9 @@ let page chapter ~title ?(descr=[]) ?readme ~filename () = Senv.failure "Duplicate page '%s' path@." path ; other with Not_found -> let order = incr order ; !order in - let descr = match readme with - | None -> Markdown.section ~title descr - | Some file -> Markdown.rawfile file @ descr in let page = { order ; rootdir ; path ; - chapter ; title ; descr ; + chapter ; title ; descr ; readme ; sections=[] ; } in pages := Pages.add path page !pages ; page @@ -323,9 +321,17 @@ let dump ~root ?(meta=true) () = Pages.iter (fun path page -> Senv.feedback "[doc] Page: '%s'" path ; - let body = Markdown.subsections page.descr (build [] page.sections) in let title = page.title in - pp_one_page ~root ~page:path ~title body ; + let intro = match page.readme with + | None -> Markdown.section ~title page.descr + | Some file -> + if Sys.file_exists file + then Markdown.rawfile file @ page.descr + else (Senv.warning "Can not find %S file" file ; + Markdown.section ~title page.descr) + in + let body = Markdown.subsections page.descr (build [] page.sections) in + pp_one_page ~root ~page:path ~title (intro @ body) ; if meta then let path = Printf.sprintf "%s/%s.json" root path in Yojson.Basic.to_file path (metadata page) ; -- GitLab