Timestamps

Relying on the operating system’s “created” or “modified” file metadata is avoided, since these can be inadvertently overwritten during ordinary file system operations. Instead, new file-level nodes receive a “timestamp” metadata key by default when created. Timestamps can also be inserted anywhere else.

Text between two angled brackets (`< >`) is parsed as a timestamp whenever the first character inside the brackets is not `!`, `-` or whitespace. Urtext utilizes the Python `dateutil` module to loosely parse dates in almost any format. For instance, all of the following are valid:

<Fri., Oct. 09, 2020, 09:59 AM>
<February 23, 1848>
<May 1946>
<1066>

Press Insert ctrl + shift + t to insert the current date and time anywhere. The format of the resulting timestamp can be changed in project_settings using the timestamp_format key.

Timestamps may be used anywhere, with or without a key name; timestamps that are not part of a keyed metadata entry are termed “inline timestamps” and are auto-assigned the system key name `inline_timestamp`. Like all metadata, they remember their position and may function doubly as anchors/bookmarks.

Time Zones

Time zones are not required. If no time zone is present, Coordinated Universal Time (UTC) is added by default for parsing/comparison purposes. To modify this default, set the timezone key in project_settings.