30 lines
544 B
OCaml
30 lines
544 B
OCaml
open Logarion
|
|
|
|
module Ref_set = Set.Make(String)
|
|
module Id_map = Map.Make(String)
|
|
|
|
type t = {
|
|
id: string;
|
|
dir: string;
|
|
kv: string Store.KV.t;
|
|
topic_roots: string list;
|
|
topics: (String_set.t * String_set.t) Topic_set.Map.t;
|
|
references: Ref_set.t Id_map.t;
|
|
texts: Text.t list
|
|
}
|
|
|
|
type fn_t = {
|
|
ext: string;
|
|
page: (t -> Logarion.Text.t -> string) option;
|
|
indices: (t -> unit) option;
|
|
}
|
|
|
|
let empty () = {
|
|
id = ""; dir = "";
|
|
kv = Store.KV.empty;
|
|
topic_roots = [];
|
|
topics = Topic_set.Map.empty;
|
|
references = Id_map.empty;
|
|
texts = []
|
|
}
|