diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..e6b494c --- /dev/null +++ b/README.md @@ -0,0 +1,67 @@ +# clectio + +tiny, fast, suckless daily readings. + +clectio prints the Catholic liturgical day and its Mass readings for any date. +It computes nothing at run time: the calendar, the reading citations and the +scripture text are all compiled in. One table lookup, no config file, no +network, no dependencies beyond libc. The default text is the public-domain +Latin Vulgate, and the whole program fits on a 1.44 MB floppy. + +It is the small cousin of [lectio](https://github.com/lukaszkasprzak/lectio), +the Go engine that computes and generates clectio's data. + +## Build + + make # Ordinary Form, English sigla, Latin Vulgate + ./clectio # today + ./clectio 2026-12-25 # a given date + make install # into $PREFIX/bin (default /usr/local) + +Needs only a C99 compiler and libc. It builds in about a second. + +## Configure (suckless style) + +Edit `config.h` (copied from `config.def.h` on first build), then `make`: + + * `FORM_OF` / `FORM_EF` — Ordinary Form (1969) or Extraordinary Form (1962) + * `SIGLA_ENGLISH` / `SIGLA_LATIN` — citation dialect (`Jer 14` vs `Ier 14`) + * `COLOR` — colour the day name with its liturgical colour + +One form per binary; for both, build twice. The interface is English only. + +## Bring your own Bible + +The default build embeds the Latin Vulgate. To compile with another +translation, hand `make` a corpus in the same 6-column TSV format +(`Book<TAB>Abbrev<TAB>BookNum<TAB>Chapter<TAB>Verse<TAB>Text`), using Vulgate +chapter/verse numbering: + + make CORPUS=/path/to/mybible.tsv + +clectio compiles in only the ~12000 verses the lectionary actually cites, so the +binary stays around 1 MiB whatever the Bible. A verse the corpus lacks prints +blank; it never fails the day. + +## Coverage + +The compiled calendar runs 2025–2054. Dates outside that range are reported, not +guessed. To extend it, regenerate `gen/` with lectio's `clectio-gen`. + +## Files + + clectio.c the program: date -> table lookup -> print + config.def.h compile-time configuration + lz.h a tiny LZSS codec (keeps the compiled text small) + mktext.c build tool: resolve verse keys against a corpus, pack the text + bin2h.c build tool: embed the packed text as C + gen/ generated, corpus-independent data (calendar + citations) + text_of.lz the default Vulgate text, packed (one per form) + +## Licence + +clectio's own code is ISC (see `LICENSE`). The data in `gen/` is generated from +lectio and is dates and scripture *references* — facts, not copyrightable. The +compiled scripture *text* is a separate work under its own terms; the default, +the Latin Vulgate, is public domain. Distribute a build made with a different +Bible only where that translation permits it. |
