project_settings

Urtext projects can have any number of nodes with the title project_settings. The metadata in nodes with this title will be used to set the project behavior.


atomic_rename

In project_settings, specifies whether to rename files, if necessary, on each save. Takes truthy or falsey values.

Default: No

atomic_rename::yes
breadcrumb_key

When popping nodes, optionally adds a breadcrumb showing which node the popped node was popped from, and the timestamp.

Default: popped_from

Example:

breadcrumb_key::popped_from
case_sensitive

Specifies which keys’ values should be parsed case-sensitively.

Default: title notes timezone timestamp_format filenames  timestamp

Example:

case_sensitive::notes comment
console_log

(True or False) Sets whether Urtext will log updates, errors, messages to the Python console. (In Sublime Text, Press Control-tilde(~) to toggle the console)

Default: no

Example:

console_log::yes
contents_strip_internal_whitespace

When including contents in dynamic nodes, determines whether internal multiline whitespace gets stripped from the dynamic output.

Default: True

Example:

contents_strip_internal_whitespace::no
contents_strip_outer_whitespace

When including contents in dynamic nodes, determines whether leading or trailing whitespace gets stripped from the dynamic output.

Default: yes

Example:

contents_strip_outer_whitespace::no
exclude_files

Sets filenames in the project folder(s) to be excluded from the project, if any.

Default: empty

Example:

exclude_files:: somefile.urtext some-other-file.urtext
exclude_from_star

When marking metadata using the * and ** syntax, these keys will get omitted, if present.

Default (read-only): title – _newest_timestamp – _oldest_timestamp – _inline_timestamp

Example:

exclude_from_star::filename
file_extensions

In project_settings, specifies file extensions for Urtext to compile (in addition to .urtext). Only evaluated once (reload the project if you change it.) The dot is optional and added if not supplied.

Default: urtext

Example:

file_extensions::txt md
filename_datestamp_format

Specifies how dates will be formatted in filenames when the timestamp is included in the filename. Provided because some characters common in dates and times are not valid in filenames on certain platforms.

Accepts the Python strftime format, see https://strftime.org/

Default: %m-%d-%Y %I-%M %p

Example:

filename_datestamp_format::%a., %b. %d, %Y, %I-%M %p %Z
filename_title_length

Sets a maximum title length (in characters) for filenames.

Default: 100

Example:

filename_title_length::255
filenames

Sets the template for filenames. Accepts a list of metadata values referencing metadata keys. Any metadata key used in the project is valid, in addition to the PREFIX placeholder, which will apply a numerical prefix to the outputted filename.

default: title - _oldest_timestamp

example:

filenames::index title _oldest_timestamp
more information: Files
hash_key

The keyname to use for the hash mark metadata shortcut. See Metadata -> Hash Key

Default: keyword

Example:

hash_key::tag
home

Identifies the home node id for the project, connected to the “Home” key (Ctrl-Shift-H).

Default: None

Example:

home::My Home Node
meta_browser_key

When browsing metadata, auto-selects a key so the first menu stage is skipped. Useful if you do not have many metadata keys or use only the hash key for metadata.

Default: None

Example:

meta_browser_key::my-custom-keyword
meta_browser_sort_keys_by

When using the metadata browser dropdown, specifies how to sort the options. Accepts alpha or frequency

Default: alpha

Example:

metadata_browser_sort_keys_by::frequency
meta_browser_sort_nodes_by

When using the metadata browser, specifies how to sort the nodes displayed. Accepts any metadata keys in the project, including system keys.

Default: _oldest_timestamp

Example:

meta_browser_sort_nodes_by::title
meta_browser_sort_values_by

Specifies how to sort the values in the metadata browser. Either “alpha” or “frequency”.

Default: alpha

Example:

meta_browser_sort_keys_by::alpha
new_file_node_format

Specifies the default format for new file nodes. The following values can be strung together in any way:

  • $timestamp
  • $device_keyname
  • $cursor

Any other Unicode characters are valid — arbitrary text, whitespace, newlines (\r), etc.

Default: $timestamp\n$cursor

Example:

new_file_node_format::$timestamp\n$device_name $cursor
new_filenames_template

Specifies a template for naming newly created file nodes. Accepts format strings and arbitrary text.

Default: $device_keyname $timestamp

Example:

new_filenames_template::$timestamp — on device $device_keyname
node_browser_sort

Specifies the key order by which nodes will sort in the Node Browser dropdown

Default: _oldest_timestamp

Example:

node_browser_sort::index _oldest_timestamp
Here, index would be, instance, a user-defined numerical key.
numerical_settings

Sets keys that should always be interpreted numerically for sorting and processing in dynamic output.

Default: _index - index - title_length - filename_title_length

Example:

numerical_settings::_index index title_length filename_title_length
other_entry_points

Specifies entry points for other projects to compile. Only evaluated once (reload the project if you change it.)

Default: None

Example:

other_entry_points::|/ ../some other project folder >
paths

Specifies paths in addition to the entry point for initial compile. Value is a single node that contains nodes with the following keys:

    • path – specifies the path to add. Accepts a relative or absolute file or folder path
    • recursive – specifies whether to recurse subfolders

Only evaluated once — reload the project if you change it.

Default: None

Example:

paths::{
{ Some Directive
 path::|/ /directives/lint >
recursive::yes
} { Some Other included folder
path::|/ ../some other included folder >
recursive::yes
}
}
project_title

Provides a title for the entire project

Default is the project entry path

Example:

project_title::New Starter Project
timestamp_format

Set the format for timestamps globally. Accepts Python strftime and arbitrary text. For format strings, see https://strftime.org/

Default: %a., %b. %d, %Y, %I:%M %p %Z

timestamp_format::%a., %b. %d, %Y, %I:%M %p
timezone

Specifices a timezone to which the timestamp keys should be localized, or, if including a timezone in the timestamp_format, what timezone to use.

use_timestamp

Specifies keys for which the timestamp component should be used as the value instead of the text value itself.

Default: _inline_timestamp – _oldest_timestamp – _newest_timestamp