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