Files
funkpower d0efc56312 The Sundays the calendar was not naming, and a calendar that keeps every day
Nine Sundays went unnamed in every jurisdiction. Three were missing from the
movable cycle outright: the Paralytic, the Samaritan Woman and the Blind Man,
so the fourth, fifth and sixth Sundays of Pascha reported only the saint of the
fixed date. Six more are reckoned from a fixed feast rather than from Pascha —
before and after the Exaltation, the Forefathers, before and after the
Nativity, before and after the Theophany — and were not modelled at all.

The three Pentecostarion Sundays rank with Thomas Sunday and the Myrrh-bearing
Women, so a vigil-rank saint still keeps the day and the Sunday is commemorated
on it. The six fixed-cycle ones never name a day: they are found in
ecclesiastical space, so the old calendar and the new get them on the right
morning, and they join the commemorations. Where a short window holds no Sunday
the Typikon says what to do and this follows it; where the books disagree, the
day goes unmarked rather than carrying an answer this calendar cannot defend.

`week` says where a day falls in the count from Pentecost, which is how the
books head the long ordinary stretch. It runs on across the new year and stops
at the Triodion, whose Sundays have names instead of numbers.

`--every-day` gives ics an event for every day, ferias included. The default
still thins the calendar, which is right for a subscription and wrong for a
reader who wants the saint of each morning; and the description now leads with
the commemorations rather than burying them under the church date.

Checked against 1.1.2 over every jurisdiction from 2015 to 2035: rank, feast
and title move on the three new Sundays and nowhere else. No fast, obligation,
binding or season changes on any day.
2026-09-21 09:28:27 -04:00

50 lines
1.8 KiB
TOML

[package]
name = "typikon"
version = "1.2.0"
edition = "2021"
rust-version = "1.85"
description = "The Orthodox liturgical day: feasts, seasons and the fast, computed rather than fetched. Twenty Orthodox jurisdictions and four Byzantine Catholic churches, across the Julian, Revised Julian and Gregorian reckonings."
license = "GPL-2.0-only"
repository = "https://git.pumpin.online/funkpower/typikon"
readme = "README.md"
keywords = ["orthodox", "liturgical", "calendar", "byzantine", "pascha"]
categories = ["command-line-utilities", "date-and-time"]
[dependencies]
serde = { version = "1", features = ["derive"] }
serde_json = "1"
clap = { version = "4", features = ["derive"] }
pyo3 = { version = "0.27.2", features = ["extension-module", "abi3-py39"], optional = true }
# The JavaScript build. `js-sys` is here only for the clock: WebAssembly has no
# time of its own, so `today()` has to ask the host what day it is.
wasm-bindgen = { version = "0.2", optional = true }
serde-wasm-bindgen = { version = "0.6", optional = true }
js-sys = { version = "0.3", optional = true }
[profile.release]
strip = true
lto = true
codegen-units = 1
[[bin]]
name = "typikon"
path = "src/main.rs"
[lib]
name = "typikon"
path = "src/lib.rs"
crate-type = ["cdylib", "rlib"]
[features]
# Only maturin turns this on. pyo3's extension-module feature leaves the Python
# symbols to be resolved by the interpreter at load time, so a normal `cargo
# build` of the CLI would fail to link if it were on by default.
python = ["dep:pyo3"]
# The C ABI. Off by default so an ordinary `cargo build` of the CLI does not
# also compile and link a shared library nobody asked for.
capi = []
# The JavaScript and TypeScript build, via WebAssembly. Only ever compiled for
# a wasm32 target.
wasm = ["dep:wasm-bindgen", "dep:serde-wasm-bindgen", "dep:js-sys"]