aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md67
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.