Wednesday, 25 May 2011

Soda: a document editor

Hello! I’ve been working on a thing! It’s called Soda, and it’s a document editor. It’s sort of like Google Docs, only a bit simpler and, well, different. The most important difference is the way you create documents: rather than do it visually, you write them in a sort of code.

Now I realise this doesn’t sound terribly brilliant, but there’s a reason for it. When you type stuff using a WYSIWYG editor, it’s often difficult to maintain consistent formatting across a complex document. The ideal way to do it is to use some sort of style system – Word 2007 has those nice big style buttons if you have enough screen space, while LibreOffice has a handy Styles pallete/list thing.

However, neither of them really encourage the user to make use of these facilities, which I think is a shame, albeit understandable from a historical perspective. The ‘apply formatting to a selection of characters’ style of editing was laid down in The Beginning, and it’s probably far too late to do anything about it now. Still, I made Soda anyway, because it’s something I want to use (I wrote this blog post with it).

Anyway, the idea is you use various ‘control characters’ to apply semantic styling to blocks of text. For example, rather than say “make this text bold, size 22 and centred”, you instead say “make this text a level 1 heading”. In other words, you apply meaning to sections of text, and then you can control how all text with that meaning appears throughout the document (well, you can’t control it yet, as I’ve not actually implemented a style editing interface, but there is going to be one).

Caveat Emptor

Soda is not finished. It probably never will be, completely – there’ll always be something to add or something to fix. In its current state it’s quite usable, and I’ve tried to make sure the main part of it, the editor, has no glaring bugs.

That said, there’s still plenty to do before I’d be comfortable with declaring it fit for general use. Here are some things I have in mind at the moment:

  • Making registration/sign-in easier. I’ve been experimenting with OAuth login and it’s really just a question of putting the code in place, after which you’ll be able to sign in using Facebook, Twitter etc.

  • Smooth off the rough edges. At the moment, when you leave the editor with unsaved changes, there’s no warning/confirmation. Likewise for deleting documents.

  • Editor and preview preferences are not saved.

  • Needs a Markdown formatting guide.

This isn’t a comprehensive list, obviously, but these are the priority things. Like I said, none of them are really show-stopping problems, but they’re definitely obstacles which shouldn’t be there.

So yeah, if you want to poke around with it, feel free. It’d be good to get some feedback, too, as it’s hard to know what kinds of issues users may encounter when approaching it fresh.

Oh yeah and I know it’s silly, and I really do keep meaning to do something about it, but after logging in you need to click the ‘Your saved documents’ link at the top to create a new document. Once I’ve put the OAuth stuff in place, you’ll be redirected to that page after signing in or registering.