package stog
Static web site compiler, able to handle blog posts as well as regular pages or any XML document in general
Install
Dune Dependency
Authors
Maintainers
Sources
stog-1.1.0.tar.bz2
md5=03c4072037bf05666a249d02954396c3
sha512=299fdb7036c92bd5317726ed20f982123f57897e0d8611dfae383251a6d793e63d372c6628742412d803224a3155ab021f79550fada2e980c7d6179d90f8e43f
doc/src/stog/init.ml.html
Source file init.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
(*********************************************************************************) (* Stog *) (* *) (* Copyright (C) 2012-2024 INRIA All rights reserved. *) (* Author: Maxence Guesdon, INRIA Saclay *) (* *) (* This program is free software; you can redistribute it and/or modify *) (* it under the terms of the GNU General Public License as *) (* published by the Free Software Foundation, version 3 of the License. *) (* *) (* This program is distributed in the hope that it will be useful, *) (* but WITHOUT ANY WARRANTY; without even the implied warranty of *) (* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) (* GNU General Public License for more details. *) (* *) (* You should have received a copy of the GNU General Public *) (* License along with this program; if not, write to the Free Software *) (* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA *) (* 02111-1307 USA *) (* *) (* As a special exception, you have permission to link this program *) (* with the OCaml compiler and distribute executables, as long as you *) (* follow the requirements of the GNU GPL in regard to all of the *) (* software in the executable aside from the OCaml compiler. *) (* *) (* Contact: Maxence.Guesdon@inria.fr *) (* *) (*********************************************************************************) (** *) open Types module XR = Xtmpl.Rewrite let init_modules stog = let modules = Engine.modules () in List.map (fun (name, f) -> Log.info (fun m -> m "Initializing module %s" name); f stog ) modules let init_common ?(set_fields=fun stog -> stog) stogs = let stog = Types.merge_stogs stogs in let stog = set_fields stog in let stog = Info.remove_not_published stog in let stog = Info.compute stog in stog let from_dirs ?set_fields dirs = let stogs = List.map Io.read_stog dirs in let stog = init_common ?set_fields stogs in let def_style = (("", Tags.default_style), XR.atts_empty, XR.from_string "<link href=\"<site-url/>/style.css\" rel=\"stylesheet\" type=\"text/css\"/>" ) in let stog = { stog with stog_defs = stog.stog_defs @ [ def_style ] } in stog let from_files ?set_fields files = let dir = Sys.getcwd () in let load_doc file = let file = if Filename.is_relative file then Filename.concat dir file else file in let dir = Filename.dirname file in let stog = Types.create_stog ~source: `File dir in let stog = { stog with stog_tmpl_dirs = [dir] } in let doc = Io.doc_of_file stog file in Types.add_doc stog doc in let stogs = List.map load_doc files in let remove_add_docs stog = (* remove add-docs levels from base module *) { stog with stog_levels = Types.Str_map.add Html.module_name ["add-docs", []] stog.stog_levels ; } in let set_fields = match set_fields with None -> remove_add_docs | Some f -> fun stog -> remove_add_docs (f stog) in let stog = init_common ~set_fields stogs in let stog = Io.read_modules stog in let def_style = (("", Tags.default_style), XR.atts_empty, XR.from_string "<style><include file=\"<doc-type/>-style.css\" raw=\"true\"/></style>" ) in let stog = { stog with stog_defs = stog.stog_defs @ [ def_style ] } in stog
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>