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
[]
= "plates-render"
= "The document-to-HTML half of plates: what a published page looks like."
= true
= true
= true
= true
= true
= true
= "README.md"
= ["static-site-gen", "markdown", "djot", "html", "prov"]
= ["web-programming", "text-processing"]
# Portable by contract, not by luck: this crate must keep compiling for
# `wasm32-unknown-unknown`, so it holds no filesystem, no host functions, no
# entropy and no clock. A caller that has those reads the files and passes the
# bytes in. The `wasm` CI job is what enforces it.
[]
= ["yaml"]
# Metadata formats, forwarded to prov, which forwards to fig. With a format off,
# its parser is left out of the build *and* prov stops recognizing it — so at
# least one has to be on.
= ["prov/yaml"]
= ["prov/json"]
= ["prov/toml"]
= ["prov/fig-lang"]
# Render-time body templating: the directive vocabulary (`:::each`, `:::if`,
# `:val`) and the context it resolves against, plus the whole-site entry point.
# Off by default so a consumer that only needs markdown/HTML/nav does not carry
# a context assembler it will not call. It pulls in no template *engine* — the
# structure is twig's directives, which this crate already parses for
# visibility, and the values are a path lookup over `serde_json`.
= ["dep:serde_json", "dep:indexmap"]
# Syntax highlighting for fenced code blocks, via syntect. Off by default for
# the same reason `templating` is, and more so: the grammars travel as an
# embedded binary dump of about a megabyte, which a consumer that only needs
# markdown/HTML/nav should not carry.
= ["dep:syntect", "dep:two-face"]
[]
= { = true }
= { = true }
= "0.22"
= { = true, = true }
= { = true, = true }
# `regex-fancy`, never the default `regex-onig`: oniguruma is a C library, and
# this crate has to keep compiling for `wasm32-unknown-unknown` — the `wasm` CI
# job passes `--all-features`, so the default would take that job down the day
# this feature landed.
#
# `default-syntaxes` is off because `two-face` below supersedes it, and
# `default-themes` because the output is classed rather than styled inline: the
# colours come from `html_format_css.css`, so syntect's own themes are never
# consulted. `plist-load` stays off with them — it reads Sublime themes, which
# for the same reason nothing here loads.
#
# `yaml-load` is the exception, and it is deliberate: it is what parses a
# `.sublime-syntax` from a **string**, which is how a site adds a grammar this
# dump does not carry without this crate ever opening a file.
= { = "5.3", = false, = [
"parsing",
"html",
"regex-fancy",
"yaml-load",
], = true }
# The grammars themselves, as bat packages them. syntect's own bundle is 75
# syntaxes and has no Zig, Swift, TOML or TypeScript — the first two being what
# half this organisation is written in, and the third what every manifest in
# this workspace is. two-face carries 213, including all four, as the same kind
# of embedded dump for about 580 KB more. `syntect-fancy` rather than any
# `-onig` spelling, for the reason above.
= { = "0.5", = false, = [
"syntect-fancy",
], = true }