Hi there,
after getting nagged at my blog (http://www.gnegg.ch/archives/354- External-blogging-tools.html) to look into why TextMate's Blogging Bundle behaves strangely with Serendipity blogs, I had a look into the problem.
Actually, there are two problems, but so far, I've only fixed one (it's getting late here):
1) When you have a Date:-Header in your Posting, s9y will interpret the date wrongly and will assume it to be the beginning of the epoch (1970-01-01). This is problably a flaw in s9y and I'll report it there as soon as I know what's going on.
2) The Pings- and Comments-Headers were ignored and Pings/Comments were turned off regardless of what the headers were set to. This is what I've actually looked into this evening (GMT+1 here):
Basically it all comes down to the fact that parse_post (blogging.rb) is unable to cope with empty headers of which s9y produces at least one: s9y always sends an empty mt_convert_breaks-member in the post record and when no tags are defined, it'll also send an empty mt_keywords member.
With an unpatched blogging.rb, this will create something like this (ignore the f*ed up date - that's caused by bug 1) above):
Type: Blog Post (Markdown) Blog: s9y Post: 1 Title: First entry Date: 1970-01-01 02:00:00 +0100 Keywords: Format: Pings: On Comments: On
This causes the parser to stop after the Keywords-header (lines 206/207) which will lead to the following headers to be ignored, thus turning off comments (s9y assumes Comments=off if the information isn't present in the RPC-call).
Now I'm not sure if s9y's behaviour is actually legal here (please enlighten me), but I think the blogging bundle should be able to cope with empty fields.
There are two possible fixes: One is to fix the fields-parser to make it stop bailing out at empty fields. I've attached bb_fixparser.diff which does that. The other way is to make post_to_document stop adding empty format and keyword fields. bb_skipempty.diff does that.
I'm not sure which way is the correct way to go. fixparser has the tendency of working with even more crude blogging engines, while skipempty is what the bundle did so far (look at the handling of mt_tags for example.
Anyways. Please consider merging one of the patches to make the blogging bundle work better with serendipity.
Thanks
Philip