MarsEdit 3.5: Formatting Macros, Full-Screen Mode, Tumblr Tweaks
April 20th, 2012MarsEdit 3.5 is now available on the Mac App Store and directly from the Red Sweater Store. This is a free update for licensed MarsEdit customers.
Rich-Text Formatting Macros
When MarsEdit 3.0 was released two years ago, it marked a major transformation in the product. Previously the app was completely focused on providing a means to edit blog posts in HTML, Markdown, or other text based markup languages. With 3.0, I added the long-requested “WYSWIYG” rich-text editing that many customers prefer when working with web content.
But given the considerable work to achieve MarsEdit’s rich text editor, there were some loose ends. One of those loose ends had to do with the very powerful formatting macros available in plain-text mode. These formatting macros are completely user-customizable and allow users to add their own markup templates for virtually any kind of purpose, filling in the details with values from the editor such as the selection, the pasteboard, etc. Various complexities prevented this powerful formatting macro concept from being available to users in rich-text mode.
With MarsEdit 3.5, custom formatting macros are finally available in rich-text mode. I have already discovered some edge cases that don’t work perfectly, but for inserting arbitrary HTML snippets or “wrapping” the selected text in the rich editor with a particular style, these custom macros are very useful. Starting with this release, you can also customize the keyboard shortcut for any formatting macros, whether they are built-in or custom.
The possibilities are limitless, but to illustrate with a simple example, imagine you commonly find yourself wanting green text in your blog posts. The following formatting macro will take whatever text happens to be on the pasteboard, and insert it into the edited post with HTML markup for coloring it green:
Lion Full-Screen Mode
Shortly after Lion 10.7 was released, I added nominal support for full-screen mode to MarsEdit. The problem was, it wasn’t very useful for real-world writing scenarios. My mistakes? I merely zoomed the post editor window to occupy the entire height and width of the screen. Most users found this awkwardly huge editor space impossible to work comfortably in, so found themselves avoiding the full-screen mode, even though they liked the idea in concept.
I made a relatively simple tweak for 3.5 that should improve things dramatically. When you enter full-screen mode on Lion, the current width of your editor is preserved, and only the height is zoomed to occupy the full screen space on your Mac. Here’s a shrunken example for the MarsEdit post editor I’m using to write this entry:
Of course, it’s easy to imagine a number of ways that full-screen could be even more improved. Incorporating the preview window optionally into the space, offering to hide the Title and other fields, etc. But this is a step in the right direction.
Tumblr Tweaks
I won’t mince words: as a developer, I have a love-hate relationship with Tumblr. The service is immensely popular but in many regards their API (even the newer one, which I admit I’m not using yet) falls short when it comes to providing the services MarsEdit users expect. For example, it’s extremely frustrating that it remains impossible to upload images apart from photo posts. Over the years since I first added support for Tumblr, I have often wondered how much effort I should bother put in, when the service doesn’t seem too interested in catering to offline editing clients. But that doesn’t excuse the fact that many important features are supported by the API, and I haven’t had time to implement support for them yet in MarsEdit. I’m starting to chip away at those now.
MarsEdit 3.5 supports publishing entries to Tumblr as server-side drafts. I decided to tackle this one now because it’s one of the most frequently requested features from my Tumblr-using customers, and because it’s possible to implement correctly with Tumblr’s API. I tried to tackle “queue” type posts with this release as well, but ran into issues with the API that forced me to put that back on the shelf for now.
I also made some minor adjustments to the post editor UI for Tumblr to prevent some issues with Quote and Chat style posts.
Everything Else
I managed to fit a lot of little fixes and nagging shortcomings for this release. It’s hard to quantify all of those little details with much more than a bullet line in a list, so I’m listing the complete list of changes below. Hopefully you’ll just find this release to feel overall more finished and refined than before, and I hope to continue that trend on into the future.
- Highlighted Enhancements
- Improved support for Lion full-screen mode
- Custom Formatting Macros now work in Rich Text mode as well as HTML mode
- Support for editing Tumblr Draft posts
- Post Editor enhancements
- A number of improvements to Rich Text editor to address minor formatting bugs
- Unified Formatting Macro menu for HTML and Rich Text modes
- Draggging an image to the post editor now causes inserted image to go to expected target location in text
- Fixed performance issues that could cause very slow typing in some configurations
- Fixed keyboard-based text selection in the HTML editor to avoid getting stuck on line endings
- Fix a slight mismatch in background color between Rich and HTML Text editing modes
- Work around hanging issues with External Editing in some apps
- Tumblr-specific enhancemeents
- Added support for server-stored Drafts
- Fixed Word Count feature to work properly with Tumblr Quote and Chat posts
- Revised Tumblr interface for Chat-style posts to prevent formatting problems
- Other changes
- Added support for browsing Lightroom 4 libraries
- New support for unicode characters in URLs
- Bug fixes for improved Media Manager reliability
- Fixed an issue where uploaded attachments would fail without prompting for password on authentication errors
- Added support for authenticated proxy servers
- Prevent a crash that occurred when working with Blog.de system’s categories
- Improved XML sanitizing to increase compatibility with malformed blog content
- Fix a bug that prevented locally added tags from becoming part of the tag-suggestion history
April 21st, 2012 at 9:21 am
I’ve tried MarsEdit again and again, but it simply does not have the rich feature set I found in ecto, which is (sadly) no longer supported by its developer. The key feature of ecto that I like is the ability to load ALL WordPress posts from my blog into an internal database, making it very easy to link to any of my other posts — or copy content from them — while composing offline. This feature also gives me an offline database of all 2000+ posts on my blog that’s much easier to search than with WordPress, making it a great tool for looking up things I’ve written about in the past.
I contacted the makers of MarsEdit to request this feature and they said they’d consider it. That was at least two years ago. Have the added it with this release? Frankly, for me, it’s not worth installing and trying it yet again unless they have.
I know MarsEdit has lots of fans, but I really believe that’s simply because so few people have heard of ecto. Now, of course, I can’t recommend ecto; it works with Lion and I’ve had it working with Mountain Lion, but how long before it breaks and won’t be fixed. That’ll be a very disappointing day for me.
April 21st, 2012 at 9:24 am
Silly me. I thought I was posting my comment on someone else’s blog — not the MarsEdit site. That’s what I get for commenting before my first cup of coffee.
But my question stands: have you added the ability to store all blog posts in an internal database that can be referred to offline? That’s the feature I need to switch to MarsEdit.
April 21st, 2012 at 10:57 am
Hi Maria – let me get straight to the point here: No, MarsEdit doesn’t yet offer a feature to reliably archive all of your posts offline.
The reason it doesn’t offer this is somewhat more complicated than it might appear, and it contributes to the reason it’s been two years since we spoke about it, and yet the feature still isn’t there. The problem is rooted in the fact that most APIs, including the API for WordPress, which is the most popular blog system among my users, don’t offer a means of reliably, efficiently downloading the entire contents of a blog.
When you speak of ecto supporting a feature like this, it deserves three important caveats:
1. You must set the “number of posts” to download very high on the first use, e.g. if you have 500 posts on your blog you must set it to 500 to make sure you get them all.
2. Setting the number very high has a good probability of causing errors on your web server, leading to confusing errors during the refresh.
3. For any reasonable use of the app going forward, you have to change the number of posts back down to a reasonable number like 50. You can leave it at 500 but refreshes will always be very slow, and as soon as you have 501 posts, you’ll be missing some of the content.
The behaviors of Ecto and MarsEdit are very similar in most regards, with a key distinction being that when you refresh in MarsEdit, it always wipes out whatever you’ve got and restores the list with the exact posts that you just asked it download. The reasoning here is I don’t want customers to end up with stale copies of posts… if you change the number of posts to download from 500 to 50, then only the most recent 50 would be updated, leaving 450 “stale” posts that may not reflect the server accurately. Ecto does allow the stale items to remain, and addresses this risk to some extent by doing a comparison at publish time to try to prevent updating a post with stale content.
In the future, I’m hoping that a combination of improvements to APIs and some clever tricks I can do will make it possible to support something that reasonably approximates the feature you’re looking for, but the reason I haven’t done it yet is “it’s complicated.”
I hope this puts the shortcoming into some perspective at least.
April 28th, 2012 at 6:14 am
Hi Daniel
I’m an ex-Blogo user which very sadly seems to have finally died. Am now switching to Mars Edit. I think you’ve been asked this before elsewhere but there is one feature that I am really missing: when you insert or drag an image into a post, Blogo was automatically able to resize it to a (preference defined size) thumbnail, upload that AND the original image at full 1600px width and link the thumbnail to the 1600px hi-res image in the post. (ie. default behaviour of any image that was inserted was a tick box ticked to say “Link to full size image”). I used this to allow simple hi-res image links as it was super quick and required no resizing or separate uploads. I’m using Blogger. Is there any plan to implement a feature similar to this in Mars Edit?
Thanks, Ian