diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-21 12:19:43 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-08-21 12:19:43 +0200 |
| commit | 055deaedd6bc1acb770bd96b7da8f985ab0f4f0b (patch) | |
| tree | 6b453cd7a8fcaa7f8e4e257fa46c6a720778e8f4 /lib/naming | |
| parent | aaf3dc5ba55d46b6b318bb761305013f4c533b26 (diff) | |
| download | colitur-055deaedd6bc1acb770bd96b7da8f985ab0f4f0b.tar.gz colitur-055deaedd6bc1acb770bd96b7da8f985ab0f4f0b.zip | |
feat(config): flavour is settable, and an INI overlay is diagnosed
The escaping flavour was the one rendering setting with no config key,
so a template whose extension says nothing needed the flag every run.
Unset still means infer, which config --show reports as (infer) rather
than (none).
Backfills the 0.8.0 and 0.9.0 changelog entries. Both were tagged by
hand rather than through 'make release', which is precisely the guard
that would have refused a release with no changelog line.
Diffstat (limited to 'lib/naming')
| -rw-r--r-- | lib/naming/config.ml | 5 | ||||
| -rw-r--r-- | lib/naming/config.mli | 10 |
2 files changed, 14 insertions, 1 deletions
diff --git a/lib/naming/config.ml b/lib/naming/config.ml index 068b40a..4077da0 100644 --- a/lib/naming/config.ml +++ b/lib/naming/config.ml @@ -5,6 +5,7 @@ type t = { overlays : string list; template : string option; format : string option; + flavour : string option; sigla_style : string option; sigla_book : string option; sigla_tradition : string option; @@ -13,13 +14,14 @@ type t = { } let empty = - { lang = None; overlays = []; template = None; format = None; sigla_style = None; + { lang = None; overlays = []; template = None; format = None; flavour = None; sigla_style = None; sigla_book = None; sigla_tradition = None; unknown_keys = []; unknown_sections = [] } let lang t = t.lang let overlays t = t.overlays let template t = t.template let format t = t.format +let flavour t = t.flavour let sigla_style t = t.sigla_style let sigla_book t = t.sigla_book let sigla_tradition t = t.sigla_tradition @@ -71,6 +73,7 @@ let of_string text = | "lang" -> { acc with lang = Some v } | "template" -> { acc with template = Some v } | "format" -> { acc with format = Some v } + | "flavour" -> { acc with flavour = Some v } | "sigla_style" -> { acc with sigla_style = Some v } | "sigla_book" -> { acc with sigla_book = Some v } | "sigla_tradition" -> { acc with sigla_tradition = Some v } diff --git a/lib/naming/config.mli b/lib/naming/config.mli index a5205c4..0dda906 100644 --- a/lib/naming/config.mli +++ b/lib/naming/config.mli @@ -29,6 +29,16 @@ val overlays : t -> string list val template : t -> string option val format : t -> string option +(** The template ESCAPING flavour ([latex] | [typst] | [groff] | [html] | + [xml] | [ics] | [none]). + + Only consulted when the flavour cannot be inferred from the template's + own extension, which is the usual case -- a template named [.tex] needs + no setting. It exists for the template whose extension says nothing, + and getting it wrong produces output that is malformed rather than + merely ugly, so there is deliberately no silent fallback. *) +val flavour : t -> string option + (** Which citation style to render a reference in: a language CODE, looked up the same way {!lang} is, or a path -- but a DIFFERENT axis from {!lang}: a language file's own [\[sigla\]] section IS a style |
