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 &lt;pre&gt; tag.\nNote how the body is &quot;HTML encoded&quot; 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>
```