Syntax

Basic

Curly Brackets
{ Node contents go in here }
Enclose nodes. See Bracket Nodes for more information.
Link
| Node ID here >
Links to the specified node by id. Opens with the pipe character and a space and ends with a space and a right angle bracket .
See Links and Pointers for more information.
Pointer
| Node ID here >>

Embeds the specified node as though it were included bracket using wrappers. Opens with the pipe character and a space ( ) and ends with a space and two right angle brackets ( >>).

See Links and Pointers for more information

Bullet
• contents here …
Opens a bullet node. Must be the first non-whitespace character on a line. See Bullet Nodes for more information.
Timestamp Wrappers
<Tues., Oct. 1, 2024, 06:38 AM>
Enclose datetime strings. The first character inside the brackets may not be !, -, or whitespace.

See Timestamps for more information.

File Link
|/ path/to/file/or/folder >

By following the pipe character immediately with a forward slash, an absolute or relative path to a file can be inserter.

Title Marker
Title here _

A single underscore preceded by whitespace indicates the preceding text on the line is the title of the node. See Nodes for more information.


Metadata

Metadata Assigner
keyname::value another value
Accepts a user-defined key on the left, and values with optional timestamps on the right. Metadata may appear anywhere. They attach to their containing (parent) node, remember their exact location, and can serve as anchors/bookmarks to context. Keys must be single words (underscore permitted), values may be any characters, terminated with a semicolon or newline.
The hyphen character surrounded by spaces ( - )  separates multiple values for a single key.
See Metadata for more information
Asterisks
*keyname::value
**keyname::value

Immediately preceding a metadata key, the single and double asterisk propagate the metadata entry to child nodes and all descendant nodes, respectively. Note they do remove the metadata from the containing node. To assign the metadata entry containing node as well, precede them by the plus sign (+).ex

See Metadata for more information.

Plus sign
+*keyname::value
+**keyname::value

Preceding one or two asterisks before a metadata key, includes the metadata in the containing (current) node.

See Metadata for more information.

Hash
#keyname

Serves as a shorthand for an assignable metadata key. The key name can be set by the

Semicolon
keyname::value another value; more text…

Terminates metadata entries, if text is to continue on the same line. Otherwise, no semicolon is needed. See Metadata for more information.


Dynamic Definitions

Equal Sign

=  equal to

[[
INCLUDE(temperature=very hot)
]]
Specifies all nodes with metadata matching the given key and value.
Question Mark
?  “contains”
[[
INCLUDE(_contents ? temperature)
]]
Specifies all nodes containing the given string in the key provided.
Asterisk
*  “anything”
[[
INCLUDE(index = *)
]]
Wildcard that can be used on either side of an operator
Dynamic Definition Wrapper
[[ ]]

The double square brackets enclose dynamic definitions.

Flag

-[flag_name]

[[
DIRECTIVE_NAME(-flag_name)
]]

Within dynamic directives, modifies the output behavior. Begins with a dash, followed by any combination of alphabetic and underscore characters.

Virtual Target Indicator

@

[[
TARGET(@self)
INCLUDE(@parent)
]]

Indicates a virtual target for the TARGET() directive. See Virtual Output for more information.

Directive
[[
DIRECTIVE_NAME(argument; -flag; etc.)
]]

Directives are capitalized, non-whitespace names followed immediately by opening and closing parentheses which may enclose one or more parameters.  See Directives for more information.

Format String Prefix

$

[[
SHOW($title : $_oldest_timestamp)
]]

Indicates the text immediately following is either a key name in the project or a format string available in the SHOW() directive.


Embedding

Embedded Syntax Wrapper

%%Syntax_Name and %%

%%Python
print(Hello world)
%%

A double percent sign followed immediately by a name of another syntax prevent push the scope to that syntax, if available, and prevent the text from parsing by Urtext. The double percent sign ends the embed.

Backtick

`

`This text will be not be parsed as Urtext { can use syntax elements inside}`

The backtick character opens and closes text that should not be parsed at all. See Escaping and Embedding for more information.


System

Node Resolution Marker

 ^ 

| Node Title ^ a unique identifier such as timestamp or parent >

The caret, surrounded by spaces. Within links, it disambiguates nodes with duplicate titles by resolving them to their timestamp or parent ID. Added by Urtext, not user-created.

Missing Link

|? [node id >

|? This node is not in the project >

When a question mark immediately follows the pipe character in a link or pointer, the linked node ID cannot be found in the project. Generated by Urtext. See Links and Pointers for more information.

System Message Wrapper

<!  and !>

<! This is an error message from Urtext that will be cleared when fixed !>

Inserted by Urtext. These wrap error or system messages from Urtext itself. When resolved, they are removed.