Simple and Powerful Text Formatting
Web-based content management systems have always had trouble allowing non-technical people to author content intended for the web. One method systems have used to simplify formatting is to replicate common authoring controls using Javascript. For example, Movable Type has buttons for bold, underlined, and italicized text, and a button to create links. In Movable Type, plugins can also add global text filtering capabilities, by adding filters to common template tags. And there are many plugins that do this, providing everything from quote education to Wiki formatting.
But there are problems with the global filtering approach that we hope to solve in the next version of Movable Type.
- Authors have to edit their templates in order to add these filtering options. Not only is this beyond the scope of understanding for some users, but it can be incredibly tedious to edit every template.
- Since filters are set on a template level (in the tags), they are not applied when previewing an entry. This makes preview fairly useless for specially-formatted entries.
- Because templates are shared on a per-blog basis and are not specific to authors, all authors must use the same formatting style.
To allow both more control and easier formatting, we're adding a new feature in the next version of Movable Type: Text Formatting. This will replace the current "Convert Line Breaks" option. Or, rather, the current "Convert Line Breaks" will simply be one of the available text formatting options, along with (hopefully) many other options, from POD to XML to Wiki. (Screenshot of Text Formatting menu)
We envision Text Formatting options as complete, encapsulated formatters, handling both the formatting of structured text and any desired typographical details (smart quotes, etc), analogous to the way in which Textile handles quote education and its own miniature formatting language.
Plugins will be able to easily add new Text Formatting options to the menu on the New/Edit Entry screen. For example, this code will add a new option called "Wiki", which passes entry text through the Text::WikiFormat Perl module, allowing simple Wiki formatting:
MT->add_text_filter(wiki => {
label => 'Wiki',
on_format => sub {
require Text::WikiFormat;
Text::WikiFormat::format($_[0]);
},
});
This approach solves all of the problems noted above: templates do not have to be edited, because the formatting is selected via the MT interface; formatting choices will influence the preview screen; authors can use different formatting options for their own entries, because the option is set on a per-entry basis. So, for example, if I want to write my entries in POD format, and Mena wants to write hers in Wiki format, we can do that.



10 Comments
If I knew how to trackback this item (and if I ran a techie blog), I would. This is the ONE feature earlier blog technologies have possessed that I always wished was available for MT. The Real Old Timers would say that kind of formatting _did_ exist (
w00t. You have no idea how much I've longed for this. Maybe when you're at it you could rearrange the form elements in the comment entry form template, for example like Jeremy of Antipixel tells us here.
Escape mechanism of the formatting text engine would be useful. If I type a text like in this comment and at a point I'm deciding to add a piece of code embedded in a pre tag, I would like that the formatting engine understands I'm in a pre tag and change its behaviour.
so to not add a or at the end of each line :)
use CSS too, and at the maximum the HTML semantic meaning of the elements.
For example, do not propose, use a blockquote, but propose to the users. "Do you want to make a citation?"
[citation author:Ben date:2002-12-31]To allow both more control and easier formatting, we're adding a new feature in the next version of Movable Type: Text Formatting.
(not mandatory choice)
and it could generate a code similar to what I have written there on www-archive:
http://lists.w3.org/Archives/Public/www-archive/2002Dec/0102.html
Very good work anyway. :)
Sounds great, but...before you go in this direction, would you please add basic formatting support for MT/OSX users? There has to be a way to duplicate the Javascript-driven buttons that work on Windows.
The JavaScript buttons aren't just missed on OS X... heck, I'm on Windows and I can't use them either, just because my primary browser is Mozilla. MT has become the last reason I have for regularly firing up IE. I'd loooove to have those buttons too! ;)
I'd love to see those basic button functionalities too.
Very nice idea!
I'd like to encourage you to build a few things into Movable Type to support this feature:
1. A "Movable Type Text Formatting" scheme. (Otherwise I may end up having to explain what a Wiki is to my dear old grandmother.)
2. Allow administrators to set a default text formatting scheme and easily remove unwanted schemes. (Of course.)
3. Put a key or legend for the default formatting scheme either on the New Entry page or one click away. (Because most of my users dare not tread into the massive user manual (which I think is great, by the way).)
Thanks for listening and Happy New Year! Can't wait to hear more about what's in store for Movable Type this year. Cheers!
Most excellent future-feature. I've been using two similar systems for project documentation (one for python, and one home-brewed in perl).
One suggestion: the preview function currently uses the MT-interface styles, which doesn't match most site styles ... making it only partially useful. You can't see how your site's specific styles look with a particular content set easily.
Great tool though.
The python-based documentation tool I mentioned in the previous post is called Doctools (Doctools home). The specific natural-language (ish) markup that it uses is called reStructuredText (RST reference).
RST is very good - it allows some very advanced markup in quite a simple way. I'm actually migrating my current team to use it for all development documentation, and have been using it for 'fun' projects for several months now. It would be incredible if there were some way for MT to optionally process posts with this tool (or follow the markup).
What about tags for TypePad? I can't seem to get