For the last couple of years, I've been quietly working in the background planning for a proper overhaul of TiddlyWiki itself, doing some little proof-of-concept experiments, and tracking browser developments. I was hoping that we'd get to the point where the advantages of completely rebuilding TiddlyWiki from the ground up would outweigh the disadvantages of losing backwards compatibility. I think that we've now reached that point, thanks mainly to the accelerated development of the major browsers.
Over Christmas and New Year, when the office shut down, I finally had the chance to spend some sustained time in coding-space, and stitch some of these thoughts and experiments into a proper prototype. I've kept it completely to myself up until now, partly for fear of distracting efforts away from other things. http://www.tiddlywiki.com/tiddlywiki5/ It's status is that it's just a prototype, and it's not in a fit state to be used in anger; I've focussed on the things missing or broken in the original TiddlyWiki, and not paid too much attention to areas that don't need to change much. So, it's not currently structured as a single file, nor is it capable of saving changes. However, it does demonstrate some key new features and capabilities. There are three areas I'd like to focus on: - Embracing HTML By default, tiddlers are stored and edited as HTML. This means that you get a proper WYSIWYG editor, and that when Google looks at a TiddlyWiki5 file it will also see the content properly. It's been clear for a long time that wikitext is both a strength and a weakness of classic TW, it gives users great power, but it's incredibly off-putting for people who expect to type ctrl-B for bold. My goal in bringing WYSIWYG to TiddlyWiki is to maintain the ability to type macros and formatting directly, without going into weird sub-dialogs. This is because I believe that the real power of wikis is the way that they elevate linking to becoming part of the punctuation, and hence the writing process, instead of an operation performed afterwards. Anyhow, it's not all implemented yet, but in edit mode macros are represented as special "proxy" visual objects that can have custom interactions, but can be selected/copied/pasted just as if they were a single character of text. - Graphics as First Class Citizen Both bitmap and vector graphics are now a first class citizen, with image tiddlers embedded directly in the TiddlyWiki file, even in IE6. There's support for SVG vector graphics (with a plan to cross-render to VML for IE support). The idea is to be able to associate icons with tiddlers (and hence tags), and use the icons to represent those tiddlers in the UI. My mum is busy creating a library of a few hundred little conceptual graphics to ship with the thing. - Cleaning up But the real benefit is that the design is now much smoother top to bottom. TiddlyWiki originally evolved in fits and starts, and bears the scar tissues of me learning JavaScript as I went. In TiddlyWiki5, for instance, almost everything is a macro, including tiddler containers (aka a TiddlyWiki "story"), and tiddler frames. It uses jQuery and jQuery UI properly, leading to much more concise and clear code. It properly matches the capabilities of TiddlyWeb, with revision history retained for each tiddler and support for different MIME-types. I should say that although TiddlyWiki5 will break backwards compatibility, there will be a migration path for existing TiddlyWiki content. Firstly, it will support the existing TiddlyWiki wikifier, so people can continue to use and edit tiddlers in wikitext if they want to. Secondly, you will be able to perform a one-way upgrade of your tiddlers from wikitext to html format. There'll be no going back at that point, but in exchange you'll be able to use the WYSIWYG editor. I stress that there's a lot to do before this thing is properly usable, but I'm hoping it's at the point where the development community can see how it's supposed to fit together, and we can start to think about it as a group. Very roughly, I was thinking of the following roadmap: - Declare "alpha" when it works (ie, editting and save changes work properly) - Declare "beta" when it's more or less feature complete - Declare "release" when it's reliable I'd hope that we could be at alpha in a couple of months, and release sometime in the (northern hemisphere) summer, but it all rather depends on what we decide as a group. I'll publish the code in GitHub in the next couple very few hours. I appreciate that this might be a bit out of the blue, but I hope it's a pleasant surprise. Do please feel free to ask questions, Best wishes Jeremy -- Jeremy Ruston mailto:[email protected] http://www.tiddlywiki.com -- You received this message because you are subscribed to the Google Groups "TiddlyWikiDev" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/tiddlywikidev?hl=en.
