sig
  type chapter = [ `Kernel | `Plugin of string | `Protocol ]
  type page
  val path : Server.Doc.page -> string
  val href : Server.Doc.page -> string -> Markdown.href
  val chapter : Server.Doc.page -> Server.Doc.chapter
  val page :
    Server.Doc.chapter -> title:string -> filename:string -> Server.Doc.page
  val publish :
    page:Server.Doc.page ->
    ?name:string ->
    ?index:string list ->
    title:string -> Markdown.elements -> Markdown.elements -> Markdown.href
  val dump : root:string -> ?meta:bool -> unit -> unit
end