1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-12-04 07:19:56 +00:00
TiddlyWiki5/tiddlywiki5/store/High Level Architecture.svg
Jeremy Ruston 0cfef8affa Added support for a serverside tiddler file store
Preparatory to implementing saving changes to the server
2012-04-03 14:43:13 +01:00

4 lines
31 KiB
XML

<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="-2 -2 814 684" width="814pt" height="57pc"><metadata xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:date>2012-01-12 18:59Z</dc:date><!-- Produced by OmniGraffle Professional 5.3.6 --></metadata><defs><font-face font-family="Helvetica" font-size="7" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="522.94922" cap-height="717.28516" ascent="770.01953" descent="-229.98047" font-weight="500"><font-face-src><font-face-name name="Helvetica"/></font-face-src></font-face><font-face font-family="Helvetica" font-size="10" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="532.22656" cap-height="719.72656" ascent="770.01953" descent="-229.98047" font-weight="bold"><font-face-src><font-face-name name="Helvetica-Bold"/></font-face-src></font-face><font-face font-family="Helvetica" font-size="7" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="532.22656" cap-height="719.72656" ascent="770.01953" descent="-229.98047" font-weight="bold"><font-face-src><font-face-name name="Helvetica-Bold"/></font-face-src></font-face><font-face font-family="Helvetica" font-size="6" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="532.22656" cap-height="719.72656" ascent="770.01953" descent="-229.98047" font-weight="bold"><font-face-src><font-face-name name="Helvetica-Bold"/></font-face-src></font-face><font-face font-family="Helvetica" font-size="8" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="532.22656" cap-height="719.72656" ascent="770.01953" descent="-229.98047" font-weight="bold"><font-face-src><font-face-name name="Helvetica-Bold"/></font-face-src></font-face><font-face font-family="Helvetica" font-size="9" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="532.22656" cap-height="719.72656" ascent="770.01953" descent="-229.98047" font-weight="bold"><font-face-src><font-face-name name="Helvetica-Bold"/></font-face-src></font-face><font-face font-family="Helvetica" font-size="6" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="522.94922" cap-height="717.28516" ascent="770.01953" descent="-229.98047" font-weight="500"><font-face-src><font-face-name name="Helvetica"/></font-face-src></font-face><font-face font-family="Helvetica" font-size="21" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="522.94922" cap-height="717.28516" ascent="770.01953" descent="-229.98047" font-weight="500"><font-face-src><font-face-name name="Helvetica"/></font-face-src></font-face></defs><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><title>Canvas 1</title><g><title>Layer 1</title><path d="M 553.10236 94.89766 C 679.6328 221.42743 679.6328 426.57257 553.10236 553.10236 C 426.57257 679.6328 221.42743 679.6328 94.89766 553.10236 C -31.632782 426.57257 -31.632782 221.42743 94.89766 94.89766 C 221.42743 -31.632782 426.57257 -31.632782 553.10236 94.89766" fill="#f600ff" fill-opacity=".2"/><path d="M 553.10236 94.89766 C 679.6328 221.42743 679.6328 426.57257 553.10236 553.10236 C 426.57257 679.6328 221.42743 679.6328 94.89766 553.10236 C -31.632782 426.57257 -31.632782 221.42743 94.89766 94.89766 C 221.42743 -31.632782 426.57257 -31.632782 553.10236 94.89766" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 715.10236 94.89766 C 841.6328 221.42743 841.6328 426.57257 715.10236 553.10236 C 588.57257 679.6328 383.42743 679.6328 256.89764 553.10236 C 130.36722 426.57257 130.36722 221.42743 256.89764 94.89766 C 383.42743 -31.632782 588.57257 -31.632782 715.10236 94.89766" fill="#ff0006" fill-opacity=".2"/><path d="M 715.10236 94.89766 C 841.6328 221.42743 841.6328 426.57257 715.10236 553.10236 C 588.57257 679.6328 383.42743 679.6328 256.89764 553.10236 C 130.36722 426.57257 130.36722 221.42743 256.89764 94.89766 C 383.42743 -31.632782 588.57257 -31.632782 715.10236 94.89766" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="369" y="162" width="72" height="72" fill="white"/><rect x="369" y="162" width="72" height="72" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(374 167)" fill="black"><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="6" textLength="36.579102">Manages a </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="14" textLength="38.910156">collection of </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="22" textLength="59.134277">tiddlers. Plumbs in </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="30" textLength="46.69629">representation </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="38" textLength="49.42041">conversion and </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="46" textLength="24.127441">caching</tspan></text><rect x="369" y="144" width="72" height="18" fill="black"/><rect x="369" y="144" width="72" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(374 147)" fill="white"><tspan font-family="Helvetica" font-size="10" font-weight="bold" fill="white" x="7.9848633" y="10" textLength="9.4384766">W</tspan><tspan font-family="Helvetica" font-size="10" font-weight="bold" fill="white" x="17.335449" y="10" textLength="36.679688">ikiStore</tspan></text><rect x="369" y="54" width="72" height="72" fill="white"/><rect x="369" y="54" width="72" height="72" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(374 59)" fill="black"><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="6" textLength="52.14453">Initialisation and </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="14" textLength="42.42041">bootstrapping</tspan></text><rect x="369" y="36" width="72" height="18" fill="black"/><rect x="369" y="36" width="72" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(374 39)" fill="white"><tspan font-family="Helvetica" font-size="10" font-weight="bold" fill="white" x="21.280762" y="10" textLength="19.438477">App</tspan></text><rect x="279" y="486" width="72" height="72" fill="white"/><rect x="279" y="486" width="72" height="72" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(284 491)" fill="black"><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="6" textLength="23.730957">Parses </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="23.60791" y="6" textLength="4.275879">T</tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="27.627441" y="6" textLength="29.944824">iddlyWiki-</tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="14" textLength="37.730957">style macro </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="22" textLength="56.416992">parameters into a </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="30" textLength="61.85498">JavaScript structure</tspan></text><rect x="279" y="468" width="72" height="18" fill="black"/><rect x="279" y="468" width="72" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(284 471)" fill="white"><tspan font-family="Helvetica" font-size="10" font-weight="bold" fill="white" x="6.8203125" y="10" textLength="48.359375">ArgParser</tspan></text><rect x="36" y="306" width="72" height="72" fill="white"/><rect x="36" y="306" width="72" height="72" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(41 311)" fill="black"><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="6" textLength="31.120605">Abstracts </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="14" textLength="7.3930664">dif</tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="7.2700195" y="14" textLength="28.792969">ferences </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="22" textLength="31.910156">between fi</tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="31.910156" y="22" textLength="31.506836">le system </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="30" textLength="31.899902">and HTTP</tspan></text><rect x="36" y="288" width="72" height="18" fill="black"/><rect x="36" y="288" width="72" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(41 291)" fill="white"><tspan font-family="Helvetica" font-size="10" font-weight="bold" fill="white" x=".70703125" y="10" textLength="60.585938">FileRetriever</tspan></text><rect x="468" y="144" width="72" height="72" fill="white"/><rect x="468" y="144" width="72" height="72" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(473 149)" fill="black"><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="6" textLength="58.35498">Parses JavaScript </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="14" textLength="55.64795">code into a parse </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="22" textLength="12.062012">tree</tspan></text><rect x="468" y="126" width="72" height="18" fill="black"/><rect x="468" y="126" width="72" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(473 131)" fill="white"><tspan font-family="Helvetica" font-size="7" font-weight="bold" fill="white" x="2.3967285" y="6" textLength="57.206543">JavaScriptParser</tspan></text><rect x="558" y="252" width="72" height="72" fill="white"/><rect x="558" y="252" width="72" height="72" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(563 257)" fill="black"><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="6" textLength="37.74121">Represents </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="14" textLength="59.141113">JavaScript code in </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="22" textLength="50.965332">a tree structure. </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="30" textLength="50.96875">Has methods to </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="38" textLength="62.641113">compile a tree back </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="46" textLength="35.799805">into textual </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="54" textLength="32.6792">JavaScript</tspan></text><rect x="558" y="234" width="72" height="18" fill="black"/><rect x="558" y="234" width="72" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(563 239.5)" fill="white"><tspan font-family="Helvetica" font-size="6" font-weight="bold" fill="white" x="1.4775391" y="6" textLength="50.364258">JavaScriptParseT</tspan><tspan font-family="Helvetica" font-size="6" font-weight="bold" fill="white" x="51.513672" y="6" textLength="9.008789">ree</tspan></text><rect x="468" y="261" width="72" height="72" fill="#fffcb4"/><rect x="468" y="261" width="72" height="72" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(473 266)" fill="black"><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="6" textLength="42.023926">Open source </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="14" textLength="59.527344">JavaScript parsing </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="22" textLength="21.020508">engine</tspan></text><rect x="468" y="243" width="72" height="18" fill="black"/><rect x="468" y="243" width="72" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(473 246)" fill="white"><tspan font-family="Helvetica" font-size="10" font-weight="bold" fill="white" x="12.936035" y="10" textLength="36.12793">PEG.JS</tspan></text><rect x="522" y="369" width="72" height="72" fill="#fffcb4"/><rect x="522" y="369" width="72" height="72" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(527 374)" fill="black"><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="6" textLength="44.351562">Parser for the </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="14" textLength="34.624023">JavaScript </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="22" textLength="59.54785">language provided </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="30" textLength="56.81006">as an example by </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="38" textLength="24.896484">PEG.JS</tspan></text><rect x="522" y="351" width="72" height="18" fill="black"/><rect x="522" y="351" width="72" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(527 355)" fill="white"><tspan font-family="Helvetica" font-size="8" font-weight="bold" fill="white" x=".76367188" y="8" textLength="60.472656">javascript.pegjs</tspan></text><rect x="675" y="180" width="72" height="72" fill="white"/><rect x="675" y="180" width="72" height="72" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(680 185)" fill="black"><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="6" textLength="40.465332">Collection of </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="14" textLength="56.030762">objects that know </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="22" textLength="58.76172">how to navigate to </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="30" textLength="39.689453">a new tiddler</tspan></text><rect x="675" y="162" width="72" height="18" fill="black"/><rect x="675" y="162" width="72" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(680 165)" fill="white"><tspan font-family="Helvetica" font-size="10" font-weight="bold" fill="white" x="5.1577148" y="10" textLength="51.68457">Navigators</tspan></text><rect x="702" y="306" width="72" height="72" fill="white"/><rect x="702" y="306" width="72" height="72" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(707 311)" fill="black"><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="6" textLength="4.6689453">A</tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="4.2861328" y="6" textLength="46.30664"> navigator that </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="14" textLength="37.734375">implements </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="22" textLength="4.275879">T</tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="4.0195312" y="22" textLength="57.343262">iddlyWiki's classic </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="30" textLength="33.858398">navigation </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="38" textLength="30.744629">behaviour</tspan></text><rect x="702" y="288" width="72" height="18" fill="black"/><rect x="702" y="288" width="72" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(707 292)" fill="white"><tspan font-family="Helvetica" font-size="8" font-weight="bold" fill="white" x="2.3261719" y="8" textLength="57.347656">StoryNavigator</tspan></text><rect x="63" y="180" width="72" height="72" fill="white"/><rect x="63" y="180" width="72" height="72" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(68 185)" fill="black"><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="6" textLength="43.579102">Represents a </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="14" textLength="4.275879">T</tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="4.0195312" y="14" textLength="52.513672">iddlyWiki recipe. </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="22" textLength="50.96875">Has methods to </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="30" textLength="55.651367">load a recipe and </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="38" textLength="56.80664">its tiddlers, and to </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="46" textLength="57.59619">cook the output of </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="54" textLength="30.741211">the recipe</tspan></text><rect x="63" y="162" width="72" height="18" fill="black"/><rect x="63" y="162" width="72" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(68 165)" fill="white"><tspan font-family="Helvetica" font-size="10" font-weight="bold" fill="white" x="14.603516" y="10" textLength="32.792969">Recipe</tspan></text><rect x="369" y="270" width="72" height="72" fill="white"/><rect x="369" y="270" width="72" height="72" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(374 275)" fill="black"><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="6" textLength="43.579102">Represents a </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="14" textLength="40.079102">tiddler as an </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="22" textLength="34.234375">immutable </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="30" textLength="42.410156">collection of fi</tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="42.410156" y="30" textLength="12.8413086">elds</tspan></text><rect x="369" y="252" width="72" height="18" fill="black"/><rect x="369" y="252" width="72" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(374 255)" fill="white"><tspan font-family="Helvetica" font-size="10" font-weight="bold" fill="white" x="14.42041" y="10" textLength="6.1083984">T</tspan><tspan font-family="Helvetica" font-size="10" font-weight="bold" fill="white" x="20.353027" y="10" textLength="27.226562">iddler</tspan></text><rect x="414" y="378" width="72" height="72" fill="white"/><rect x="414" y="378" width="72" height="72" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(419 383)" fill="black"><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="6" textLength="50.579102">Functions know </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="14" textLength="63.803223">how to write tiddlers </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="22" textLength="47.861816">to various data </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="30" textLength="23.33789">formats</tspan></text><rect x="414" y="360" width="72" height="18" fill="black"/><rect x="414" y="360" width="72" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(419 363.5)" fill="white"><tspan font-family="Helvetica" font-size="9" font-weight="bold" fill="white" x="1.3347168" y="9" textLength="5.4975586">T</tspan><tspan font-family="Helvetica" font-size="9" font-weight="bold" fill="white" x="6.6740723" y="9" textLength="53.99121">iddlerOutput</tspan></text><rect x="324" y="378" width="72" height="72" fill="white"/><rect x="324" y="378" width="72" height="72" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(329 383)" fill="black"><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="6" textLength="45.913574">Functions that </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="14" textLength="56.81006">know how to read </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="22" textLength="40.455078">tiddlers from </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="30" textLength="40.079102">various data </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="38" textLength="23.33789">formats</tspan></text><rect x="324" y="360" width="72" height="18" fill="black"/><rect x="324" y="360" width="72" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(329 363)" fill="white"><tspan font-family="Helvetica" font-size="10" font-weight="bold" fill="white" x="2.2036133" y="10" textLength="6.1083984">T</tspan><tspan font-family="Helvetica" font-size="10" font-weight="bold" fill="white" x="8.1362305" y="10" textLength="51.660156">iddlerInput</tspan></text><rect x="459" y="486" width="72" height="72" fill="white"/><rect x="459" y="486" width="72" height="72" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(464 491)" fill="black"><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="6" textLength="50.579102">Ragtag of small </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="14" textLength="57.96875">utility functions for </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="22" textLength="41.637695">manipulating </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="30" textLength="53.31006">strings and dates</tspan></text><rect x="459" y="468" width="72" height="18" fill="black"/><rect x="459" y="468" width="72" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(464 471)" fill="white"><tspan font-family="Helvetica" font-size="10" font-weight="bold" fill="white" x="20.165039" y="10" textLength="21.669922">Utils</tspan></text><rect x="270" y="144" width="72" height="72" fill="white"/><rect x="270" y="144" width="72" height="72" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(275 149)" fill="black"><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="6" textLength="63.799805">Parses wiki text into </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="14" textLength="37.35498">a parse tree</tspan></text><rect x="270" y="126" width="72" height="18" fill="black"/><rect x="270" y="126" width="72" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(275 130)" fill="white"><tspan font-family="Helvetica" font-size="8" font-weight="bold" fill="white" x="2.4277344" y="8" textLength="7.5507812">W</tspan><tspan font-family="Helvetica" font-size="8" font-weight="bold" fill="white" x="9.908203" y="8" textLength="13.78125">ikiT</tspan><tspan font-family="Helvetica" font-size="8" font-weight="bold" fill="white" x="23.09961" y="8" textLength="36.472656">extParser</tspan></text><rect x="180" y="252" width="72" height="72" fill="white"/><rect x="180" y="252" width="72" height="72" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(185 257)" fill="black"><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="6" textLength="57.189453">Represents a wiki </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="14" textLength="63.027344">text parse tree. Has </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="22" textLength="62.641113">methods to compile </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="30" textLength="58.368652">the parse tree into </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="38" textLength="40.461914">a JavaScript </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="46" textLength="24.51709">function</tspan></text><rect x="180" y="234" width="72" height="18" fill="black"/><rect x="180" y="234" width="72" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(185 239)" fill="white"><tspan font-family="Helvetica" font-size="7" font-weight="bold" fill="white" x=".15966797" y="6" textLength="6.6069336">W</tspan><tspan font-family="Helvetica" font-size="7" font-weight="bold" fill="white" x="6.705078" y="6" textLength="12.058594">ikiT</tspan><tspan font-family="Helvetica" font-size="7" font-weight="bold" fill="white" x="18.247559" y="6" textLength="33.465332">extParseT</tspan><tspan font-family="Helvetica" font-size="7" font-weight="bold" fill="white" x="51.330078" y="6" textLength="10.510254">ree</tspan></text><rect x="270" y="261" width="72" height="72" fill="white"/><rect x="270" y="261" width="72" height="72" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(275 266)" fill="black"><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="6" textLength="58.3584">Individual wiki text </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="14" textLength="40.075684">parsing rules</tspan></text><rect x="270" y="243" width="72" height="18" fill="black"/><rect x="270" y="243" width="72" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(275 247)" fill="white"><tspan font-family="Helvetica" font-size="8" font-weight="bold" fill="white" x="3.9902344" y="8" textLength="7.5507812">W</tspan><tspan font-family="Helvetica" font-size="8" font-weight="bold" fill="white" x="11.470703" y="8" textLength="13.78125">ikiT</tspan><tspan font-family="Helvetica" font-size="8" font-weight="bold" fill="white" x="24.66211" y="8" textLength="33.347656">extRules</tspan></text><rect x="369" y="486" width="72" height="117" fill="white"/><rect x="369" y="486" width="72" height="117" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="369" y="468" width="72" height="18" fill="black"/><rect x="369" y="468" width="72" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(374 472)" fill="white"><tspan font-family="Helvetica" font-size="8" font-weight="bold" fill="white" x="16.769531" y="8" textLength="28.460938">macros</tspan></text><rect x="378" y="495" width="54" height="9" fill="black"/><rect x="378" y="495" width="54" height="9" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(383 496)" fill="white"><tspan font-family="Helvetica" font-size="6" font-weight="500" fill="white" x="15.494629" y="6" textLength="13.010742">echo</tspan></text><rect x="378" y="513" width="54" height="9" fill="black"/><rect x="378" y="513" width="54" height="9" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(383 514)" fill="white"><tspan font-family="Helvetica" font-size="6" font-weight="500" fill="white" x="17.163086" y="6" textLength="9.673828">info</tspan></text><rect x="378" y="531" width="54" height="9" fill="black"/><rect x="378" y="531" width="54" height="9" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(383 532)" fill="white"><tspan font-family="Helvetica" font-size="6" font-weight="500" fill="white" x="18.333496" y="6" textLength="7.333008">list</tspan></text><rect x="378" y="549" width="54" height="9" fill="black"/><rect x="378" y="549" width="54" height="9" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(383 550)" fill="white"><tspan font-family="Helvetica" font-size="6" font-weight="500" fill="white" x="13.8291016" y="6" textLength="16.341797">tiddler</tspan></text><rect x="378" y="567" width="54" height="9" fill="black"/><rect x="378" y="567" width="54" height="9" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(383 568)" fill="white"><tspan font-family="Helvetica" font-size="6" font-weight="500" fill="white" x="12.3291016" y="6" textLength="19.341797">version</tspan></text><rect x="378" y="585" width="54" height="9" fill="black"/><rect x="378" y="585" width="54" height="9" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(383 586)" fill="white"><tspan font-family="Helvetica" font-size="6" font-weight="500" fill="white" x="15.998535" y="6" textLength="12.00293">view</tspan></text><text transform="translate(296 657)" fill="black"><tspan font-family="Helvetica" font-size="21" font-weight="500" x=".14160156" y="20" textLength="67.716797">node.js</tspan></text><text transform="translate(455.5 657)" fill="black"><tspan font-family="Helvetica" font-size="21" font-weight="500" x=".15527344" y="20" textLength="74.689453">browser</tspan></text><rect x="657" y="441" width="72" height="72" fill="white"/><rect x="657" y="441" width="72" height="72" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(662 446)" fill="black"><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="6" textLength="62.641113">Implements node.js </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="14" textLength="56.816895">module loading in </tspan><tspan font-family="Helvetica" font-size="7" font-weight="500" x="0" y="22" textLength="36.572266">the browser</tspan></text><rect x="657" y="423" width="72" height="18" fill="black"/><rect x="657" y="423" width="72" height="18" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(662 427)" fill="white"><tspan font-family="Helvetica" font-size="8" font-weight="bold" fill="white" x="8.5566406" y="8" textLength="44.88672">BootLoader</tspan></text></g></g></svg>