This is the project website for Ode (pronounced oh-dee), a personal publishing engine for the web. Ode is unique in that it is designed to be simple – not necessarily easy.
Simple means understandable (at least it does here).
Before we get to Mrkdwn let's discuss Markdown on the Markdown_addin on which it is based.
Download the Mrkdwn addin (.zip)
Ode has always supported the Markdown syntax via the Markdown addin, which is included (and enabled by default) with Ode itself. That addin is no more than a very thin wrapper around the original markdown perl script (markdown.pl).
All I did was include the necessary Ode interface bits to work Markdown conversion into Ode.
For anyone who might be interested, here's what that looks like:
The accesstitletagsandbody_early interface allow addins look at and modify the content of each post by providing separate references to the posts title, tags, and body.
sub access_title_tags_and_body_early
{
$$body_ref_l = Markdown($$body_ref_l);
1;
}
The Markdown addin simply passes the body of the post (as a reference) to the Markdown routine, which handles the Markdown conversion. Not so hard to understand, right? The actual routine isn't quite this simple, but everything else is just overhead. This is really all the Markdown addin is doing.
(That $1 at before the closing curly brace let's the thing that calls the routine -ode in this case- know that everything went as expected.)
I really like Markdown and I think it does just about everything we need it to do. Sure it doesn't provide a syntax for tables, definition lists, footnotes, abbreviations, and other sorts of things, but I'm not convinced that there is a substantial benefit to expanding the syntax to do any of that.
Here is what Markdown's creator has to say about it:
Markdown is not a replacement for HTML, or even close to it. Its syntax is very small, corresponding only to a very small subset of HTML tags. The idea is not to create a syntax that makes it easier to insert HTML tags. In my opinion, HTML tags are already easy to insert. The idea for Markdown is to make it easy to read, write, and edit prose. HTML is a publishing format; Markdown is a writing format. Thus, Markdown’s formatting syntax only addresses issues that can be conveyed in plain text.
That little blurb makes a lot of sense to me. Fortunately, Markdown can be used seamlessly with HTML, so what markdown doesn't do isn't impossible - and it's not any more difficult than it would be without Markdown.
I think we should appreciate that HTML really is a pretty good markup language itself and the fact that it's so prevalent (much more so than Markdown or any of the simplified markdown syntaxes) has it's advantages when it comes to doing fancier/more structural stuff.
Having said that, and for what it's worth, between Ode's themes which separate the structure of a page from post content, and given the subset of HTML that Markdown does support, I rarely find myself writing in a way that requires me to include a lot of explicit HTML.
There are a few very specific things about Markdown that bother me after using Markdown for years.