The version date of this specification is 2023/07/14
.
This specification provides no restrictions on the vocabulary.
The version date of this specification is 2023/07/14
.
This specification provides no restrictions on the vocabulary.
IKI is a minimally structured WIKI-like syntax meant to be simpler than WIKI syntax.
The IKI syntax provides a vocabulary name (with specific context associated with it) followed by quoted code that is associated with the given vocabulary name. The vocabulary represents a list of allowed variable names that may also have specific contextual meaning defined by a given IKI specification. The variable name is considered the Object. The variable value is considered the Content.
The IKI format will use iki-0000
to represent an IKI with no explicitly defined vocabulary.
Whereas iki-0001
and beyond represent a specific IKI vocabulary.
A potential IKI variable name starts on word (or _
, -
, +
) characters.
White space and non-word (and non _
, -
, +
) character punctuations may not exist as part of the variable name.
The only Unicode dash-like characters allowed as a "dash" are those intended to connect, such as the Unicode hyphens (U+2010
and U+2011
).
Any valid IKI data may be escaped to make it treated as non-IKI data by prepending a backslash " before the colon code:
:" that is before the opening quote (single or double).
Unicode punctuation connector characters are supported just like _
, except when they connect outside the current line (such as U+FE33
︳
).
Unicode invisible punctuations (such as invisible plus: U+2064
) are not considered a punctuations in this standard (because they a zero-width characters), therefore they are not to be considered a valid _
, -
, or +
Unicode equivalents.
Key:
\o
= any printable word character, including _
, -
, +
(and Unicode equivalents).\c
= any character, including white space and non-printing, and any delimited quote (used as the opening quote) or a any quote (undelimited) not used as the opening quote.\q
= either a single quote '
or a double quote "
.\x
= any character.\W
= any non-word character, discluding _
, -
, +
(and Unicode equivalents).\e
= an optional escape sequence of any number of backslashes, such as \
.*
= zero or more occurrences.~
= one or more occurrences, or zero if at start of file.Before Structure:
\x*\W~\*:*
Structure:
\o\e:\q\c\q
After Structure:
Example File:
# fss-000c iki-0000 This is my sentence, anything can go here but sometimes I want to emphasis:"emphasize some text". Other times I want to render a url such as this example url: url:'http://www.example.com/url with space/'. There are no comments, except for maybe the FSS header (which would not resolve to any IKI syntax anyway). Quotes may be included, such as: code:"const char *string = \"My \\\"quoted\\\" C string.\";". The following emphasis\:"is escaped to not be treated as IKI data".
Example Results:
Objects would be: 1) emphasis 2) url 3) code Contents would be: 1.1) emphasize some text 2.1) http://www.example.com/url with space/ 3.1) const char *string = "My \"quoted\" C string.";