Blogging clients + Drupal are great!... except for an input format problem...
Some of you may be using blogging clients - standalone desktop applications like Ecto, MarsEdit, etc. - to make posts to a Drupal site. For some people, such clients can be much quicker and smoother than working through a slow browser.
I've run into one major problem using MarsEdit with Drupal, though: input formats. Here's the issue:
1. The blogging client (MarsEdit) polls the Drupal site to ask what input formats are available. Drupal replies with the default format (such as Filtered HTML).
2. The blogging client makes its post using the above default format that Drupal reported.
3. If the default format is Full HTML, there's no problem with the post; it comes out nicely. But using Full HTML as the default input format, which is always available to any user, is a big security risk!
4. If the default format is the much-safer Filtered HTML, the resulting post on the Drupal site loses much formatting – in particular, line breaks. It then all needs to be re-edited manually within the Drupal site, which shoots down the benefit of using a blogging client.
5. Setting the Filtered HTML settings to use "Line break converter", just like my Full HTML settings, doesn't help. Neither does the Filter Default module, which can set input format defaults by role; Drupal still reports only the main default to the blogging client.
The question: Is there any way to get Drupal to report an input method other than the default one, when polled by a blog client?
I doubt that this post contains the info needed for someone to puzzle out the answer, but I ask on the off chance that someone's already wrestled with the same topic. Or let me know if there's some specific piece of info I can research to help solve the issue. (The blogging client developer doesn't have the answer, but is responsive to questions.)
FYI, I've discussed the issue in a little more detail at
http://www.drupalace.com/blog_entry_testing_blogging_clients_2_review_ma...
Thanks in advance to anyone who can shed some light!

Filter Default could actually fix this
Filter Default doesn't deal with this right now, it's true. But I think it wouldn't be a big deal to make a patch for it that would do that. There's already some code in the issue queue for the Drupal 6 version of filter_default that could help with this. See #222664: Drupal 6.x upgrades. I'd like this to work as well, so I'll see about hooking it up for the 5.x version.
ETA: Okay, that turned out to be fairly easy. Try the patch here: #184679: Does not work, when posting via blogapi
Still no luck on MarsEdit?
chellman,
Thanks so much for the reply. I only know got around to looking into the matter again for my sites.
From your post at http://drupal.org/node/184679 , I gather that Filter Default 5.x-1.x-dev, posted on 2008-Aug-28, should fix the issue, and allow a blogging client to "see" all input formats, not just the default. Is that understanding correct?
FWIW, updating Filter Default per above (followed by update.php) doesn't do the trick for me using MarsEdit. Whether creating a new blog post, or even creating all-new blog settings, I get no option to use an input format other than the default one available to all users. (I do have BlogAPI enabled, and otherwise think I'm doing everything right...)
Do you have any ideas as to what I might be doing wrong?
--------
Easy Drupal Admin Manual, Drupal questions, other stuff for the newbie: http://www.drupalace.com
Try the stable release
I think this should work with the dev release, but I tested it on what has since become the stable release (5.x-1.0), so try that one first. I tested this using MarsEdit, so if it's not working for you, it would surprise me. Are any PHP messages or other errors appear in your watchdog log?
No dice. : (
I really appreciate the help, and am sorry to report that it's not working for me. I went back from the dev version to 5.x-1.0 (did update.php too, which reported nothing), and restarted MarsEdit just in case, but still nothing: whether a new post, or editing the settings for a blog, the only Text Filter options remain "None" and the Drupal default (i.e., Filtered HTML). Other created formats, like Full HTML, just don't show.
For you, it's working simply via use of the latest stable version of Filter Default, with no extra patches, right?
Well, it must be something odd about my Drupal installation, so I'll poke around. Thanks for the assistance! The fact that it works for some is a great piece of news; I'll eagerly try to find out how to get it working over here too.
(BTW, for anyone reading this down the road: There's a Filter Default module, and a Default Filter module, a wonderfully confusing setup. : ) I happened to come across this short thread that notes the difference. FYI! http://drupal.org/node/234203 )
--------
Easy Drupal Admin Manual, Drupal questions, other stuff for the newbie: http://www.drupalace.com
This is a feature/limitation of blogapi module
Ah, I see. What you're asking for is for the input formats to show up in MarsEdit's Text Filter popup menu. Filter Default doesn't do that, and there are no plans to do that. If you look at BlogAPI module, under the function that returns the supported filters (blogapi_mt_supported_text_filters), you'll see this note:
<?php// NOTE: we're only using anonymous' formats because the MT spec
// does not allow for per-user formats.
?>
Filter Default will override whatever you see in MarsEdit upon creation of a new node, and won't override it when editing. I just ignore that filter popup menu when creating nodes with MarsEdit.
Oh!
Got it. I guess I misread something somewhere; I thought that you had gotten MarsEdit to display and allow all of a blog's possible input formats, not just the default format. (So, out of curiosity, what is the interesting thing that you succeeded in getting Drupal + MarsEdit to do?)
I'm disappointed to hear that Drupal and MarsEdit aren't going to play nicely in the way I was hoping. What I have is this: I can create a blog posting via MarsEdit, using the blog's default input format of Filtered HTML (that's the only choice MarsEdit offers). And the created post is actually formatted fine in Drupal (within the limitations of the Filtered HTML format).
But if I then edit the post for any reason, formatting goes all kablooey; the body text becomes one long paragraph, with no line breaks. For longer posts, that's a deal-breaker that shoots down all that MarsEdity goodness for me. : (
Oh well, a solution will turn up eventually; in the meantime, thanks much for helping me learn more about the issue and confirm some things!
--------
Easy Drupal Admin Manual, Drupal questions, other stuff for the newbie: http://www.drupalace.com
MarsEdit
What's done is making sure that whatever Input Format you've set as your default in the Drupal UI is used when you post from MarsEdit (or any other xmlrpc client). If you edit a post that uses a different input format, that is maintained, but on new posts, the default is used.
This is, I agree, not as useful as it would be to be able to set the input format directly, but I guess this isn't supported in the spec. It may be possible to write a new version of blogapi module (maybe based on Atom, or just not to spec) that would be able to capture the input formats, but that's not something I'm ready to look into.
As for your MarsEdit issue with the formatting going crazy: you should check the input format after you first post the entry, and after you do the subsequent editing. If you're using Filter Default, this isn't supposed to happen. It's supposed to use whatever the default format is for your role when you first post, and never change it afterward. So look into that, and if it's misbehaving, please file a bug.