Featureless Linux Library Specification

IKI-0001 (Basic)

The version date of this specification is 2023/07/14.

This specification provides a small set of vocabulary names meant to be associated with common uses, such as e-mail addresses and URLs.

Vocabulary:

address
Any mailing address, except for e-mail and URI.
code
All text contained within represent code and should be presented as such.
email
Any valid e-mail address.
phone
Any valid phone number.
quote
All text within represents some quote.
uri
Any valid URI (allows URL and URN).
url
Any valid URL.
urn
Any valid URN.
var
All text contained within represents some sort of variable.

Common Specification Rules

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-0001

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.";