Outlining a Blog
January 18, 2006
In one of the more surprising events of the new year for me, my good friend and role model Rebecca Blood has started using Movable Type for her seminal, influential blog "What's in Rebecca's Pocket".
The thing is, the application works sufficiently differently from the workflow she's established over the past half-decade-plus that she's been blogging that I'm trying to figure out the best toolset for her to use. Most modern blogging tools are pretty similar to Movable Type in their general blogging style, and many were influenced by it, so I don't think the solution is hacking the app, but rather posting into it with another tool.
Since she doesn't use titles on her posts, for the most part, and likes to rearrange posts on the page against each other for reasons of aesthetics and flow, I figured the best choice of an editor would probably be something like Dave Winer's OPML Editor, which is outline-based and supports the Metaweblog API that Movable Type uses. But a good bit of poking around didn't reveal to me how to use that editor (or any other one that lets you drag-and-drop the posts on your page relative to one another) as a post-arranger with Movable Type.
So, though I could have asked Rebecca or probably Dave directly, I go to you, my ever-helpful blogging audience: What's the best way to organize posts if you're primarily using date-based posting, but want to manually arrange posts within a day?
1 TrackBack
Over the last six months I have kept meaning to switch to outline style blogging. For all the hoo ha... Read More
26 Comments
Leave a comment
- Earlier: Thanks to Dr. King
- Next: I AM SHARING THIS WITH YOU

Perhaps it's overly simplistic, but I would have thought that using something along the lines of MarsEdit, but putting all the day's posts into a single post.
Keep the sub-posts in divs or para tags, and then re-arrange old-school.
Is there any major reason these posts have to exist in MT as separate entries? How about just one entry per day, and rearranging the paragraphs? This may seem pretty simplistic, but that can be a bonus too. Plus, the ordering will be maintained in a feed reader.
Could she use a category with subcategories A...Z, sorted on the subcategory? Then reordering is a matter of changing the subcategory.
Save all the entries you want to post during a given day in draft. Open power-editing mode. Change the dates/times of your entries to reflect the order in which you'd like them to be posted, set the status to "future", and click save. If you want the entries to post all at once, make each entry's date/time a few seconds apart and it will appear to post all at the same time from the perspective of the reader. (This is sometimes how I do my remaindered links...there's a slight order to them on some days that probably only makes sense to me.) Rebecca, feel free to email if the above is unclear.
I used to do that with my daily links, too, especially when I wanted to juxtapose particular links, but I think it's not really intuitive enough for normal folks.
I'd imagined something like the drag-and-drop that lets you rearrange items on a TypePad sidebar (if you've ever seen that), but for posts. Would make a cool MT plugin, maybe.
I used to do that with my daily links, too, especially when I wanted to juxtapose particular links, but I think it's not really intuitive enough for normal folks.
Yup. I do this, too, and it's kind of a pain when you've got a lot of stuff in draft mode and have to keep filtering the entries page.
An MT plugin would be great but what would the plugin do in terms of time metadata? Make 1-hour buckets?
Thanks for all the suggestions so far, and I'm looking forward to more.
Jason, my process is very similar to the one you describe. One constraint is that my hosting account will only run a chronjob once an hour, so setting things less than 60 minutes apart still puts them 60 minutes apart. :)
Yoz & CafeDave, the one-entry-per-day solution would make it difficult to link to single entries, and then we're back to the "Go here and scroll halfway down the page" situation that prompted the invention of permalinks in the first place.
A plug-in that would give me a view of my full, unpublished entries and then allow me to move them around, would be neat, but I suspect I would still start by pasting things in from my text editor.
I just interviewed David Weinberger, and he has a similar situation: he wrote his own blog editor to compose entries in, then he pastes them into MT to publish.
A plugin that converted a properly-formatted multi-entry text file into individual entries in the MT database might be useful for the few people who compose in a text editor. My ideal such tool would post individual entries in the order I designated (by numbering) and then delete the text file once the operation was done. A more advanced version would let me number them *or* set specific times so that they would automagically appear throughout the day, if that's what I wanted.
Then I could FTP one file up every day and be done with it. If I knew perl I just know this would be trivial. :)
OK, acknowledging that this is as hacky as everything else, and exposing myself as the total geek tham I am:
I'd start out by installing the CustomFields plugin, and adding a custom field that can be used to number entries within each day.
Then, I'd publish my pages as PHP on the server. Within the container on each relevant template (the home page and the date-based archive pages, really), instead of dumping the post content out to the page, I'd dump it into a PHP array.
After storing all the post data in the array, I'd sort the array based on date and by the new custom field, and finally dump it out to the page.
(I just noticed that that last post should read:
"Then, I'd publish my pages as PHP on the server. Within the MTEntries container on each relevant template..."
I tried to include, escaped out, the less-than and greater-than symbols, but I guess the whole thing got stripped...)
I don't even bother with draft mode - I just go back in and edit the times as I add posts. (NOTE: This is notional, since these days my posting frequency is measured in months rather than hours.)
I'd like to take this opportunity to advocate for the titleless blogging style, which MT does a poor job of supporting. While most places in MT 3.2 will use the first few words of an entry to identify it in the UI, "power editing" mode does not, which means it's completely useless for titleless entries. (There's also a lesser matter of the entry basename, which in MT 3.2 uses "post###" for titleless entries.) I'd love to use power editing mode for date-based ordering of entries, as someone suggested, but I can't, because I can't tell which entry is which.
If a blogger is dead set on never, ever using entry titles, the blogger can remove the display of the title from the entry template, and stuff some fake title in the title field for the other purposes. This is a terrible work-around in general (what if I someday want to uses titles?), and doesn't work in my case, where I occasionally have something I want to give a title. Some people that blog with this style appear to use an additional metadata distinction between entries with titles and entries without, such as categories or even maintaining two logical weblogs with a merged display. Seems like a long way to go to get around an easily-fixed admin UI problem.
I'm mostly just surprised by this, because MT 3.1x and prior supported titleless entries quite well, using the first few words in the place of the title for all admin UI and system purposes. MT 3.2 apparently did away with this, and only brought it back in a few places when beta testers complained. :)
Thanks for the feedback on that, Dan... I'll make a note and see if we can't tend to that. I think the overwhelming majority of people use titles, and many of the rest use the title field for their own reference even if they don't fill it out, so that may be why it got less love.
Rebecca, in response to:
Yoz & CafeDave, the one-entry-per-day solution would make it difficult to link to single entries, and then we're back to the "Go here and scroll halfway down the page" situation that prompted the invention of permalinks in the first place.
A permalink structure can still be created with each day's entries in one item without having to worry about all that scrolling but placing a named anchor at the start of each blog within the day, then linking to 'normalpermalink#namedanchor'
Dave, sounds like a good way to add the permalinks in: perhaps an MT tag could be used for the 'normalpermalink' part, and then it's just a matter of adding in a name for each mini-post (numbering the mini-posts wouldn't work, as this number would change during the re-arrangment process)
Sorry for an off topic comment but why is there "Horiemon" in your blog title?
anil,
why not just have her modify the dates and times of the posts? i do that all the time when I have several posts with the same theme that are a cohesive unit. that way she can control the order in which the posts are displayed.
bhavesh
I've needed to solve exactly this problem on the front pages of huffingtonpost.com and democrats.org. In each case I've wound up writting a plugin that associates a ranking and some other info with each entry, and gives editors something close to a drag-and-drop interface (select and click, to be exact). It does the trick nicely, though I haven't extended it to alter daily archives, which it seems like Rebecca would want.
Unfortunately, in each case, the plugin is fairly specifically tuned to it's site or I'd release the code.
Andy, would you be able to do something similar these days with RightFields?
Hey Dan, I remember your bug report about titleless entries and basename and it's on the list for the next version if we can get to it (no promises, we've got a lot to do).
You'll be happy to know, however, that your bug report "Entries without titles have dumb basename" is already fixed as well as another that you didn't report where titleless entries don't show up correctly in the 5 Recent Entries list on the main menu.
To echo what Anil said, we just don't get a lot of requests for support for titleless blogging, but we definitely want to avoid ways that the software affects your writing. Just know that we have all of your requests recorded and we appreciate you letting us know about them.
Hey Anil, RightFields would work great for storage and front end. I think CustomFields could do the trick too.
The most headache-inducing part of the process I found though was reproducing a version of MTEntries that would allow you to sort by a joined column in another table. Maybe RightFields does that though and I missed it.
Andy (and Anil), this is really the crux of it -- no matter what you add to the backend storage for each entry (using RightFields, or CustomFields), there really isn't a plugin I've found that supplements the container behavior of MTEntries in a way that can be controlled by one of your new fields. (Like, for example, being able to create an MTEntries-like container of posts that only contain a given string in one of the custom fields, or being able to create a container that's ordered by an added ordinal field, the latter being a reasonable solution for an issue like Rebecca's.)
Jason, I totally agree. I've wound up writting plugins with a few different variations of that same ~200 lines of code that makes up MTEntries handler. At least one of those wouldn't really be practical for most installs, but it seems like a join attribute on that tag would come in handy for a lot of people who want to use custom data in their entries. Something like would be sweet.
oops looks like my example tag got trimmed out:
"MTEntries join='sometable' sort='sometable.somefield'"
Although I note Dave Winer's outliner support the style under discussion - is it really outlining? What you appear to be talking about is a list structure, not a hierarchy. Right now we commonly have:
(title)
content
The outliner style is :
(title)
outline
outline
outline
outline
...
Which, if anything is actually closer to the "big essay" style:
(title)
part1
para1
para2
part2
...
What you're describing sounds more like :
(title)
chunk
chunk
chunk
with a UI that allows reordering of the chunks.
I have an unreleased plugin that may be able to help with this. It's called HandSort, and it adds a Sort column to the entry listing screen, with an enterable numeric field next to each entry, that lets you do "Netflix-queue-style" sorting of the entries displayed.
It works by changing the timestamps of the entries. So MTEntries and other aspects of MT can go on doing date-based sorting--no extra customization needed. Yes, it's a hack, but it works. The actual sort numbers you enter don't "stick" to the entries--they're just each entry's relative position within the subset of entries currently displayed.
It's really intended more for cases where you're using MT as a CMS to manage non-dated information, because you obviously don't want to re-date your already published blog posts. But if you filtered the listing to only show unpublished entries, it would probably do the job. Actually, I guess I could add an optional warning or error if you try to reorder published entries.
No documentation yet (next week, maybe?) but if you want to give it a try, here it is: HandSort.pl (requires BigPAPI). Please be aware that IT CHANGES THE TIMESTAMPS OF THE ENTRIES when you click the Reorder button on the entry listing screen.
It's disabled by default, so you have to go into the plugin settings and turn it on for a particular blog or systemwide.
I was planning to release it as shareware, so if you end up using it, be prepared to pony up a few dollars (or to feel overwhelming guilt when you don't).
As for using an external text editor, my LinkEntryToFile plugin can help with that. I know it's not the same as having multiple entries in one file, but it may still come in handy.
Finally, regarding RightFields: I do intend to add some sort of MTEntries selection based on field values. Won't be in 1.0, though.
Hmm, Danny, you may be right... but that makes me think about MS's list extensions for feeds, which is a whole 'nother ball of wax.