I’ve been doing a lot of Markdown lately. It’s a pretty interesting notion – it’s similar in concept to HTML (a mark”up” language), but Markdown is about 443 times simpler. Jeff Atwood is a big fan (StackOverflow uses Markdown for formatting questions and answers…) and called out Markdown’s creator, John Gruber, to be a better “parent” to Markdown back in 2009. Recently, he has called for a standardization of the language, asking Gruber to take the lead in doing so.
Apparently, however, John Gruber, creator of Markdown, wasn’t as, ahem, “supportive” as he could have been. At first, Jeff didn’t at first get response, but apparently then he did. But apparently Gruber wasn’t exactly into it, or even that respectful about Jeff’s reasonable request. I guess he’ll “think about it”. Gruber clearly is more from Philadelphia than most people from Philadelphia, I guess. Jeff points out that Gruber created something pretty cool, but then hasn’t exactly been the most benevolent of fathers. And he’s not asking for anything other than a blessing on what they are doing, really. Gruber could clearly be a bit cooler about it than he is being.
Markdown is one of those things that can easily become bastardized. It’s specific purpose is to be human-readable and human-writable. However, the temptation is quite great to start adding to it, making it not both of those things. Hence Atwood’s appeal. I hope Jeff makes something happen in this area, with or without Gruber’s support.
Anyhoo. I’ve been using Markdown because that is what LeanPub™ uses it to create books. As I said above, one of the main ideas of Markdown is that it should be both easy to type and easy to read un-rendered. But that doesn’t mean that we geeks don’t want a tool to create it. . The most popular editor for Windows appears to be MarkdownPad, which is a nice tool. There is an early version of a WYSIWYG editor for Markdown called Texts – it looks promising but has a ways to go. Some folks appear to be using Emacs (yuck!) or other editors only available on the Mac.
However, LeanPub™ appears to be doing what Atwood is worried about – extending it just a little bit beyond what the standard is. That’s fine -- they’ve added Tables, and different code tags using Pygment – all of which are not supported by the “normal” editors. For instance, I’m writing a technical book with lots of code samples, and tools like MarkdownPad can only be so helpful. As much as Markdown is meant to be human-writable, it’s a bother to add in manually the tags for Delphi code blocks, for instance.
So pursuant to that, and because I want to make writing my book as easy as possible, I’ve built a Markdown Editor -- I'm calling it LeanTed -- that is designed specifically for LeanPub™ authors. It implements the LeanPub™ Markdown standard, supports code tagging, and other Markdown stuff that is used by LeanPub™.
It is written in Delphi XE3, as you would expect of me. The main editor window is a TSynMemo, and it uses the Ribbon controls that ship with Delphi.
You can get it here. Please be warned – this is currently a very early version and not fully featured. I’m using it myself to write my book, but I understand all the quirks. I’ll be refining it as I use it more, of course.
Features that I already have on the list to be added include:
- Implementing LeanPub’s Table support and CrossLinking -- (The current Table stuff doesn't do anything other than display what would be added....)
- Associate it with *.md files
- Notice when the file has changed elsewhere
- Timed Autosave
- Synchronize the text and preview modes (anyone have any idea how to control the scrolling on a TWebBrowser control....?)
- A lot of little details that I’m keeping track of in my TODO list…
- Anything anyone thinks of that would be a good feature.
I’m releasing it as Freeware, but please feel free to donate to me for the software. $15 would be nice.
In any event, please let me know what you think in the comments, and please remember that this is totally alpha-level software and that you use it entirely at your own risk. I will, of course, be updating and improving it, incorporating feedback and suggestions.