Saturday, January 31, 2009

Quick update

This is just a quick update, with the disclaimer that I haven't made any new updates. I've fixed a couple of typos and such, but mostly I'm doing some behind the scenes work for a couple of days to "prepare the way" for future work on the proper of saints, so to speak. The short version is that this will make consistent formatting much easier in the future, and should make most III class feasts and commemorations much easier to do.
For the detailed explanation, click here!


A more detailed (somewhat technical) explanation follows:

Okay, you asked for it! As some of you are aware, I've been doing this in a word processor known as OpenOffice. It is very similar to Microsoft Word, and is completely free. Well, about 4 or 5 months ago, I discovered that the format that the files are saved in is XML, which is similar in many ways to HTML, the language of web pages.

I made the decision that it would be much better to transition all of the content over into a text-based format, and to write little miniature programs to generate the formatting and structure. This is how most of the content is done now. For example, all of the psalms are in simple text files, with one verse per line. When my program reaches a psalm, it sees something like this: "psalm(50)". That tells it to call the special "psalm" program I wrote. The psalm program then gets the latin/english psalm 50 files, and automatically generates all of the XML stuff necessary to make the title line, the drop cap at the beginning, the font size/style, the parallel language, etc.; and all of this gets automatically inserted in the new OpenOffice document file that it's generating, at exactly the right place. (Or in the case of Psalm 50, it gets inserted at exactly the right TEN places!). And if I make one small change, all ten copies get updated automatically.

So hopefully you can see that this would have a lot of benefits. Now one other benefit is that there is really no limit to the amount of little programs I can write. For example, based on the Lulu page limits I'm somewhat hesitant to include all of the antiphons and versicles/responses for Lauds & Vespers in every III class feast. These could add another 50 or 100 pages by the time all is done. BUT! if I ever have this professionally printed, this would be something that really should be in there. For instance, if a Saint's feast falls on an Ember day, the saint would normally be commemorated. To do a commemoration, you need the Antiphon at the Benedictus, the Versicle/Response, and the prayer. With the current format, you have to go first to the common of saints for the Ant. & V/R, and then to the propers for the prayer. That makes for a lot of page-flipping, and can be confusing.

My work this week has been in this spirit. There is no reason that I can't write a little program for all "normal" III class feasts, which would automatically add the antiphons/versicles if I want it to, and would hide them otherwise. That way it would all happen automatically, and all at once. No chance I'd forget one.

As a reward for suffering through all of that technical stuff, I'll say this: I think I'm pretty close to having all of this stuff done, and once It's done...the February propers should go rather quickly. I'm hopeful that by next week I'll have a new edition up on the web, which includes all of the February Saints.

3 comments:

  1. David,

    Thanks for the update! I find it very interesting how you devised a way to pick and choose components of the layout. As I have said many times, I am very excited about this project.

    ReplyDelete
  2. I just received the print copy of the version described in this update. This is the third revision of this book I bought over the past year and I am very happy to see all the progress. I'm thinking this copy will get me through until the rest of the proper of saints is complete. In the interim I think I will just print out the propper of saints from the Stanbrook diurnal and just carry the necessary pages(s) with me each day.

    ReplyDelete