From 27a8fbdf738f7fdb4c9a42ec99f08855dbed440b Mon Sep 17 00:00:00 2001 From: Lukasz Kasprzak Date: Wed, 19 Aug 2026 09:47:41 +0200 Subject: feat(templates): ordo booklet in six flavours, pinned by goldens LaTeX and groff are the print paths; HTML carries a print stylesheet; AsciiDoc, Markdown and plain text are the plain-consumer paths. AsciiDoc and Markdown use flavour none, and say so in a comment: their metacharacters are context-dependent and escaping them aggressively produces worse output than not escaping. The consequence is real and documented -- a feast name containing * renders as emphasis. Golden tests pin all six byte-for-byte for 2027. They prove the templates RENDER, not that they TYPESET; compiling needs TeX and groff, which is Task 13's opt-in make check-templates. --- templates/ef/ordo.adoc | 25 +++++++++++++++++++++++++ templates/ef/ordo.html | 28 ++++++++++++++++++++++++++++ templates/ef/ordo.md | 23 +++++++++++++++++++++++ templates/ef/ordo.ms | 27 +++++++++++++++++++++++++++ templates/ef/ordo.tex | 33 +++++++++++++++++++++++++++++++++ templates/ef/ordo.txt | 10 ++++++++++ 6 files changed, 146 insertions(+) create mode 100644 templates/ef/ordo.adoc create mode 100644 templates/ef/ordo.html create mode 100644 templates/ef/ordo.md create mode 100644 templates/ef/ordo.ms create mode 100644 templates/ef/ordo.tex create mode 100644 templates/ef/ordo.txt (limited to 'templates') diff --git a/templates/ef/ordo.adoc b/templates/ef/ordo.adoc new file mode 100644 index 0000000..13d09ec --- /dev/null +++ b/templates/ef/ordo.adoc @@ -0,0 +1,25 @@ +// colitur ordo booklet -- AsciiDoc. flavour: none (see man colitur-overlay) +// AsciiDoc's own metacharacters (*, _, +, `, ...) are context-dependent, so +// this template's flavour deliberately does NOT escape interpolated values. +// A feast name containing `*` or `_` will render as emphasis. That is a +// documented limitation, not a bug to fix. +// +// Day label falls back to the slug when the day carries no Latin name (most +// temporal days, and most sanctoral entries, which are Latin-less in the +// shipped data) -- see ordo.tex's own comment for why the fallback is +// written as a name-section wrapping a plain var and its inverse, rather +// than a single dotted lookup and its inverse. += Ordo {{year}} · {{rite}} +:toc: + +{{#months}} +== {{name.la}} + +{{#days}} +*{{dom}}* {{#name}}{{la}}{{^la}}{{slug}}{{/la}}{{/name}} + +{{rank}} · {{colour}} + +{{#first}}Ep. {{first}} {{/first}}{{#gospel}}Ev. {{gospel}}{{/gospel}} +{{#comms}} + +Com. {{slug}}{{/comms}} + +{{/days}}{{/months}} diff --git a/templates/ef/ordo.html b/templates/ef/ordo.html new file mode 100644 index 0000000..e516816 --- /dev/null +++ b/templates/ef/ordo.html @@ -0,0 +1,28 @@ + + + + +Ordo {{year}} + +

Ordo {{year}} · {{rite}}

+{{#months}}

{{name.la}}

+{{#days}}
+ {{dom}}{{#name}}{{la}}{{^la}}{{slug}}{{/la}}{{/name}} +
{{rank}} · {{colour}}{{#first}} · Ep. {{first}}{{/first}}{{#gospel}} · Ev. {{gospel}}{{/gospel}}
+ {{#comms}}
Com. {{slug}}
{{/comms}} +
+{{/days}}{{/months}} + diff --git a/templates/ef/ordo.md b/templates/ef/ordo.md new file mode 100644 index 0000000..606ea01 --- /dev/null +++ b/templates/ef/ordo.md @@ -0,0 +1,23 @@ + + + +# Ordo {{year}} · {{rite}} + +{{#months}} +## {{name.la}} + +{{#days}} +**{{dom}}** {{#name}}{{la}}{{^la}}{{slug}}{{/la}}{{/name}} +`{{rank}}` · {{colour}}{{#first}} · Ep. {{first}}{{/first}}{{#gospel}} · Ev. {{gospel}}{{/gospel}} +{{#comms}} +- Com. {{slug}} +{{/comms}} + +{{/days}}{{/months}} diff --git a/templates/ef/ordo.ms b/templates/ef/ordo.ms new file mode 100644 index 0000000..db9b9fc --- /dev/null +++ b/templates/ef/ordo.ms @@ -0,0 +1,27 @@ +.\" colitur ordo booklet -- groff ms. flavour: groff +.\" Build: colitur table --year 2027 --template ordo.ms | groff -ms -Tpdf > ordo.pdf +.\" +.\" Day label falls back to the slug when the day carries no Latin name (most +.\" temporal days, and most sanctoral entries, which are Latin-less in the +.\" shipped data) -- see ordo.tex's own comment for why the fallback is +.\" written as a name-section wrapping a plain var and its inverse, rather +.\" than a single dotted lookup and its inverse. +.TL +ORDO {{year}} \(bu {{rite}} +{{#months}} +.SH +{{name.la}} +.LP +{{#days}} +.IP "{{dom}}" 4 +{{#name}}{{la}}{{^la}}{{slug}}{{/la}}{{/name}} +.br +\s-2{{rank}} \(bu {{colour}}\s+2 +{{#first}}.br +\s-2Ep. {{first}}\s+2 +{{/first}}{{#gospel}}.br +\s-2Ev. {{gospel}}\s+2 +{{/gospel}}{{#comms}}.br +\s-2Com. {{slug}}\s+2 +{{/comms}}{{/days}} +{{/months}} diff --git a/templates/ef/ordo.tex b/templates/ef/ordo.tex new file mode 100644 index 0000000..6012753 --- /dev/null +++ b/templates/ef/ordo.tex @@ -0,0 +1,33 @@ +% colitur ordo booklet -- LaTeX. flavour: latex +% Build: colitur table --year 2027 --template ordo.tex > ordo.tex && pdflatex ordo.tex +% +% Day label falls back to the slug when the day carries no Latin name (most +% temporal days, and most sanctoral entries, which are Latin-less in the +% shipped data). The fallback is written as a name-section wrapping a plain +% var and its inverse, deliberately NOT as a single dotted-path lookup +% followed by its own inverse: a dotted lookup that misses climbs to the +% enclosing scope for the WHOLE path, and the month object also carries a +% same-named key one level up, so the naive form would render the month's +% own Latin name on every day lacking one, and never fall back at all. +\documentclass[10pt,twoside]{article} +\usepackage[a5paper,margin=15mm]{geometry} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{fancyhdr} +\pagestyle{fancy} +\fancyhead[C]{ORDO {{year}} \textperiodcentered\ {{rite}}} +\setlength{\parindent}{0pt} +\begin{document} +{{#months}} +\section*{ {{name.la}} } +{{#days}} +\textbf{ {{dom}} } \quad {{#name}}{{la}}{{^la}}{{slug}}{{/la}}{{/name}}\\ +\small {{rank}} \textperiodcentered\ {{colour}}\\ +{{#first}}\small Ep. {{first}}\quad{{/first}}{{#gospel}}\small Ev. {{gospel}}{{/gospel}}\\ +{{#comms}}\small Com. {{slug}}\\ +{{/comms}} +\medskip + +{{/days}} +{{/months}} +\end{document} diff --git a/templates/ef/ordo.txt b/templates/ef/ordo.txt new file mode 100644 index 0000000..aba121a --- /dev/null +++ b/templates/ef/ordo.txt @@ -0,0 +1,10 @@ +{{#months}} +{{name.la}} {{year}} +{{#days}} +{{dom}} {{slug}} + {{rank}} · {{colour}} +{{#first}} Ep. {{first}} +{{/first}}{{#gospel}} Ev. {{gospel}} +{{/gospel}}{{#comms}} Com. {{slug}} +{{/comms}}{{/days}} +{{/months}} -- cgit v1.3