Glossary
All terminology used for eno, listed alphabetically and in its singular form.
Attribute
my_attribute = my value
my_attribute =
An Attribute
can have a Value
or be empty.
Attribute Operator
The =
character when it appears after a Key
, optionally followed by a Value
.
Comment
> my comment
A Comment
is indicated by the Comment Operator
and followed by arbitrary text.
Comment Operator
The >
character (U+003E), when it occurs as the first non-whitespace character on a line, thereby starting a Comment
.
Document
The top level structure that contains everything in an .eno
file.
Conceptually equivalent to a Section
, but without a key and implicitly always there.
Element
All nodes in a Document
that can later be traversed by an application, that is a Attribute
, Embed
, Field
, Flag
, Item
or Section
.
Escaped Key
`my_escaped_key`:
A Key
contained between Escape Operators
.
Escape Operator
Any number of connected `
characters (U+0060) when they appear as the first non-whitespace characters in a line, indicating an Escaped Key
. It must be followed by exactly the same Escape Operator
later in the same line, terminating the Escaped Key
.
Field
my_key: my value
my_key:
my_attribute_a = my value
my_attribute_b = my value
my_key:
- my value
- my value
A Field
has a Key
. It can contain either a Value
, Attributes
, or Items
.
Field Operator
The :
character (U+003A) when it appears after a Key
, optionally followed by a Value
.
Flag
my_key
A Flag
element is a distinct element type only containing a Key
.
Item
- my value
-
An Item
can have a Value
or be empty.
Item Operator
A -
character (U+002D), when it appears as the first non-whitespace character in a line, indicating an Item
.
Embed
An Embed
has a Key
and a Value
. The Key
appears in the beginning and ending line. It's genuinely empty if there is no line between the beginning and ending line, whereas a single line with 0 characters between the beginning and ending line creates an empty string value.
Embed Operator
Two or more consecutive -
characters (U+002D) when they appear as the first
non-whitespace characters on a line and followed by a Key
, indicating the
begin or end of an Embed
. The number of hyphens that make up the
Embed Operator
in the ending line of an Embed
has to
match the number in the beginning line, just as the Key
needs to be repeated
exactly, otherwise the whole line is treated as simple text inside the
Embed
.
Key
my_key:
The thing that is also referred to as property, identifier, variable name
etc. in other languages is always designated as Key
in eno. A Key
can be
given to an Attribute
, Embed
, Field
, Flag
and Section
. Note that
conceptually the Key
of an Item
is the Key
of the Field
its in, as a
Value
with no association whatsoever makes little sense in a processable data
context.
Operator
Any of >
, :
, =
, -
, --
, #
, |
, \
, `
when they appear outside of a Comment
, Key
or Value
.
Section
# my_key
## my_key
A Section
has a Key
and a Depth
or Level
, determined by the number of
hashes that make up the Section Operator
. It contains Elements
. The first
Section
to appear in a document must have a Depth
of 1
, that is, the
Section Operator
being a single #
. Any following section can have a Depth
that is at most the Depth
of the immediately preceding Section
plus one, so
# section
may be followed by # section
or ## section
, but not by ### section
.
Section Operator
Any number of connected #
characters (U+0023) when they appear as the first non-whitespace characters on a line, indicating a Section
.
Value
my_key: my_value
A Value
might appear in an Attribute
, Embed
, Field
or Item
.
Values
can only include newlines and leading or trailing whitespace when they come from an Embed
.