(** View layer — re-exports layout and page modules. This module is the public entry point for the view layer. Handlers use it to render pages without depending on individual view submodules. *) val error_page : ?title:string -> ?status:[< Dream.status > `Internal_Server_Error ] -> string -> Dream.response Dream.promise (** Render an error page. See {!Error.render}. *) val root : Layout.site -> dates:(string * (int64 * Git.User.tz_offset option) option) list -> ?prefix:string -> ?favorites:Resolvers.fs_node list -> ?archived:Resolvers.fs_node list -> ?readme:Resolvers.Blob.t -> Resolvers.fs_node list -> Dream.response Dream.promise (** Render the repository list page. See {!Root.render}. *) (** Repository page views. *) module Repo : sig type commit_message = Commit_message.t = { summary : string; body : string } val context : site:Layout.site -> repo:string -> description:string -> Repo_view.context val parse_commit_message : string option -> Commit_message.t val parse_conventional : string -> string option * string val summary : Repo_view.context -> ?readme:Resolvers.Readme.t -> unit -> Dream.response Dream.promise val commits : ?filter_type:string -> ?author:string -> ?committer:string -> ?truncated:bool -> page_number:int -> has_prev:bool -> has_next:bool -> Repo_view.context -> Resolvers.Commit.t list -> Dream.response Dream.promise val files : Repo_view.context -> (string * string) list -> Resolvers.Tree.tree_node list -> Dream.response Dream.promise val file : Repo_view.context -> (string * string) list -> Resolvers.Blob.t -> Dream.response Dream.promise val commit : Repo_view.context -> Resolvers.Commit.t -> Resolvers.Diff.file list -> Dream.response Dream.promise end