This part of the help manual is written explicitly for encouraging anyone interested
in the topic to write his/her own system, using whatever he/she wants from these ideas. It is also meant to provide a general overview of how the programlet is internally structured.
The only restriction is that we at The Divinum Officium Project have no legal responsibility for any mistake,
and the ideas cannot be copyrighted, limiting our rights or the access of others to the
The databases are files, which contain the text of the Breviary.
For easier understanding and handling, they are organized into folders. Most files use UTF-8 encoding (which is preferred) but some files may still remain in Win-1252 encoding. If editing files, please be aware of this difference, as it can and will effect the appearance of text. If editing via GitHub in a browser, GitHub will automatically transcode files to UTF-8.
The top level folders are folders for the languages (Latin, English, Magyar, etc.).
At this moment folders are filled up. The basic rule is that if a file is missing,
the program automatically selects from the English.
Each language folder contains the same set of subfolders, which represents the parts of the
printed berviary volumes: Ordinarium, Psalterium, Tempora, Sancti, Commune. For technical reasons,
there are separate folders for the psalms, and for the Martyrologium.
The style and punctuation used within the text is that of the 1962 liturgical books. One space is used between sentences. In accordance with the principles sent to the typographers of the 1960 editiones typicae, the letter J in the 1960 rubrics is transformed to the letter I. (Sacrae Congregatio Rituum, "Ordinationes ad librorum liturgicorum editores", 26.VI.1960)
The files itself usually are converted into Hash elements.
The key is enclosed into square brackets
[ ... ] which is a separate line followed by the body of the element. For instance, [Ant 2] refers to the Benedictus antiphon at Lauds, while [Lectio93] normally refers to the 9th (hagiographical) reading of a commemorated saint (pre-1960), which became the 3rd reading at Matins on 3rd class feasts under 1960 rubrics.
These elements are read and composed by the programlet. The folder and files can be
viewed within the GitHub repository, which shows the files
in the following folders:
- Ordinarium folder is the collection of the scripts describing the canonical hours.
Each hour is represented by two or more files. These files are not converted into hash. A line starting with hashmark organizes the content. These files are used by
special.pl program file. If necessary, there are separate files for the 1960 (name ending with 'r') or Tridentine version (name ending with 't') or for Paschal time (name ending with 'p'.)
- Psalterium folder holds the information usually printed
in the Ordinarium and Psalterium sections of the Breviarium Romanum. Prayers.txt)
contains the common prayers. The rest contains the Benedictions, Doxologies, Psalm 94 prepared
as the Invitatory; seasonal parts for Matins (Matutinum special), Lauds, and Vespers (Major special);
Minor hours (Minor special); antiphons and psalm sets (Psalmi Major|Matutinum|Minor);
Marian antiphons, and special seasonal parts for Prime.
- Transfer folder has the transfer year files. The Tr=Transfer files have
lines, where 'filename' is the name of the office (from the Proprium de Tempore or Proprium Sanctorum) and the
mm-nn is the date in the given year to which it is transfered. For the 1960 rules, there are permanent
and year to year rules. For example, the TR19602018.txt file has the appropriate transfers for the 1960 rubrics in 2018. It is an ongoing project to establish a perpetual calendar calculation algorithm which would take all anomalies into account. Please help.
- psalms folder holds the 150 psalms, and the
- 210-216 = Laudes 1
- 220-226 = Laudes 2
- 231-234 = New Testament canticles and the Quicumque
The verses are numbered by chapter:verse numbers, and anything in parentheses
is printed in small red font.
- Tempora folder holds the offices from the
Proprium de Tempore Each office has exactly one file,
and each is hash collection
Naming convention is:
Season name w-d
where w is the week of the season, and d is the day of week. (Example: Pent04-2 represents Tuesday of the 4th week after Pentecost.)
- Sancti is the same collection for the
Naming convention is:
where mm is the month, nn is the day. (Example: 07-26 represents July 26, Feast of St. Anne.) For practical reasons, unlike in
the Roman Breviary, the Chrismastide offices are set within the Sancti folder.
- Commune is the collection for
Commune sanctorum. The name of the office is
under the first key: Name. See below for examples.
For practical reasons, the Officium Sanctae Mariae Sabbato is referenced by the programlet from its position among the Tempora files as C10.
- Martyrologium contains the files named as mm-nn for the
Martyrologium. Please note that the Martyrology at Prime is anticipated for the subsequent day. See credits for the sources.
The programs are written in Perl 5.6 and generate HTML.
The following program files are used:
- officium.pl Starts the Divinum Officium programlet. Composes the main image and
also calls other programs.
- horas.pl Common extension of the starting perl files. Interprets the special
characters and prints out the officium for the selected hour.
- special.pl Common extension of the starting perl files. Fills up the skeleton
chapters with the actual content from the databases.
- horascommon.pl Common extension of the starting perl files, also used
by kalendar and edit top level files.
The file selects the current date,
and the office for any given date, deciding about the precedences.
- dialogcommon.pl Helper set to interpret the defaults and
- webdia.pl Helper set to generate the dialog table, special html parts
of the office tables, and also reads/writes cookies.
- setup.pl Generates the dialog box to set the parameters
for web versions.
- popup.pl Generates a popup window if requested by the horas page.
- kalendar.pl List the Kalendar for the web versions and
makes it possibile to select a specific date. Uses horascomon.pl and horas.pl sets.
- edit.pl. Shows the datebase program and other files
for the web versions. Uses horascommon.pl set.
- Files is the collection of the internal databases for the
Either the files in the Ordinarium, and the other files are using special characters
to help the formatting. Each of them, with the exception of the ~ tilde sign,
has to be set in the beginning of a line.