Overview
Tana Paste is a way of creating rich Tana Outliner structures like fields, tags, dates, checkboxes etc, through a simple plain text paste.
It is not designed for inputting large amounts of information, and rather for automating one-off, small, generative results. For heavy lifts, use import tools, API or other scalable solutions.
It is also not designed to update or change existing information on nodes and fields. While you can specify existing template supertags and fields to use, it can only only generate new information within them.
The syntax is loosely modelled on Markdown.
Detail
Head
A Tana Paste is a plain text paste that begins with the string %%tana%%.
Nodes
Nodes are prepended by - (a dash and a space) and indentation indicates children.
References
References are defined with double brackets [[ ]]
- This will look for a node in the Library of the current workspace matching that name. If none exists, a new node will be created and linked to. Multiple links with the same string will always point at the same node.
- You can also specify a node target using
[[link name^nodeID]]. If thenodeIDdoes not exist, it will fall back to using the link name. - If you only supply a
nodeID, and it does not exist, it will create a link to "undefined", which you can later rename. - If you also specify the tag of the link, like so:
[[Wes Anderson #person]], it will find a node named Wes Anderson and tagged #person anywhere in your graph, and link to that, or create a new node in the library with the provided tag.
Fields
Fields use :: between the field name and the value.
- Fields will look up by string, but if they are nested underneath a supertag which has any fields with that name, Tana Outliner will prioritize the field from the supertag definition.
✨Newstricter requirements for matching existing fields:^nodeID::field valueThis will work ifnodeIDis a field that exists in a loaded workspacesomeTitle^nodeID::field valueIfnodeIDis a field in a workspace that is not loaded this will not work, use[[someTitle^nodeID]]::field valueinsteadfoo^bar::field valueThis will not work, sincebaris not an actualnodeIDthat exists
- If the field has a type of option or instance, and the provided value matches perfectly with an existing option or instance, the existing option or instance will be linked even if the text in the Tana Paste is not a link.
- Fields with multiple values can be specified through
- [[field name]]::and then the values nested and indented underneath (also prepended with dashes)
Supertags
Tags use #, and multi-word tag names can optionally be wrapped in [[]], so either #bug or #[[my ideas]].
- If no tag exists, a new one will be created.
- If you want to specify a specific tag, use
^like#bug^nodeID. It will fall back to the string name, and if no string is provided and thenodeIDdoesn't match, the tag will not be created. - You can link to a tag using
[[#tag]](especially useful in search nodes)
Views
You can set the view of a node, using %%view:table%%, %%view:cards%%, %%view:tabs%%, or %%view:calendar%%. See search node example below for a demo.
Search node
Add %%search%% to a node to make it a search node, with the search expression indented under.
In a search expression, we recognize system nodes like Set/Not set and field operators like LINKS TO, OWNER etc.
For field names, it's looking for a name match. To minimize confusion, add or replace the name with ^nodeID to specify the exact field you mean.
Example:
%%tana%%
- %%search%% Todo with start-date within next month %%view:table%%
- [[#task]]
- LT::
- Due date^B_QE7GpJBP :: [[May 10th, 2024]]
- NOT DONE
Dates
Simple dates look like this: [[date:2021-02]].
- They can include time
[[date:2021-02-01 20:30]], or only include the week[[date:2021-W02]], month[[date:2021-02]]or year[[date:2021]] - Durations are written like
[[date:2021-02/2021-04-05]]. - We also still support the old format
[[August 22nd, 2020]].
Checkboxes
Checkboxes use [ ] and [x] at the beginning of a node to indicate checked or unchecked.
- For fields/nodes which already have a checkbox, providing the
[ ]will not change anything, but for other nodes/fields it will insert a checkbox. - In all cases,
[x]will correctly set the checkbox as checked.
URLs
To add a URL, use this syntax: [name](url). Example:
%%tana%%
- [Tana Outliner website](https://tana.inc)
The link needs to include the https:// prefix.
Other
- There is support for Markdown tables and code blocks.
- Images use the syntax
 - Formatting:
**bold**,^^highlighted^^,__italic__ ✨NEWHeadings: Start node with!!- You can find examples of scripts that output text in the Tana Paste format here https://github.com/tanainc/tana-paste-examples
- Watch a demo by Stian that walks through Tana Paste.

