diff --git a/src/plugins/server/package.ml b/src/plugins/server/package.ml index b8475e57b6063027cdc8877f666426e46c304e4d..202558bcb39195f5c5b7fe7c680cedb435237931 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 f05d814853ef9bec78e5cf5929bcdddfd11b034e..058414a0cd0560c2d9088d753dad0505f1338d14 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) ;