I’m using the most excellent IAT plugin from @EricShulman, but from a while back, I’ve had this strange bug where calendars have a zero-day on months, which breaks the date alignment, the layout, etc.
I have not seen this bug before. However, I have a few questions that might lead to a solution:
What version of the TiddlyWiki core are you using?
What browser/platform?
What version of TiddlyTools/Time/Calendar?
Can you upload your specific TiddlyWiki file (e.g., to https://TiddlyHost.com)? If it contains personal information, we can make arrangements for you to send it to me (via email attachment) so I can try to debug it directly.
Hi @EricShulman, thanks. I ran a git bisect and discovered that I broke the calendar when I installed https://groups.google.com/g/tiddlywiki/c/9hZTwQBuwe8/m/YlRPXrn0BQAJ (which is unfortunate because I like that streaks thing and have accumulated quite a lot of data for it). If I remove it again, the calendar works. I’ll play a bit on my side, No one has seen this bug because it’s my Frankenstein setup that causes it.
If you’re curious, I could prepare a version of my TW. But I’m shy to send you my raw instance because it’s huge and full of personal stuff.
But otherwise, if I figure out something interesting from the debugging, I’ll post it here.
Very thankful for the rapid response. And thanks for the TiddlyTools link. I’m using the old version; seeing if I could upgrade is cool.
As you’ve noted, the problem was caused by EvanBalster’s FormulaPlugin. But it wasn’t caused the “off-by-one” date handling.
Rather, it was the existence of $:/plugins/ebalster/formula/filters/range.js which was overriding the TWCore range[] filter operator. The difference was that the range[] operator defined by FormulaPlugin was 0-based, while the range[] operator in the TWCore is 1-based.
Thus, in my Calendar’s showgrid() macro, where I use <$list filter="[range<dm>]" variable="dd"> to generate the dates in the monthly calendar grid display, Evan’s code added an extra “0” day to each month.
Fortunately, it appears that the most recent revision of FormulaPlugin (v0.2.5 - 3rd February 2018) no longer defines a custom range.js filter, so it doesn’t break usage of the TWCore range[] filter operator and thus allows proper functioning of TiddlyTools/Time/Calendar.