Stog library reference documentation : Stog_engine
sig
  exception Cant_open_cache_file of string
  type 'a level_fun =
      Fun_stog of
        (Stog_types.stog Xtmpl.env ->
         Stog_types.stog -> Stog_types.Doc_set.t -> Stog_types.stog)
    | Fun_data of
        ('Xtmpl.env ->
         Stog_types.stog * '-> Stog_types.Doc_set.t -> Stog_types.stog * 'a)
    | Fun_stog_data of
        ((Stog_types.stog * 'a) Xtmpl.env ->
         Stog_types.stog * '-> Stog_types.Doc_set.t -> Stog_types.stog * 'a)
  type 'a modul = {
    mod_data : 'a;
    mod_levels : 'Stog_engine.level_fun Stog_types.Int_map.t;
    mod_name : string;
  }
  module type Module =
    sig
      type data
      val modul : Stog_engine.Module.data Stog_engine.modul
      type cache_data
      val cache_load :
        Stog_types.stog ->
        Stog_engine.Module.data ->
        Stog_types.doc ->
        Stog_engine.Module.cache_data -> Stog_engine.Module.data
      val cache_store :
        Stog_types.stog ->
        Stog_engine.Module.data ->
        Stog_types.doc -> Stog_engine.Module.cache_data
    end
  type stog_state = {
    st_stog : Stog_types.stog;
    st_modules : (module Stog_engine.Module) list;
    st_docs : Stog_types.Doc_set.t;
  }
  val run :
    ?use_cache:bool ->
    ?default_style:Xtmpl.tree list ->
    Stog_engine.stog_state -> Stog_engine.stog_state
  val generate :
    ?use_cache:bool ->
    ?gen_cache:bool ->
    ?default_style:Xtmpl.tree list ->
    ?only_docs:string list ->
    Stog_types.stog -> (module Stog_engine.Module) list -> unit
  val doc_dst :
    (string -> string -> string) ->
    ?encode:bool -> Stog_types.stog -> string -> Stog_types.doc -> string
  val doc_dst_file : Stog_types.stog -> Stog_types.doc -> string
  val doc_url : Stog_types.stog -> Stog_types.doc -> Neturl.url
  val env_of_defs : ?env:'Xtmpl.env -> Stog_types.def list -> 'Xtmpl.env
  val env_of_used_mods :
    Stog_types.stog ->
    ?env:'Xtmpl.env -> Stog_types.Str_set.t -> 'Xtmpl.env
  type 'a stog_doc_rules =
      Stog_types.stog ->
      Stog_types.doc_id -> (Xtmpl.name * 'Xtmpl.callback) list
  val get_in_env : '-> 'Xtmpl.env -> Xmlm.name -> 'a * Xtmpl.tree list
  val opt_in_env :
    '-> 'Xtmpl.env -> Xmlm.name -> 'a * Xtmpl.tree list option
  val get_in_args_or_env :
    '->
    'Xtmpl.env -> Xtmpl.attributes -> Xmlm.name -> 'a * Xtmpl.tree list
  val get_path : '-> 'Xtmpl.env -> 'a * Stog_path.path
  val get_path_in_args_or_env :
    '-> 'Xtmpl.env -> Xtmpl.attributes -> 'a * Stog_path.path
  val doc_env :
    '->
    'Xtmpl.env -> Stog_types.stog -> Stog_types.doc -> 'a * 'Xtmpl.env
  val apply_stog_env_doc :
    Stog_types.stog ->
    Stog_types.stog Xtmpl.env -> Stog_types.doc_id -> Stog_types.stog
  val apply_stog_data_env_doc :
    Stog_types.stog * '->
    (Stog_types.stog * 'a) Xtmpl.env ->
    Stog_types.doc_id -> Stog_types.stog * 'a
  val apply_data_env_doc :
    Stog_types.stog * '->
    'Xtmpl.env -> Stog_types.doc_id -> Stog_types.stog * 'a
  val fun_apply_stog_doc_rules :
    Stog_types.stog Stog_engine.stog_doc_rules -> 'Stog_engine.level_fun
  val fun_apply_stog_data_doc_rules :
    (Stog_types.stog * 'a) Stog_engine.stog_doc_rules ->
    'Stog_engine.level_fun
  val fun_apply_data_doc_rules :
    'Stog_engine.stog_doc_rules -> 'Stog_engine.level_fun
  val get_languages : '-> 'Xtmpl.env -> 'a * string list
  type module_fun = Stog_types.stog -> (module Stog_engine.Module)
  val modules : unit -> (string * Stog_engine.module_fun) list
  val register_module : string -> Stog_engine.module_fun -> unit
  val module_by_name : string -> Stog_engine.module_fun option
end