Not sure how I overlooked it before, but Google has a Structured Data Testing Tool which, like the plugin I mentioned previously, also doesn’t recognized external JSON-LD. So obviously I’ll have to start embedding it, which is dumb, dumb, dumb. I can point Goog directly at the JSON files and it’ll validate them, though. Predictably, it imposes its own idiosyncrasies on the “standard,” though - it insists on having a logo for a publisher, and of course the publisher has to be an organization even though the standard says it can also be a person. But Goog’s the 800-lb gorilla here, so I made the changes it insisted on and Wirebird is JSON-LD compliant. Aside from the embedding issue, anyway.
I’ve also almost gotten it accepting entries by mail. Email::Folder isn’t properly pulling from my IMAP folder, so right now I’m manually saving them into a maildir from Thunderbird. I suspect the problem’s with our certificate (since it was working earlier) but Email::Folder isn’t throwing any errors so I’m not sure. We’re migrating to a new server, so I’ll look further into it after that. But this will make it easier for the neighborhood-association president to post the newsletter and such. It’ll also let me put a post-from-web form up… which will just build an email, enabling me to keep the whole thing static because that amuses me.