created: 20130825150000000 modified: 20210714130751701 tags: [[TiddlyWiki on Node.js]] title: TiddlerFiles type: text/vnd.tiddlywiki Tiddlers can be stored in text files in several different formats. Files containing single tiddlers can also have an auxiliary `.meta` file formatted as a sequence of name:value pairs: ``` title: TheTitle modifier: someone ``` !! ~TiddlyWeb-style .tid files These files consist of a sequence of lines containing name:value pairs, a blank line and then the text of the tiddler. For example: ``` title: MyTiddler modifier: Jeremy This is the text of my tiddler. ``` Note that many text editors require that files include a terminating newline. If you want to avoid including the terminating newline in the text of the tiddler you can use this alternative syntax: ``` title: MyTiddler modifier: Jeremy text: This is the text of my tiddler. ``` //The ContentType `application/x-tiddler` is used internally for these files// !! TiddlyWiki `<DIV>` .tiddler files In TiddlyWiki 5, `*.tiddler` files look like this: ``` <div title="AnotherExampleStyleSheet" modifier="blaine" created="201102111106" modified="201102111310" tags="examples" creator="psd"> <pre>Note that there is an embedded <pre> tag, and line feeds are not escaped. And, weirdly, there is no HTML encoding of the body.</pre> </div> ``` These `*.tiddler` files are not exactly the same as the tiddlers inside a TiddlyWiki HTML file where they are HTML encoded. Older `*.tiddler` files more closely matched the store format used by TiddlyWiki at the time: ``` <div tiddler="AnotherExampleStyleSheet" modifier="JeremyRuston" modified="200508181432" created="200508181432" tags="examples">This is an old-school .tiddler file, without an embedded <pre> tag.\nNote how the body is "HTML encoded" and new lines are escaped to \\n</div> ``` //The ContentType `application/x-tiddler-html-div` is used internally for these files// !! ~TiddlyWeb-style JSON files These files are a straightforward array of hashmaps of `name:value` properties. All field values must be specified as strings. For example: ``` [ { "title": "First Tiddler", "text": "Text of first tiddler", "tags": "one two [[t h r e e]]" },{ "title": "Second Tiddler", "text": "Text of second tiddler", "modified": "20150216171751154" } ] ``` The ContentType `application/json` is used internally for these files. Note that JSON files that do not conform to the tiddler structure will instead be imported as a single tiddler containing the JSON data. !! New JSON-based format for TiddlyWiki HTML files The new format for TiddlyWiki HTML files embeds the tiddlers in JSON format within a script tag: ```json <script class="tiddlywiki-tiddler-store" type="application/json">[ {"title": "A","text": "One"}, {"title": "B","text": "Two"} ]</script> ``` !! Old DIV-based format for TiddlyWiki HTML files TiddlyWiki Classic and TiddlyWiki 5 prior to version v5.2.0 stored tiddlers encoded in `<DIV>` format. For TiddlyWiki to import an unencrypted DIV-based HTML file, it requires a `<div id="storeArea">` containing tiddler DIVs as explained above. For example: ``` <div id="storeArea"> <div created="20130302085406905" modified="20130302084548184" tags="Examples" title="A tiddler title"> <pre>HTML encoded text of tiddler </pre> </div> <div created="20140315085406905" modified="20140321084548184" tags="One Two [[Three with Space]]" title="Another title" customfield="field value"> <pre>Text of this tiddler </pre> </div> </div> ```