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.

Reply via email to