As discussed previously [1], I've been working on improving the build tools for TiddlyWiki.
The existing build process makes use of a tool called cook.rb that stitches individual tiddler files together into a TiddlyWiki file. It's a fairly dumb tool, and isn't capable of doing everything that TiddlyWiki can, like generating an RSS file through wikification of tiddlers. Therefore, the process for building tiddlywiki.com is: 1) Use a batch file to pull down the content from TiddlySpace 2) Make sure you've got the correct copy of the TiddlyWiki raw code 3) Use cook.rb to build the base TiddlyWiki file 4) Open the TiddlyWiki file in the browser and click save changes 5) Use another batch file to upload the results to tiddlywiki.com This is a horrible, error prone process, and for a long time has gently discouraged me from doing content updates. Developers working on the TiddlyWiki core code have to go through an abbreviated version of that process just to try out changes in the browser: 1) Edit and save the core .js files in a text editor 2) Switch to a command prompt to run cook.rb 3) Open the resulting file in the browser This contrasts with many development environments that simplify the process to saving changes in the editor and then refreshing directly in the browser. My plan has been to simplify things with a new cook tool written in JavaScript and running on Node.js. This allows the possibility of the cook tools sharing code with TiddlyWiki itself, for instance wikifying the RSS feed directly. Originally, I was aiming for byte-for-byte compatibility between the new tool and cook.rb, but I've discovered that cook.rb is so buggy that it makes more sense to aim for byte-for-byte compatibility with TiddlyWiki's own saving code. The current position is that the new tool reliably cooks tiddlywiki.com/index.html from its ingredients, with only a few minor whitespace differences. (I've also yet to do the special handling for setting the <title> of the generated file). You can follow the development here: https://github.com/Jermolene/cook.js As well as ordinary .tid and .tiddler files, the tools can process TiddlyWeb-style fat .json files. Thus, this recipe will build a snapshot of the latest TiddlyWiki alpha core code and the staging content from TiddlySpace: recipe: https://raw.github.com/TiddlyWiki/tiddlywiki/master/tiddlywikinonoscript.html.recipe tiddler: http://tiddlywiki-com.tiddlyspace.com/bags/tiddlywiki-com-ref_public/tiddlers.json?fat=1 tiddler: http://tiddlywiki-com.tiddlyspace.com/bags/tiddlywiki-com_public/tiddlers.json?fat=1 My next step is to backport the TiddlyWiki wikifier code so that the tool will be able to generate RSS files, and process the SiteTitle and some other features more accurately. I'm planning to do this without using jsdom, and I hope that the resulting code could be slotted into https://github.com/cdent/twikifier. I think we're pretty much at the point where we can consider using the new tool for building the next release of TiddlyWiki. I'd welcome any comments or questions. Cheers Jeremy [1] http://groups.google.com/group/tiddlywiki/browse_thread/thread/7ea26be3f6b76698/38e167b0e73b6c5a -- 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.
