Progressive Calenders

No, not that kind of “progressive”, the Wondermarkian sort, also called a continuous calendar. Every time he creates one of these in Illustrator and posts it, I save it away with the idea of knocking together a Perl script to generate my own. It only took 4 years for me to get around to it…

Let’s see if I can make a sensible download page for these:

The script needs some cleanup before I inflict it on the world (most likely as a web form). Also better font-handling; not only is there a hilarious bug in the header auto-sizing, but there are baseline issues with many (mostly CJK) fonts that make it tricky to position the numbers. I also need to make the locale-handling friendlier; the Perl DateTime module automagically pulls in month and day-of-week names for any language supported by locale(1), but specifying them as ja_JP, ko_KR, ru_RU, etc is “less than user-friendly”, and you have to switch to an appropriate font.

Sadly, the obvious free choice for a font that supports pretty much any language would be Noto, but its CJK fonts don’t work with PDF::API2.

One feature that’s still in progress is custom colors and text for specific dates. The idea is to feed it a custom list of holidays, birthdays, etc. Since I’m still working on text placement, right now it just sets foreground and background colors, which was enough for marking up a one-page, one-month vacation calendar for our upcoming Japan trip: red for flights, orange for shinkansen trips, blue for flea market days, and yellow background for “oh, crap, it’s Golden Week”.


…and I’ve fixed the silly font sizing/positioning bugs and re-uploaded. Part of my problem was that I was fighting some silly fonts, and the epicycles required to position them vertically were screwing with the non-silly fonts. I still have a fudge factor in the script, but now it’s based on identifying the silliness (capheight or ascender >= bbox ymax).

Just noticed…

Trello’s calendar add-on works this way, but with just a subtle shading change as you move between months (along with the gray-on-gray text thing, which never fails to annoy me).

Comments via Isso

Markdown formatting and simple HTML accepted.

Sometimes you have to double-click to enter text in the form (interaction between Isso and Bootstrap?). Tab is more reliable.