My usual blogging output is hardly prolific. Most of the things I write are sitting in my drafts folder probably never to see the light of day, but as I sat writing a blog post the other night it got me thinking a lot more about the state of posting content to the web.Now the post itself was completed and in general I was pretty happy with it.....but I'll probably never post it, here's why...

Problems of my own design

It annoys me that there are numerous code plugins for windows live writer, each time I get a new machine it takes time to find the one I like again. On a broader note, the whole finding and installing live writer plugin experience is bloody awful.So as I'm proof-reading my post, I spot an error in one of the code samples; so I go to update it, but can't select the code block for some reason. I try looking at the html source but it's like watching Linda Blair abusing a crucifix in the exorcist!

Dynamic Templates

You see I chose bloggers dynamic templates for my blog, stupid me eh.Not only does it not allow live writer to download the theme, but getting syntaxhighligher to work took many irritating hours of searching around blog posts, mostly out of date and irrelevant and it still doesn't really work. Blogger was about as helpful as a chocolate teapot on this one. Even google search couldn't produce much and it's their own blogging platform.So I publish it anyway and go to have a peek through squinted eyes. My post now looks like Donatella Versace on a bad day dressed in 80's couture.What the hell did I just spend my time formatting the post on live writer for my blogging platform to screw it up.

F**k you blogger, I've had enough!

Usually at this point come the hours of 'tweaking' the post to try and get it to look and behave as it should, as it does when I'm writing it.Sometimes this means using blogger's wysiwyg (straight to source) and trying to exorcise the tag demons. If I use the wysiwg straight off and save, then I'm really screwed, it's like the blogging version of chinese whispers and my post degrades into alphabet soup!At this point I just gave up....I usually give up.> It's just a totally sh*t user experience and it's why I don't post much

Enter markdown

Most people who have come across the site stackoverflow are already familiar with markdown. It is where I first came across the concept a few years ago anyway.The basic premise of markdown is to be able to write text in a readable form (without the html tag soup) but still be able to provide simple formatting hints that are both visually intuative and easy to learn.Stackoverflow uses an enhanced version of the original spec proposed by John Gruber on the site Daring Fireball and there are other variants out there also.Following my most recent failed blogging attempt I had a hissy fit. After I stopped wailing my arms and stomping around, I went and downloaded some markdown editors.

  • First was writemonkey 
  • Next was markdownpad
  • Finally markpad.

All of them are free and all provide a reasonable experience for writing with but all are flawed for my purposes.Writemonkey is the purest markdown experience, very much in the mould of VI for keyboard shortcuts and a distration free interface. It's what I'm writing this post with and so far it's my favourite.Markpad is the only one that provides metaweblog integration but I simply can't get it to work...at all but it seems fairly new so maybe too early.MarkdownPad has some nice options and is more of a traditional windows-type text editorThere are some web based editors out there too like MarkDownDeep and MarkDownSharp which also have some nice features for editing and parsing markdown but the feature set is rather light and there isn't a lot of development activity as far as I can see.

None do images well

Now the problem I have is that markdown is not supposed to do images and all the fancy formatting stuff the web can do. It is for text by design. Images are usually added by adding the url in markdown syntax, same for links but it's just another form of tags.You can't specify the size and you can't customise the image location or layout. You can't drag and drop an image, you can't paste an image and in some cases you have no ui help at all.Some extensions to markdown formats have been created to allow some additional requirements or syntax commands but so far I haven't found anything that even comes close to providing the whole experience I'm looking for.So as is, I either accept the horrid mess and integration nightmare of wysiwyg's or I change posting habits to upload images seperately, add shim's all over the place for code samples and in general accept less control over layouts and formatting. I'm too lazy to upload images separately then slavishly enter urls and links all over the place.

Online editors

Most bloggers who use web editors use wysiwyg ones, some platforms now support markdown as an alternative too but will be unlikely to have that mass appeal, markdown is not for everyone.

Is it really that difficult?

In an age where web apps are becoming more and more prevalent in phones, tablets and desktops, I'd be quite happy to use an online editor, if only I could find one which doesn't make me want to smash my computer after a few minutes of use.In my research I have seen dozens of projects, apps, code and solutions. Not a single one even comes close to what I want so I made a list. This is what I want, in no particular order and without thinking too hard about it. I can't imagine why it doesn't already exist...

  • HTML5 Cross browser
    • Yes boring but it should work in most modern browsers, even phones and tablet ones (except IE 6, that can just die in a corner)
  • Pluggable Autosave locations defaulting to local storage / indexedDB for content and options for

    *   Metawebapi's
    
    • Https/Ftps/SSH [POST, PUT]
    • cloudstorage sites like dropbox, google drive
    • DCVS systems like github or codeplex
    • A.N.Other plugin
  • Fullscreen

    *   Edit in raw form, output preview or both
    
    • Options to toggle editor / preview views in split panels in any orientation
    • Editor hybrid view showing simple elements of transforms (centering headers, making bold text bold) without the full transformation.
  • Themeing (editor and preview)

    *   Load from url / local files or custom css
    
    • MetaWeblog Theme API
    • Plugin extensible
  • Navigation and manipulation

    *   Home and End, Prev and Next word/sentence/paragraph/heading
    
    • Move word left or right, move paragraph up or down
    • Column / Area selections as well as usual selections
    • Undo / Redo / Cut / Copy / Paste / Find / Print / Save etc
    • Zooming in and out, keyboard and mouse
    • bookmarks
    • notes, highlighting, annotations, auto tocs
  • Metadata

    *   Author, Title, Dates, Tags, Categories etc
    
    • Plugin extensible
  • Pluggable Convertions

  • plain text

  • Html 
  • Markdown
  • ODF
  • PDF
  • Word
  • LaTeX
  • Xml
  • Json
  • ...anything you want, it's completely pluggable!* Options

    *   Full configurable via html data- attributes
    
    • Full and rich option dialogs for every setting
    • Autosave user's settings to configured persistance location + local storage/indexedDB fallbacks (your preferred settings available anywhere on the web)
    • Per plugin options
  • Plugins

    *   Plugin extensbility for code, margins, scrollbars, tags, text adornments/decoration
    
    • Brushes for preview AND source view (markup commands)
    • Tokenising based intellisense Tagging / Lookups (wikipedia, imdb, dictionary, spelling, twitter, colours etc)
    • Gists (auto create / link / select from account)
    • Images ( cut and paste, drag and drop, resize/crop/rotate etc )
  • Shortcuts

    *   Common windows text shortcuts (ctrl + i = italics)
    
    • Plugin configurable shortcuts
  • Collaboration

    *   Realtime editor session sharing
    
  • Help

    *   Keymaps quick references including plugins
    
    • pinnable cheatsheet for markdown
    • per plugin help information
  • Menus

    *   Menus accessible through a single menu icon by default, **NOT wysiwyg toolbar hell!**
    
    • Menus completely configurable via html tags
    • Converter plugin based menus
    • Intellisense (plugin extensible)
    • Context aware context menus
  • Templates

    *   Again stored in configured locations
    
  • Macros / Snippets / Autocomplete

    *   Whatever you call it, I mean typing in _li_ and waiting a beat should show selectable intellisense, which if _[link]_ is selected adds _[link {url} {position} {?width:height?}] ({?title?})_ which in turn can be tabbed through to select/replace each option (again with intellisense where appropriate)
    
    • Create and save snippets/macros
  • Performance

    *   Can't be a slow poke, should make use of async/caching url queries and intelligently download scripts/resources on first access rather than the wholeshooting match on page loadsSo not an exhaustive list by any means, but it doesn't sound even remotely like either the current crop of wysiwyg or markdown editors that are out out there.It's something else, A web based notepad++, writemonkey or VS Editor perhaps.The ethos though is of a highly flexible and pluggable editor which has a stripped down/minimal UI with shortcuts and intellisense to provide a rich and user friendly experience.I can't find it though, I'm going to try and build it.