Lectionary.jl

Published

May 7, 2024

Summary

Lectionary.jl is a Julia package that coordinates the liturgical calendar year with the Gregorian civil calendar and with the readings from the Revised Common Lectionary (RCL).

Documentation

Learning the package Using the package
Hands-on Try a tutorial to start using the package Find recipes for specific tasks
Cognition Learn how the liturgical year and the RCL work See reference information (including API documentation for all exported functions)

Brief example

Construct a specific day in the calendar of a liturgical year:

using Lectionary
lityear = LiturgicalYear(2023)
second_epiphany = epiphany(2, lityear)
the second Sunday after the Epiphany, January 14, 2024

The RCL defines a single passage for each of the four readings for this day, but the first reading and the Psalm include options for shorter or longer selections of the passage:

reading1(second_epiphany)
1-element Vector{Vector{Union{CitableText.CtsUrn, String}}}:
 ["1 Samuel 3.1-3.10", "1 Samuel 3.11-3.20"]
reading1(second_epiphany, urns = true)
1-element Vector{Vector{Union{CitableText.CtsUrn, String}}}:
 [urn:cts:compnov:bible.1_samuel:3.1-3.10, urn:cts:compnov:bible.1_samuel:3.11-3.20]
psalm(second_epiphany)
1-element Vector{Vector{Union{CitableText.CtsUrn, String}}}:
 ["Psalm 139.13-139.18"]
reading2(second_epiphany)
1-element Vector{Vector{Union{CitableText.CtsUrn, String}}}:
 ["1 Corinthians 6.12-6.20"]
gospel(second_epiphany)
1-element Vector{Vector{Union{CitableText.CtsUrn, String}}}:
 ["John 1.43-1.51"]

The Gospel reading for Christmas Day offers a choice between two alternatives:

christmas_day(lityear) |> gospel
2-element Vector{Vector{Union{CitableText.CtsUrn, String}}}:
 ["Luke 2.1-1.14"]
 ["Luke 2.1-2.20"]

Current status

The current release includes complete RCL readings for Year B. Subsequent releases will add readings for Years A and C.