<h1>Welcome to <a href="TiddlyWiki5" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">TiddlyWiki5</a></h1><div data-tw-macro='tiddler' data-tw-params='{&quot;target&quot;:{&quot;type&quot;:&quot;string&quot;,&quot;value&quot;:&quot;HelloThere&quot;}}'>Welcome to <a href="TiddlyWiki5" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">TiddlyWiki5</a>, an interactive wiki <a href="ThisIsAlpha" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-resolves">under development</a> in <a href="JavaScript" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">JavaScript</a> to run in the browser or under node.js. It is a reboot of <a href="TiddlyWiki" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">TiddlyWiki</a>, the now venerable, reusable non-linear personal web notebook first released in 2004.<br /><br />Over the years, <a href="TiddlyWiki" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">TiddlyWiki</a> has earned an enduring role as a tool that people <a href="Raves" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">love using</a> for its rich, interactive interface to <a href="TiddlyWikiConcepts" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">manipulate complex data</a> with structure that doesn't easily fit into conventional tools like spreadsheets and wordprocessors. Because people can use it without needing any complicated server infrastructure, and because it is <a href="OpenSourceLicense" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">open source</a>, it has bought unprecedented freedom to people to keep their precious information under their own control. <a href="TiddlyWiki" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">TiddlyWiki</a> was originally created by <a href="JeremyRuston" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">JeremyRuston</a> and is now a thriving <a href="OpenSourceLicense" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">open source</a> project with a busy <a href="Community" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">Community</a> of independent developers.<br /></div><br /><h1>Usage</h1><div data-tw-macro='tiddler' data-tw-params='{&quot;target&quot;:{&quot;type&quot;:&quot;string&quot;,&quot;value&quot;:&quot;CommandLineInterface&quot;}}'><a href="TiddlyWiki5" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">TiddlyWiki5</a> can be used on the command line to perform an extensive set of operations based on <a href="RecipeFiles" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-resolves">RecipeFiles</a>, <a href="TiddlerFiles" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-resolves">TiddlerFiles</a> and <a href="TiddlyWikiFiles" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">TiddlyWikiFiles</a>.<br /><br />Usage:<br /><pre>node tiddlywiki.js &lt;options&gt;
</pre>The command line options are processed sequentially from left to right. Processing pauses during long operations, like loading a <a href="RecipeFiles" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-resolves">recipe file</a> and all the subrecipes and <a href="TiddlerFiles" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-resolves">tiddlers</a> that it references. The following options are available:<br /><table class="twtable"><tbody><tr class="evenRow"><td align="left"><code>--recipe &lt;filepath&gt;</code></td><td align="left">Loads a specfied <code>.recipe</code> file</td></tr><tr class="oddRow"><td align="left"><code>--load &lt;filepath&gt;</code></td><td align="left">Load additional tiddlers from <a href="TiddlyWiki" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">TiddlyWiki</a> files (<code>.html</code>), <code>.tiddler</code>, <code>.tid</code>, <code>.json</code> or other files</td></tr><tr class="evenRow"><td align="left"><code>--savewiki &lt;dirpath&gt;</code></td><td align="left">Saves all the loaded tiddlers as a single file <a href="TiddlyWiki" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">TiddlyWiki</a> called <code>index.html</code> and an RSS feed called <code>index.xml</code></td></tr><tr class="oddRow"><td align="left"><code>--savetiddler &lt;title&gt; &lt;filename&gt; [&lt;type&gt;]</code></td><td align="left">Save an individual tiddler as a specified MIME type, defaults to <code>text/html</code></td></tr><tr class="evenRow"><td align="left"><code>--savetiddlers &lt;outdir&gt;</code></td><td align="left">Saves all the loaded tiddlers as <code>.tid</code> files in the specified directory</td></tr><tr class="oddRow"><td align="left"><code>--servewiki &lt;port&gt;</code></td><td align="left">Serve the cooked <a href="TiddlyWiki" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">TiddlyWiki</a> over HTTP at <code>/</code></td></tr><tr class="evenRow"><td align="left"><code>--servetiddlers &lt;port&gt;</code></td><td align="left">Serve individual tiddlers over HTTP at <code>/tiddlertitle</code></td></tr><tr class="oddRow"><td align="left"><code>--wikitest &lt;dir&gt;</code></td><td align="left">Run wikification tests against the tiddlers in the given directory</td></tr><tr class="evenRow"><td align="left"><code>--dumpstore</code></td><td align="left">Dump the <a href="TiddlyWiki" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">TiddlyWiki</a> store in JSON format</td></tr><tr class="oddRow"><td align="left"><code>--dumprecipe</code></td><td align="left">Dump the current recipe in JSON format</td></tr><tr class="evenRow"><td align="left"><code>--verbose</code></td><td align="left">verbose output, useful for debugging</td></tr></tbody></table><h2> Examples</h2>This example loads the tiddlers from a <a href="TiddlyWiki" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">TiddlyWiki</a> HTML file and makes them available over HTTP:<br /><pre>node tiddlywiki.js --load mywiki.html --servewiki 127.0.0.1:8000
</pre>This example cooks a <a href="TiddlyWiki" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">TiddlyWiki</a> from a recipe:<br /><pre>node tiddlywiki.js --recipe tiddlywiki.com/index.recipe --savewiki tmp/
</pre>This example ginsus a <a href="TiddlyWiki" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">TiddlyWiki</a> into its constituent tiddlers:<br /><pre>node tiddlywiki.js --load mywiki.html --savetiddlers tmp/tiddlers
</pre><h2> Notes</h2><code>--servewiki</code> and <code>--servertiddlers</code> are for different purposes and should not be used together. The former is for <a href="TiddlyWiki" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">TiddlyWiki</a> core developers who want to be able to edit the <a href="TiddlyWiki" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">TiddlyWiki</a> source files in a text editor and view the results in the browser by clicking refresh; it is slow because it reloads all the <a href="TiddlyWiki" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">TiddlyWiki</a> <a href="JavaScript" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">JavaScript</a> files each time the page is loaded. The latter is for experimenting with the new wikification engine.<br /><br /><code>--wikitest</code> looks for <code>*.tid</code> files in the specified folder. It then wikifies the tiddlers to both &quot;text/plain&quot; and &quot;text/html&quot; format and checks the results against the content of the <code>*.html</code> and <code>*.txt</code> files in the same directory.</div><br /><h1>Testing</h1><div data-tw-macro='tiddler' data-tw-params='{&quot;target&quot;:{&quot;type&quot;:&quot;string&quot;,&quot;value&quot;:&quot;Testing&quot;}}'><code>test.sh</code> contains a simple test script that cooks the main tiddlywiki.com recipe and compares it with the results of the old build process (ie, running cook.rb and then opening the file in a browser and performing a 'save changes' operation). It also runs a series of wikifications tests that work off the data in <code>test/wikitests/</code>.</div><br /><h1>Planned <a href="WikiText" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">WikiText</a> Features</h1><div data-tw-macro='tiddler' data-tw-params='{&quot;target&quot;:{&quot;type&quot;:&quot;string&quot;,&quot;value&quot;:&quot;NewWikiTextFeatures&quot;}}'>It is proposed to extend the existing <a href="TiddlyWiki" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">TiddlyWiki</a> wikitext syntax with the following extensions<br /><br />1. Addition of <code>**bold**</code> character formatting<br />2. Addition of <code>`backtick for code`</code> character formatting<br />4. Addition of <a href="WikiCreole-style" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">WikiCreole-style</a> forced line break, e.g. <code>force\\linebreak</code><br />3. Addition of <a href="WikiCreole-style" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">WikiCreole-style</a> headings, e.g. <code>==Heading</code><br />5. Addition of <a href="WikiCreole-style" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">WikiCreole-style</a> headings in tables, e.g. <code>|=|=table|=header|</code><br />6. Addition of white-listed HTML tags intermixed with wikitext<br />7. Addition of <a href="WikiCreole-style" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">WikiCreole-style</a> pretty links, e.g. <code>[[description -&gt; link]]</code><br />8. Addition of multiline macros, e.g.<br /><pre>&lt;&lt;myMacro
param1: Parameter value
param2: value
&quot;unnamed parameter&quot;
param4: ((
A multiline parameter that can go on for as long as it likes
and contain linebreaks.
))
&gt;&gt;
</pre></div><br /><br /><em>This <code>readme</code> file was automatically generated by <a href="TiddlyWiki5" class="tw-tiddlylink tw-tiddlylink-internal tw-tiddlylink-missing">TiddlyWiki5</a></em><br />