]> Kevux Git Server - kevux.org-website/commitdiff
Update: Specification files, syncing with latest versions.
authorKevin Day <Kevin@kevux.org>
Fri, 10 Jan 2025 05:32:20 +0000 (23:32 -0600)
committerKevin Day <Kevin@kevux.org>
Fri, 10 Jan 2025 05:47:30 +0000 (23:47 -0600)
Add new specifications.
Update existing specifications.

The following is an example on how I started generating the HTML from the specifications.
```
fss_basic_list_read iki.txt +Q -c | iki_read +Q -w -rr FLL '<abbr title="Featureless Linux Library">FLL</abbr>' FSS '<abbr title="Featureless Settings Specifications">FSS</abbr>' -WWWWWW character '<code class="code">' "</code>" UTF-8 '<abbr title="Unicode Transformation Format 8-bit">' '</abbr>' italic '<em class="em">' '</em>' unicode '<code class="code">' '</code>' code '<code class="code">' '</code>' file '<code class="code">' '</code>'
```

I then make manual modifications as needed.

44 files changed:
documents/standards/fll/specifications/eki-0000.txt [new file with mode: 0644]
documents/standards/fll/specifications/eki-0001.txt [new file with mode: 0644]
documents/standards/fll/specifications/eki.txt [new file with mode: 0644]
documents/standards/fll/specifications/fss-0000.txt
documents/standards/fll/specifications/fss-0001.txt
documents/standards/fll/specifications/fss-0002.txt
documents/standards/fll/specifications/fss-0003.txt
documents/standards/fll/specifications/fss-0004.txt
documents/standards/fll/specifications/fss-0005.txt
documents/standards/fll/specifications/fss-0006.txt
documents/standards/fll/specifications/fss-0007.txt
documents/standards/fll/specifications/fss-0008.txt
documents/standards/fll/specifications/fss-0009.txt
documents/standards/fll/specifications/fss-000a.txt
documents/standards/fll/specifications/fss-000b.txt
documents/standards/fll/specifications/fss-000c.txt
documents/standards/fll/specifications/fss-000d.txt
documents/standards/fll/specifications/fss-000e.txt
documents/standards/fll/specifications/iki.txt
documents/standards/fll/specifications/resolution.txt
documents/standards/fll/specifications/time.txt
fll/specifications.html
fll/specifications/eki/eki-0000.html [new file with mode: 0644]
fll/specifications/eki/eki-0001.html [new file with mode: 0644]
fll/specifications/fss/fss-0000.html
fll/specifications/fss/fss-0001.html
fll/specifications/fss/fss-0002.html
fll/specifications/fss/fss-0003.html
fll/specifications/fss/fss-0004.html
fll/specifications/fss/fss-0005.html
fll/specifications/fss/fss-0006.html
fll/specifications/fss/fss-0007.html
fll/specifications/fss/fss-0008.html
fll/specifications/fss/fss-0009.html
fll/specifications/fss/fss-000a.html
fll/specifications/fss/fss-000b.html
fll/specifications/fss/fss-000c.html
fll/specifications/fss/fss-000d.html
fll/specifications/fss/fss-000e.html
fll/specifications/fss/fss-000f.html
fll/specifications/fss/fss-0010.html
fll/specifications/iki/iki-0000.html
fll/specifications/iki/iki-0001.html
fll/specifications/iki/iki-0002.html

diff --git a/documents/standards/fll/specifications/eki-0000.txt b/documents/standards/fll/specifications/eki-0000.txt
new file mode 100644 (file)
index 0000000..b45077e
--- /dev/null
@@ -0,0 +1,16 @@
+# fss-0002 iki-0000
+#
+# license open-standard-license-1.0-or-later
+# version 2024/11/03
+#
+# This file (assumed to be named eki-0000.txt) can be more easily read using the following iki_read commands:
+#   iki_read eki-0000.txt +Q -w -WW character "'" "'" code '"' '"'
+#
+# To read the "EKI Specification: 0000 - Unrestricted" section of this file, use this command sequence:
+#   fss_basic_list_read eki-0000.txt +Q -cn "EKI Specification: 0000 - Unrestricted" | iki_read +Q -w -WW character "'" "'" code '"' '"'
+#
+
+EKI Specification: 0000 - Unrestricted:
+  This specification provides no restrictions on the vocabulary.
+
+  See the file:"eki.txt" specification file for details on the syntax rules.
diff --git a/documents/standards/fll/specifications/eki-0001.txt b/documents/standards/fll/specifications/eki-0001.txt
new file mode 100644 (file)
index 0000000..583b3fa
--- /dev/null
@@ -0,0 +1,27 @@
+# fss-0002 iki-0000
+#
+# license open-standard-license-1.0-or-later
+# version 2024/11/03
+#
+# This file (assumed to be named eki-0001.txt) can be more easily read using the following iki_read commands:
+#   iki_read eki-0001.txt +Q -w -rrr URI URI URL URL URN URN -WW character "'" "'" code '"' '"'
+#
+# To read the "EKI Specification: 0001 - Basic" section of this file, use this command sequence:
+#   fss_basic_list_read eki-0001.txt +Q -cn "EKI Specification: 0001 - Basic" | iki_read +Q -w -rrr URI URI URL URL URN URN -WW character "'" "'" code '"' '"'
+#
+
+EKI Specification: 0001 - Basic:
+  This specification provides a small set of vocabulary names meant to be associated with common uses, such as e-mail addresses and URL:"Uniform Resource Locator"s.
+
+  Vocabulary\:
+  - address: Any mailing address, except for e-mail and URI:"Uniform Resource Identifier".
+  - 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:"Uniform Resource Identifier" (allows URL:"Uniform Resource Locator" and URN:"Uniform Resource Name").
+  - url: Any valid URL:"Uniform Resource Locator".
+  - urn: Any valid URN:"Uniform Resource Name".
+  - var: All text contained within represents some sort of variable.
+
+  See the file:"eki.txt" specification file for details on the syntax rules.
diff --git a/documents/standards/fll/specifications/eki.txt b/documents/standards/fll/specifications/eki.txt
new file mode 100644 (file)
index 0000000..44f4380
--- /dev/null
@@ -0,0 +1,108 @@
+# fss-0002 iki-0000
+#
+# license open-standard-license-1.0-or-later
+# version 2024/11/21
+#
+# This file (assumed to be named eki.txt) can be more easily read using the following iki_read commands:
+#   iki_read eki.txt +Q -w -WWW character "'" "'" code '"' '"' italic '"' '"'
+#
+# To read the "EKI Specifications" section of this file, use this command sequence:
+#   fss_basic_list_read eki.txt +Q -cn "EKI Specifications" | iki_read +Q -w -WWW character "'" "'" code '"' '"' italic '"' '"'
+#
+
+EKI Specifications:
+  EKI is an extended EKI format that introduces the ability to have multiple variable names (italic:"Objects") per variable value (italic:"Content").
+
+  The EKI syntax is identical to the EKI syntax and all of its rules apply except for the modification defined in this specification.
+
+  This variable name, or italic:"Object", now supports an additional character, character:":" (unicode:"U+003A"), is used to separate each individual variable name.
+  Each variable name must follow the same requirements of a valid variable name as specified in the EKI specification.
+  Only the last character:":" (unicode:"U+003A") before the opening single quote (unicode:"U+0027"), double quote (unicode:"U+0022"), or grave (unicode:"U+0060") shall be a candidate for being escaped.
+  When this escape is in place of a valid EKI variable, then that would be variable is no longer considered an EKI variable.
+
+  Key\:
+    code:"\o" = any printable word character, including character:"_", character:"-", character:"+" (and Unicode equivalents).
+    code:"\O" = any printable word character, including character:"_", character:"-", character:"+" (and Unicode equivalents) followed by a colon character:":" (unicode:"U+003A") (cannot be only a colon by itself).
+    code:"\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.
+    code:"\q" = either a single quote character:"'" (unicode:"U+0027"), a double quote character:'"' (unicode:"U+0022"), or a grave character:'`' (unicode:"U+0060").
+    code:"\x" = any character.
+    code:"\W" = any non-word character, discluding character:"_" (and Unicode equivalents), character:"-" (and Unicode equivalents), character:"+" (and Unicode equivalents), and colon character:":" (unicode:"U+003A").
+    code:"\e" = an optional escape sequence of any number of backslashes, such as character:"\\" (unicode:"U+005C").
+    code:"[" = a single conditionally optional open bracket, character:"[" (unicode:"U+005B").
+    code:"]" = a single conditionally optional close bracket, character:"]" (unicode:"U+005D").
+    code:"*" = zero or more occurrences.
+    code:"~" = one or more occurrences, or zero if at start of file.
+    code:"+" = one or more occurrences.
+    code:":" = The colon character:":" (unicode:"U+003A").
+
+  Before Structure\:
+    code:"\x*\W~"
+
+  Structure\:
+    code:"[\O*\o+]\e:\q\c\q"
+
+  After Structure\:
+    code:""
+
+  Example\:
+    code:`# fss-000c eki-0000
+
+    This is my sentence, anything can go here but sometimes I want to italic\:"emphasize some text".
+
+    Other times I want to render a URL with bold such as this example URL: bold:url:\'http://www.example.com/url with space/'.
+
+    There are no comments, except for maybe the FSS\:"Featureless Settings Specification" header (which would not resolve to any EKI syntax anyway).
+
+    Quotes may be included, such as: code\:"const char *string = \"My \\\"quoted\\\" C string.\";".
+
+    The following bold:italic\\:"is escaped to not be treated as EKI data".
+
+    The conditionally optional open and close brackets allow for putting a variable directly next to another word character like: [context]\:"bold"this[context]\:"bold".
+
+    Multiple Objects within a bracket is also valid, like: before[bold:context]\:"important"after.
+
+    These are examples of escapes: one\:"\" escape", two\:"\\" escape", three\:"\\\" escape", six\:"\\\\\\" escape".
+
+    These are examples of non-escapes: one\:"\' escape", two\:"\\' escape", three\:"\\\' escape", six\:"\\\\\\' escape".
+
+    These slashes \ \\ \\\ are not escaped because there is now quote immediately after each of them.`
+
+  Objects (also called vocabulary or variable name) would be\:
+     1.1) italic
+     2.1) bold
+     2.2) URL
+     3.1) FSS
+     4.1) code
+     5.1) context
+     6.1) context
+     7.1) bold
+     7.2) context
+     8.1) one
+     9.1) two
+    10.1) three
+    11.1) six
+    12.1) one
+    13.1) two
+    14.1) three
+    15.1) six
+
+  Contents (also called variable value) would be\:
+     1.1) emphasize some text
+     2.1) http://www.example.com/url with space/
+     3.1) Featureless Settings Specification
+     4.1) const char *string = "My \"quoted\" C string.";
+     5.1) bold
+     6.1) bold
+     7.1) important
+     8.1) " escape
+     9.1) \\
+    10.1) \" escape
+    11.1) \\\
+    12.1) \' escape
+    13.1) \\' escape
+    14.1) \\\' escape
+    15.1) \\\\\\' escape
+
+  The following are core specifications (each with a common name associated with the specification number)\:
+  - eki-0000: Unrestricted
+  - eki-0001: Basic
index 86848d7e725f7be73c7e2cbf4aac705e4103961d..a80247adf9f9fc0179709bb7d7005fa11db83d6e 100644 (file)
@@ -46,8 +46,8 @@ Featureless Settings Specification: 0000 - Basic:
     code:""
 
   Example\:
-    # fss-0000
-    # valid comments are ignored.
+    \# fss-0000
+    \# valid comments are ignored.
     "The Object" Content until new line.
     Second object set.
 
index 388ffee993bae319fb9cf98c3451b135e4c3d44c..0ec0cdb3e9a61a8274d8a725990a0c465b7c0296 100644 (file)
@@ -46,8 +46,8 @@ Featureless Settings Specification: 0001 - Extended:
     code:""
 
   Example\:
-    # fss-0001
-    # valid comments are ignored.
+    \# fss-0001
+    \# valid comments are ignored.
     "The Object" Content "content 2" content_3.
     Second object set.
 
index 715f73beb56b9294edc41f706ad8845b0f4186c5..ace8e467991c48531d9a7ac7303f50bff7cab083 100644 (file)
@@ -1,7 +1,7 @@
 # fss-0002 iki-0000
 #
 # license open-standard-license-1.0-or-later
-# version 2024/01/15
+# version 2024/08/30
 #
 # This file (assumed to be named fss-0002.txt) can be more easily read using the following iki_read commands:
 #   iki_read fss-0002.txt +Q -w -WW character "'" "'" code '"' '"'
 #
 
 Featureless Settings Specification: 0002 - Basic List:
-  Each Object starts at the beginning of a line and white space to the left of the Object is not treated as an object.
+  Each Object starts at the beginning of a line and white space to the left of the Object is not treated as an Object.
   A colon character:":" (unicode:"U+003A") followed by any white space until a new line terminates a valid Object.
+  White space after the last printable character of the Object but before the colon character:":" (unicode:"U+003A") is not considered part of the Object.
   Non-white space printable characters may not follow the colon of a valid Object.
+  Implementations of the standard may choose to include the white space to the left and to the right of a valid Object may be included as an untrimmed Object.
 
-  Content is represented as a single Content column of every line following a valid object until the end of file (or string) or until the next valid Object is found.
+  Content is represented as a single Content column of every line following a valid Object until the end of file (or string) or until the next valid Object is found.
   Any Content that could be interpreted as a valid Object must have the colon delimited.
 
   There is no single-quote (unicode:"U+0027"), double-quote (unicode:"U+0022"), or grave (unicode:"U+0060") delimitation in this specification.
   Only a colon character:":" (unicode:"U+003A") that would result in a valid Object can be delimited.
 
-  Empty Objects are allowed, that is, the length of the object may be zero.
+  Empty Objects are allowed, that is, the length of the Object may be zero.
 
   Key\:
     code:"\s" = White space, except new line.
     code:"\o" = Any printable character, except unescaped character:":" (unicode:"U+003A").
-    code:"\l" = Any printable character or white space, except unescaped character:":" (unicode:"U+003A").
     code:"\c" = Either white space or printable, including new line, that not interpretable as an Object.
     code:"\n" = New line.
     code:"*" = Zero or more occurrences.
@@ -35,14 +36,14 @@ Featureless Settings Specification: 0002 - Basic List:
     code:""
 
   Structure\:
-    code:"\s*\o\l*:\s*\n\c*\n*"
+    code:"\s*\o\s*:\s*\n\c*\n*"
 
   After Structure\:
     code:""
 
   Example\:
-    # fss-0002
-    # valid comments are ignored.
+    \# fss-0002
+    \# valid comments are ignored.
     "The Object"\:
       Does not need to be quoted.
       This: does not need to be delimited.
@@ -50,7 +51,7 @@ Featureless Settings Specification: 0002 - Basic List:
     Second\:
       Continues until EOS/EOF.
       All white space, including new line (and leading white space) is "part of content."
-      # Valid comments are still ignored.
+      \# Valid comments are still ignored.
 
   Objects would be\:
     1) "The Object"
index 652d59888eb6cfce8f038804c5cd694e3031bb9a..9220d7bf5475d9a156a7b40bef32cc05fdb365cd 100644 (file)
@@ -1,7 +1,7 @@
 # fss-0002 iki-0000
 #
 # license open-standard-license-1.0-or-later
-# version 2024/01/15
+# version 2024/08/30
 #
 # This file (assumed to be named fss-0003.txt) can be more easily read using the following iki_read commands:
 #   iki_read fss-0003.txt +Q -w -WW character "'" "'" code '"' '"'
 #
 
 Featureless Settings Specification: 0003 - Extended List:
-  Each Object starts at the beginning of a line and white space to the left of the Object is not treated as an object.
+  Each Object starts at the beginning of a line and white space to the left of the Object is not treated as an Object.
   An open-brace character:"{" (unicode:"U+007B") followed by any white space until a new line terminates a possible valid Object.
+  White space after the last printable character of the Object but before the brace character:"{" (unicode:"U+0037B") is not considered part of the Object.
   An Object is not considered fully valid until a valid close-brace character:"}" (unicode:"U+007D") is found, designating the end of the Content.
   Non-white space printable characters may not follow the open-brace character:"{" (unicode:"U+007B") of a valid Object.
+  Implementations of the standard may choose to include the white space to the left and to the right of a valid Object may be included as an untrimmed Object.
 
-  Content is represented as a single Content column of every line following a valid object until the end of file (or string) or until a non-delimited close-brace character:"}" (unicode:"U+007D").
+  Content is represented as a single Content column of every line following a valid Object until the end of file (or string) or until a non-delimited close-brace character:"}" (unicode:"U+007D").
   Any Content column that could be interpreted as an end of Content must be delimited if it should be part of the Content.
   White space may follow a valid close-brace character:"}" (unicode:"U+007D") but a terminating new line must be present to designate a valid end of Content.
 
@@ -29,12 +31,11 @@ Featureless Settings Specification: 0003 - Extended List:
   Each delimit slash in a delimitable open-brace character:"{" (unicode:"U+007B") is treated as a potential delimit such that two slashes represents a single delimited slash (code:"\\{" would represent code:"\{").
   Only the first delimit slash in a delimitable close-brace character:"}" (unicode:"U+007D") is treated as a potential delimit (code:"\\\}" would represent code:"\\}").
 
-  Empty Objects are allowed, that is, the length of the object may be zero.
+  Empty Objects are allowed, that is, the length of the Object may be zero.
 
   Key\:
     code:"\s" = White space, except new line.
     code:"\o" = Any printable character, except unescaped character:"{" (unicode:"U+007B").
-    code:"\l" = Any printable character or white space, except unescaped character:"}" (unicode:"U+007D").
     code:"\c" = Either white space or printable, including new line, that is not interpretable as an Object.
     code:"\n" = Newline.
     code:"*" = Zero or more occurrences.
@@ -43,14 +44,14 @@ Featureless Settings Specification: 0003 - Extended List:
     code:""
 
   Structure\:
-    code:"\s*\o\l*{\s*\n\c*\n\s*}\s*\n"
+    code:"\s*\o\s*{\s*\n\c*\n\s*}\s*\n"
 
   After Structure\:
     code:""
 
   Example\:
-    # fss-0003
-    # valid comments are ignored.
+    \# fss-0003
+    \# valid comments are ignored.
     "The Object" {
       Does not need to be quoted.
       This: does not need to be delimited.
@@ -60,7 +61,7 @@ Featureless Settings Specification: 0003 - Extended List:
     Second {
       Continues until EOS/EOF.
       All white space, including new line (and leading white space) is "part of content."
-      # Valid comments are still ignored.
+      \# Valid comments are still ignored.
     }
 
   Objects would be\:
index 32adee479b1d382ef2bbcd2793853acdad0a59a0..6b0ea815b19dcd5c8696c07f863f63e864f2ccbd 100644 (file)
@@ -18,8 +18,8 @@ Featureless Settings Specification: 0004 - Very Basic List:
   See the file:"fss-0000.txt" and file:"fss-0002.txt" specification files for details on the syntax rules.
 
   Example\:
-    # fss-0004
-    # valid comments are ignored.
+    \# fss-0004
+    \# valid comments are ignored.
     "The Object"\:
       Does not need to be quoted.
       This: does not need to be delimited.
@@ -27,7 +27,7 @@ Featureless Settings Specification: 0004 - Very Basic List:
     Second\:
       Continues until EOS/EOF.
       All white space, including new line (and leading white space) is "part of content."
-      # Valid comments are still ignored.
+      \# Valid comments are still ignored.
 
   Outer Objects would be\:
     1) "The Object"
index deaed3d6608520356022242db6babbd7f031ddce..4cbe907a70ee2776fb382336108a0cfd49f26206 100644 (file)
@@ -18,8 +18,8 @@ Featureless Settings Specification: 0005 - Somewhat Basic List:
   See the file:"fss-0001.txt" and file:"fss-0002.txt" specification files for details on the syntax rules.
 
   Example\:
-    # fss-0005
-    # valid comments are ignored.
+    \# fss-0005
+    \# valid comments are ignored.
     "The Object"\:
       Does not need to be quoted.
       This: does not need to be delimited.
@@ -27,7 +27,7 @@ Featureless Settings Specification: 0005 - Somewhat Basic List:
     Second\:
       Continues until EOS/EOF.
       All white space, including new line (and leading white space) is "part of content."
-      # Valid comments are still ignored.
+      \# Valid comments are still ignored.
 
   Outer Objects would be\:
     1) "The Object"
index 417a4c70f7327a1e2bc3281a495429c44d6b9157..709f91ffc4d803a092a49411263caada582c52d8 100644 (file)
@@ -18,8 +18,8 @@ Featureless Settings Specification: 0006 - Somewhat Extended List:
   See the file:"fss-0000.txt" and file:"fss-0003.txt" specification files for details on the syntax rules.
 
   Example\:
-    # fss-0006
-    # valid comments are ignored.
+    \# fss-0006
+    \# valid comments are ignored.
     "The Object" {
       Does not need to be quoted.
       This: does not need to be delimited.
@@ -29,7 +29,7 @@ Featureless Settings Specification: 0006 - Somewhat Extended List:
     Second {
       Continues until EOS/EOF.
       All white space, including new line (and leading white space) is "part of content."
-      # Valid comments are still ignored.
+      \# Valid comments are still ignored.
     }
 
   Outer Objects would be\:
index d420bca08319a7444191d7ac6aa97b3a8f853382..0f7b418c2697e34b844ffd50bc2f85c9639a7c83 100644 (file)
@@ -18,8 +18,8 @@ Featureless Settings Specification: 0007 - Very Extended List:
   See the file:"fss-0001.txt" and file:"fss-0003.txt" specification files for details on the syntax rules.
 
   Example\:
-    # fss-0007
-    # valid comments are ignored.
+    \# fss-0007
+    \# valid comments are ignored.
     "The Object" {
       Does not need to be quoted.
       This: does not need to be delimited.
@@ -29,7 +29,7 @@ Featureless Settings Specification: 0007 - Very Extended List:
     Second {
       Continues until EOS/EOF.
       All white space, including new line (and leading white space) is "part of content."
-      # Valid comments are still ignored.
+      \# Valid comments are still ignored.
     }
 
   Outer Objects would be\:
index 3409cf5e8050c2ea68e1dbb23fe4e531956c699f..64ca563fca2352ef2185528d972f91aa760c7cdc 100644 (file)
@@ -16,8 +16,8 @@ Featureless Settings Specification: 0008 - Embedded List:
   See the file:"fss-0003.txt" specification file for details on the syntax rules.
 
   Example\:
-    # fss-0008
-    # valid comments are ignored.
+    \# fss-0008
+    \# valid comments are ignored.
     "The Object" {
       Does not need to be quoted.
       This: does not need to be delimited.
index 6dc5d668e0f6f2dfb4daa0862d1fee87aca8d73f..5d379a3a2047c6c7fabfe757da2c33cc34fccef4 100644 (file)
@@ -48,8 +48,8 @@ Featureless Settings Specification: 0009 - Reverse Mapping:
     code:""
 
   Example\:
-    # fss-0009
-    # valid comments are ignored.
+    \# fss-0009
+    \# valid comments are ignored.
     Content from new line. "The Object"
     object set. Second
 
index 1d75354cacf80484b3c2045c9bdaf1eeca5b2717..44c46fd590ad2b561b7000380e33092b0742c844 100644 (file)
@@ -48,8 +48,8 @@ Featureless Settings Specification: 000A - Extended Reverse Mapping:
     code:""
 
   Example\:
-    # fss-000a
-    # valid comments are ignored.
+    \# fss-000a
+    \# valid comments are ignored.
     Content "content 2" content_3. "The Object"
     object set. Second
 
index 55a53c1a3574ad78c4ad212724a850792d925a69..ec35bf1549ec80e3f6360be453c03dbd523bcd68 100644 (file)
@@ -16,8 +16,8 @@ Featureless Settings Specification: 000B - Simple List:
   See the file:"fss-0002.txt" and file:"fss-0003.txt" specification files for details on the syntax rules.
 
   Example\:
-    # fss-000b
-    # valid comments are ignored.
+    \# fss-000b
+    \# valid comments are ignored.
     "The Object" {
       Does not need to be quoted.
       This: does not need to be delimited.
@@ -27,8 +27,8 @@ Featureless Settings Specification: 000B - Simple List:
     Second {
       Nested Example.
 
-      Third:
-        Fourth:
+      Third\:
+        Fourth\:
           There is parallel to Second rather than nested within Second.
     }
 
@@ -47,8 +47,8 @@ Featureless Settings Specification: 000B - Simple List:
 
     2.1.1) Nested Example.
 
-           Third:
-             Fourth:
+           Third\:
+             Fourth\:
                There is parallel to Second rather than nested within Second.
 
   Inner Contents (depth 1) would be\:
index 8180e61ea5a8bdab7ef8c638eeded48fd44187ae..6798727e673f750000aff06ffe863342d93932f7 100644 (file)
@@ -1,7 +1,7 @@
 # fss-0002 iki-0000
 #
 # license open-standard-license-1.0-or-later
-# version 2023/07/14
+# version 2023/11/19
 #
 # This file (assumed to be named fss-000c.txt) can be more easily read using the following iki_read commands:
 #   iki_read fss-000c.txt +Q -w -r FSS FSS -WWW character "'" "'" code '"' '"' italic '"' '"'
 Featureless Settings Specification: 000C - IKI Text:
   The IKI specifications are separate specifications from the FSS:"Featureless Settings Specifications".
   This is simply a more formal way to designate that this format utilizes IKI syntax.
+  This may also be used to designate EKI syntax.
+
+  When neither an IKI nor an EKI header is specified and (other than code:"fss-000c" is specified) and the syntax is not known through some other means, then this can be assumed to be in IKI syntax rather than EKI syntax.
 
   The IKI syntax may be used in any FSS:"Featureless Settings Specifications".
-  The IKI format may be added to the.
 
   See the file:"iki.txt" specification for details on the IKI specifications.
 
+  See the file:"eki.txt" specification for details on the EKI specifications.
+
+  Example\:
+    \# fss-000c iki-0000
+
+    This is a italic\:"formal example" utilizing the FSS and IKI headers.
+
+  Example\:
+    \# iki-0000
+
+    This is a italic\:"informal example" utilizing only the IKI headers.
+
   Example\:
-    # fss-000c iki-0000
+    \# fss-000c eki-0000
 
-    This is a italic:"formal example" utilizing the FSS headers.
+    This is a bold:italic\:"informal example" utilizing the FSS and EKI headers.
 
   Example\:
-    # iki-0000
+    \# fss-000c
 
-    This is a italic:"informal example" utilizing the IKI headers.
+    This is a italic:"formal example" utilizing only the FSS headers, which in this case is treated as IKI rather than EKI.
index 899a26393bfc697f2418302ca994a10e8f324aec..92c3426585aae864c2d7f1d17140cbbd55d9e8e5 100644 (file)
@@ -31,11 +31,11 @@ Featureless Settings Specification: 000D - Basic Rule:
   See the file:"fss-0000.txt", file:"fss-0001.txt", and file:"fss-0003.txt" specification files for details on the syntax rules.
 
   Example\:
-    # fss-000d
-    main:
+    \# fss-000d
+    main\:
       name "Boot Devices"
 
-    script:
+    script\:
       start {
         ip addr add 127.0.0.1/8 label lo dev lo;
         ip link set lo up;
@@ -45,7 +45,7 @@ Featureless Settings Specification: 000D - Basic Rule:
         ip link set lo down;
       }
 
-    command:
+    command\:
       start mount -a -O no_netdev
       stop umount -arf -O no_netdev
 
index 1e56359a079250500643554e94b56561f9440f16..c2000a8740d303b6f1190d9eb89e42e19fedb8b4 100644 (file)
@@ -61,8 +61,8 @@ Featureless Settings Specification: 000e - Payload:
   - For best portability, consider using status as a name string to ensure cross-system or cross-binary compatibility.
 
   Example\:
-    # fss-000e
-    # valid comments are ignored.
+    \# fss-000e
+    \# valid comments are ignored.
     header\:
       type error
       status 296
index 92fe7a9df8dec3339d37d674d970a6aad46329fd..851e3d5315afbbd05ebbbc78db8c2ec2bd9af925 100644 (file)
@@ -1,7 +1,7 @@
 # fss-0002 iki-0000
 #
 # license open-standard-license-1.0-or-later
-# version 2024/07/10
+# version 2024/11/21
 #
 # This file (assumed to be named iki.txt) can be more easily read using the following iki_read commands:
 #   iki_read iki.txt +Q -w -WWW character "'" "'" code '"' '"' italic '"' '"'
 IKI Specifications:
   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 value 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 italic:"Object" and is also considered the vocabulary.
-  The variable value is considered the italic:"Content".
-  The variable name may be wrapped by a single open bracket, character:"[" (unicode:"U+005B"), at the start and a single close bracket, character:"]" (unicode:"U+005D"), at the end.
+  The IKI syntax describes a italic:"Variable" that is defined by a italic:"Vocabulary" name followed by quoted value called the italic:"Content".
 
-  The wrapping characters characters are not part of the variable name and must not be contained within a variable name.
+  The italic:"Variable" refers to the italic:"Vocabulary", italic:"Content", and associated syntax that describes the italic:"Variable".
+  The italic:"Variable" name may be wrapped by a single open bracket, character:"[" (unicode:"U+005B"), at the start and a single close bracket, character:"]" (unicode:"U+005D"), at the end.
+  The open and close brackets, also called the wrapping characters, for the italic:"Variable" do not utilize escaping characters and instead any escaping is perform against the colon character:":" (unicode:"U+003A") that separates the italic:"Vocabulary" from the italic:"Content".
+  The italic:"Vocabulary" generally defines the context and many of the IKI specifications may provide a discrete set of allowed italic:"Vocabulary".
+  The italic:"Vocabulary" may also be referred to as the italic:"Object".
+  The italic:"Vocabulary" only allows word characters or one of character:"_" (unicode:"U+005F"), character:"-" (unicode:"U+002D"), character:"+" (unicode:"U+002B"), character:"[" (unicode:"U+005B")).
+  White space, non-word, and non character:"_" (unicode:"U+005F"), character:"-" (unicode:"U+002D"), character:"+" (unicode:"U+002B")) character punctuation 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 (unicode:"U+2010" and unicode:"U+2011").
+  Unicode punctuation connector characters are supported just like character:"_", except when they connect outside the current line (such as unicode:"U+FE33" character:"︳").
+  The immediate left of a italic:"Vocabulary" must not be a valid italic:"Vocabulary" character, unless the italic:"Vocabulary" is wrapped using the wrapping characters.
+  Unicode invisible punctuation (such as invisible plus: unicode:"U+2064") are not considered a punctuation in this standard (because they a zero-width characters), therefore they are not to be considered a valid character:"_" (unicode:"U+005F"), character:"-" (unicode:"U+002D"), or character:"+" (unicode:"U+002B") Unicode equivalents.
+
+  The wrapping characters characters are not part of the italic:"Vocabulary" name and instead only provide the syntax used to help identify a valid italic:"Variable".
+  The wrapping characters characters are part of the italic:"Variable".
   The wrapping characters do not support escaping.
   Both wrapping characters must be specified or neither.
 
-  The IKI format will use code:"iki-0000" to represent an IKI with no explicitly defined vocabulary.
-  Whereas code:"iki-0001" and beyond represent a specific IKI vocabulary.
-
-  A potential IKI variable name starts on word character or one of character:"_" (unicode:"U+005F"), character:"-" (unicode:"U+002D"), character:"+" (unicode:"U+002B"), character:"[" (unicode:"U+005B")).
-  White space, non-word, and non character:"_" (unicode:"U+005F"), character:"-" (unicode:"U+002D"), character:"+" (unicode:"U+002B")) 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 (unicode:"U+2010" and unicode:"U+2011").
+  The italic:"Content" refers to the value of the italic:"Variable".
+  The italic:"Content" is wrapped one of the following quote characters: single quote character:"'" (unicode:"U+0027"), double quote character:'"' (unicode:"U+0022"), or grave character:'`' (unicode:"U+0060").
+  The italic:"Content" must escape any quotes that match the open and close quote used for the italic:"Variable" by utilizing a backslash character:"\\" (unicode:"U+005C").
+  If a matching closing quote is not found until the end of the data (or file), then this unclosed italic:"Variable" is considered invalid.
+  The handling of this erroneous case is left to the implementation.
 
-  Any potential IKI data must be escaped to make it treated as non-IKI data by prepending a backslash character:"\\" before the colon character:":" that is before the opening quote (single, double, or grave (backtick)). Potential IKI data refers to any valid IKI sequence without considering the closing single quote character:"'" (unicode:"U+0027"), closing double quote character:'"' (unicode:"U+0022"), or closing grave character:'`' (unicode:"U+0060").
+  The backslashes used for escaping quotes use character:"\\" (unicode:"U+005C").
+  Unless otherwise specified, these backslash escapes are performed only when required and not unilaterally.
+  One backslash escapes the valid quote, resulting in the quote being part of the italic:"Content".
+  Two backslashes escape the backslash, resulting in the backslash (but not the quote) being part of the italic:"Content".
+  An odd number of backslashes before a valid quote results in the backslashes and the quote being escaped.
+  An even number of backslashes before a valid quote results in the backslashes but not the quote being escaped.
 
-  Unicode punctuation connector characters are supported just like character:"_", except when they connect outside the current line (such as unicode:"U+FE33" character:"︳").
-  Unicode invisible punctuations (such as invisible plus: unicode:"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 character:"_", character:"-", or character:"+" Unicode equivalents.
+  The IKI format will use code:"iki-0000" to represent an IKI with no explicitly defined vocabulary.
+  Whereas code:"iki-0001" and beyond represent a specific IKI vocabulary.
 
   Key\:
-    code:"\o" = any printable word character, including character:"_", character:"-", character:"+" (and Unicode equivalents).
-    code:"\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.
+    code:"\o" = any printable word character, including character:"_" (unicode:"U+005F"), character:"-" (unicode:"U+002D"), character:"+" (unicode:"U+002B") (and Unicode equivalents).
+    code:"\c" = any character, including white space and non-printing, and any escaped quote (used as the opening quote) or a any quote (unescaped) not used as the opening quote.
     code:"\q" = either a single quote character:"'" (unicode:"U+0027"), a double quote character:'"' (unicode:"U+0022"), or a grave character:'`' (unicode:"U+0060").
     code:"\x" = any character.
-    code:"\W" = any non-word character, discluding character:"_", character:"-", character:"+" (and Unicode equivalents).
-    code:"\e" = an optional escape sequence of any number of backslashes, such as character:"\\".
-    code:"[" = a single conditionally optional open bracket, character:"[" (unicode:"U+005B").
-    code:"]" = a single conditionally optional close bracket, character:"]" (unicode:"U+005D").
+    code:"\W" = any non-word character, discluding character:"_" (unicode:"U+005F") (and Unicode equivalents), character:"-" (unicode:"U+002D") (and Unicode equivalents), and character:"+" (unicode:"U+002B") (and Unicode equivalents).
+    code:"\e" = an optional escape sequence of any number of backslashes, such as character:"\\" (unicode:"U+005C").
+    code:"[" = a single (conditionally optional) open bracket, character:"[" (unicode:"U+005B").
+    code:"]" = a single (conditionally optional) close bracket, character:"]" (unicode:"U+005D").
     code:"*" = zero or more occurrences.
     code:"~" = one or more occurrences, or zero if at start of file.
+    code:"+" = one or more occurrences.
+    code:":" = The colon character:":" (unicode:"U+003A").
 
   Before Structure\:
-    code:"\x*\W~\*:*"
+    code:"\x*\W~"
 
   Structure\:
-    code:"[\o\e:]\q\c\q"
+    code:"[\o+]\e:\q\c\q"
 
   After Structure\:
     code:""
 
   Example\:
-    code:'# fss-000c iki-0000
+    code:`# fss-000c iki-0000
 
     This is my sentence, anything can go here but sometimes I want to italic\:"emphasize some text".
 
-    Other times I want to render a url such as this example url: url\:\'http://www.example.com/url with space/\'.
+    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\:"Featureless Settings Specification" 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 italic\:"is escaped to not be treated as IKI data".
+    The following italic\\:"is escaped to not be treated as IKI Variable".
+
+    The conditionally optional open and close brackets allow for putting a variable directly next to another word character like: [context]\:"bold"this[context]\:"bold".
+
+    These are examples of escapes: one\:"\" escape", two\:"\\" escape", three\:"\\\" escape", six\:"\\\\\\" escape".
+
+    These are examples of non-escapes: one\:"\' escape", two\:"\\' escape", three\:"\\\' escape", six\:"\\\\\\' escape".
 
-    The conditionally optional open and close brackets allow for putting a variable directly next to another word character like: [context]\:"bold"this[context]\:"bold".'
+    These slashes \ \\ \\\ are not escaped because there is now quote immediately after each of them.`
 
   Objects (also called vocabulary or variable name) would be\:
-    1) italic
-    2) url
-    3) FSS
-    4) code
-    5) italic
-    6) context
-    7) context
+     1.1) italic
+     2.1) URL
+     3.1) FSS
+     4.1) code
+     5.1) context
+     6.1) context
+     7.1) one
+     8.1) two
+     9.1) three
+    10.1) six
+    11.1) one
+    12.1) two
+    13.1) three
+    14.1) six
 
   Contents (also called variable value) would be\:
-    1.1) emphasize some text
-    2.1) http://www.example.com/url with space/
-    3.1) Featureless Settings Specification
-    4.1) const char *string = "My \"quoted\" C string.";
-    5.1) is escaped to not be treated as IKI data
-    6.1) bold
-    7.1) bold
+     1.1) emphasize some text
+     2.1) http://www.example.com/url with space/
+     3.1) Featureless Settings Specification
+     4.1) const char *string = "My \"quoted\" C string.";
+     5.1) bold
+     6.1) bold
+     7.1) " escape
+     8.1) \
+     9.1) \" escape
+    10.1) \\\
+    11.1) \' escape
+    12.1) \\' escape
+    13.1) \\\' escape
+    14.1) \\\\\\' escape
 
   The following are core specifications (each with a common name associated with the specification number)\:
-  - fss-0000: Unrestricted
-  - fss-0001: Basic
-  - fss-0002: Simple Script
+  - iki-0000: Unrestricted
+  - iki-0001: Basic
+  - iki-0002: Simple Script
index 9d28dbdbc93d504143c87f92449b64cf261778c1..afcee45ab26eba98c704e7877a32ccfb7037ac79 100644 (file)
@@ -9,7 +9,7 @@ The "scheme" is a group or category in this case.
 Consider "inet" for classic internet.
 
 example resolution file (/etc/resolution):
-  # fss-????
+  \# fss-????
   inet:
     namesever 208.67.222.222
     extension kevux 127.0.0.2:123
index 5bc85146265f4518872d3d6748a855072043fd84..625116ec53a9bc065fd2ea94603c2956b3be4586 100644 (file)
@@ -1,7 +1,7 @@
 # fss-0002 iki-0000
 #
 # license open-standard-license-1.0-or-later
-# version 2023/12/16
+# version 2024/11/23
 #
 # This file (assumed to be named time.txt) can be more easily read using the following iki_read commands:
 #   iki_read time.txt +Q -r UTC UTC -w -WW character "'" "'" code '"' '"'
 Time Specification:
   There are two units of bold:"Time", the first is simply called bold:"Time" and the second is called bold:"EpochTime".
 
-  Both bold:"Time" and bold:"EpochTime" are measured without the year but may contain a year to designate the point in the counting begins.
+  Both bold:"Time" and bold:"EpochTime" are measured without the base time but may contain a base time to designate the point in the counting begins.
   These are both represented by a single 64-bit (unsigned) integer.
   The default timezone is always UTC:"Coordinated Universal Time".
 
-  The common form is intended as the non-technical form that is form common use.
+  If no special designation is provided or otherwise understood, then a year is the default and expected base time.
+  Anything may be used as an alternative base point of time.
+  It could a decade, a day, a minute, or even a microsecond.
+  The base time must either be understand or be communicated somehow.
+
+  The common form is intended for use as a less technical form for use in a more casual manner.
   This may have a negative value or be more than 64-bit digits long.
-  This is simply not expected to be interpreted as a unit of time on a computer (but nothing stops it from being interpreted).
+  This is simply not expected to be interpreted as a unit of time on a computer (but nothing stops it from being interpreted as such).
 
-  The technical forms are limited to 64-bit unsigned for technical use but should technology advance to a point where larger bits are needed then this allows for that.
+  The more technical forms are limited to 64-bit unsigned for technical use but should technology advance to a point where larger bits are needed then this allows for that.
   The systems should expect 64-bit and larger bits would have to become common before something larger than 64-bit is the expected or assumed default.
   Negative signs can be allowed but they must not prevent the full use of the 64-bit.
   The implementation of how this is done is left to the implementer except that the signs are immediately to the left of the digit.
-  For example code:"2022:-5" would be 5 units before the start of the year 2022.
-  Because the negative is allowed, so must the positive character (such as code:"2022:+5").
-  A positive value is the default interpretation when no sign is valid.
-
-  The unit of time called bold:"Time" is counted increments of a nanosecond, or 10^-9 seconds.
-  A unit of bold:"Time" is, therefore, equivalent to a nanosecond.
-  When the year is not specified, then the behavior of the year is not defined.
-  The year can be inferred, directly designated through some other means, understood, asserted, or simply unknown or otherwise unspecified.
-  The general recommendation is that the default year for bold:"Time" is the current year.
-
-  The unit of time called bold:"EpochTime" is counted increments of a second, or 10^-9 seconds.
-  A unit of bold:"EpochTime" is, therefore, equivalent to a second.
-  The behavior when the year is not specified is the same as described for the bold:"Time".
-  The general recommendation is that the default year for bold:"EpochTime" is the bold:"UNIX Epoch", sometimes called bold:"Unix time".
-
-  The unit bold:"Time" has two technical forms and one common form, with the year and without the year.
+  For example code:"2022:-5" for the standard base time, a year, would be 5 units before the start of the year 2022.
+  The negative is allowed and so must the positive character also be allowed (such as code:"2022:+5").
+  A positive value is the default interpretation when there is no explicit sign used.
+
+  The unit of time called bold:"Time" is counted in increments of a nanosecond, or 10^-9 seconds, unless otherwise specified or understood.
+  The base unit of bold:"Time" is not exclusively fixed to a year and can be fixed to any base point of time.
+  The base unit can be inferred, directly designated through some other means, understood, asserted, or simply unknown or otherwise unspecified.
+  The general recommendation is that the default base unit, a year, for bold:"Time" is to represent the current year.
+  This recommendation may also be followed for other base formats, such as a day, where the bold:"Time" is to represent the current day.
+  When the base unit is not specified, then the behavior of the base unit is not explicitly defined and must be somehow understood.
+
+  The unit of time called bold:"EpochTime" is counted increments of a second.
+  The bold:"EpochTime" is always expected to always be relative to the bold:"UNIX Epoch" year.
+  Specifying a custom base time itself is still relative to the bold:"UNIX Epoch" year.
+  Another common name for bold:"UNIX Epoch" is bold:"Unix time".
+  The general recommendation is that the default base unit to be a year for bold:"EpochTime".
+
+  The unit bold:"Time" has two technical forms and one common form, with the base unit and without the base unit.
+
+  A suggested use would be to wrap the bold:"Time" or bold:"EpochTime" in something that provides further context, such as bold:"IKI" and bold:"EKI".
+  The bold:"EKI" can more easily describe the base time changes.
+
+  The bold:"IKI" could be used to designate the standard units bold:"time" and bold:"epochtime" like the following\:
+    code:`time:"12345"`.
+    code:`time:"2022:12345"`.
+    code:`epochtime:"12345"`.
+    code:`epochtime:"2022:12345"`.
+
+  The bold:"EKI" could be used to designate the standard unit bold:"time" and bold:"epochtime" along with a more explicit base time like the following\:
+    code:`day:time:"12345"`.
+    code:`day:time:"100:12345"`.
+    code:`year:time:"2022:12345"`.
+    code:`day:epochtime:"12345"`.
+    code:`day:epochtime:"100:12345"`.
+    code:`year:epochtime:"2022:12345"`.
+
+  In the previous examples for bold:"EKI" show code:"day" along with code:"epochtime".
+  For code:`day:epochtime:"100:12345"`, this means that the timestamp starts 100 days after the bold:"UNIX Epoch" year.
+
+  In the previous examples for bold:"EKI" show code:"year" along with code:"epochtime".
+  For code:`year:epochtime:"2022:12345"`, this means that the timestamp start 2022 years after the bold:"UNIX Epoch" year.
 
   Key\:
     code:"\s" = White space.
index 3c0f2f3d3f67049b53be23e31686f75522a1a947..81ebf3700d5f89674045861885d5c901c4ad93b6 100644 (file)
             <a href="fll/specifications/iki/iki-0002.html" class="nav-text link"><div>IKI-0002</div><div>(Simple Script)</div></a>
           </div>
           <div class="nav-item block">
+            <a href="fll/specifications.html#eki" class="nav-text link">EKI</a>
+          </div>
+          <div class="nav-item block">
+            <a href="fll/specifications/eki/eki-0000.html" class="nav-text link"><div>EKI-0000</div><div>(Unrestricted)</div></a>
+          </div>
+          <div class="nav-item block">
+            <a href="fll/specifications/eki/eki-0001.html" class="nav-text link"><div>EKI-0001</div><div>(Basic)</div></a>
+          </div>
+          <div class="nav-item block">
             <a href="fll/specifications.html#other" class="nav-text link">Other</a>
           </div>
           <div class="nav-item block">
@@ -377,7 +386,7 @@ Object_2 This is multiple\" Contents and the trailing quote does not need to be
 
             <div class="section-content">
               <p class="p">
-                The version date of this specification is <code class="code">2024/06/11</code>.
+                The version date of this specification is <code class="code">2024/11/21</code>.
               </p>
               <p class="p">
                 The license (copyright) is <a href="licenses/oslv1.html" class="link">Open Standard License 1.0 or greater</a>.
@@ -386,59 +395,203 @@ Object_2 This is multiple\" Contents and the trailing quote does not need to be
                 IKI is a minimally structured WIKI-like syntax meant to be simpler than WIKI syntax.
               </p>
               <p class="p">
-                The IKI syntax provides a vocabulary name (with specific context associated with it) followed by quoted value 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 <em class="em">Object</em> and is also considered the vocabulary.
-                The variable value is considered the <em class="em">Content</em>.
-                The variable name may be wrapped by a single open bracket, <code class="code">[</code> (<code class="code">U+005B</code>), at the start and a single close bracket, <code class="code">]</code> (<code class="code">U+005D</code>), at the end.
+                The IKI syntax describes a <em class="em">Variable</em> that is defined by a <em class="em">Vocabulary</em> name followed by quoted value called the <em class="em">Content</em>.
               </p>
               <p class="p">
-                The wrapping characters characters are not part of the variable name and must not be contained within a variable name.
+                The <em class="em">Variable</em> refers to the <em class="em">Vocabulary</em>, <em class="em">Content</em>, and associated syntax that describes the <em class="em">Variable</em>.
+                The <em class="em">Variable</em> name may be wrapped by a single open bracket, <code class="code">[</code> (<code class="code">U+005B</code>), at the start and a single close bracket, <code class="code">]</code> (<code class="code">U+005D</code>), at the end.
+                The open and close brackets, also called the wrapping characters, for the <em class="em">Variable</em> do not utilize escaping characters and instead any escaping is perform against the colon <code class="code">:</code> (<code class="code">U+003A</code>) that separates the <em class="em">Vocabulary</em> from the <em class="em">Content</em>.
+                The <em class="em">Vocabulary</em> generally defines the context and many of the IKI specifications may provide a discrete set of allowed <em class="em">Vocabulary</em>.
+                The <em class="em">Vocabulary</em> may also be referred to as the <em class="em">Object</em>.
+                The <em class="em">Vocabulary</em> only allows word characters or one of <code class="code">_</code> (<code class="code">U+005F</code>), <code class="code">-</code> (<code class="code">U+002D</code>), <code class="code">+</code> (<code class="code">U+002B</code>), <code class="code">[</code> (<code class="code">U+005B</code>)).
+                White space, non-word, and non <code class="code">_</code> (<code class="code">U+005F</code>), <code class="code">-</code> (<code class="code">U+002D</code>), <code class="code">+</code> (<code class="code">U+002B</code>)) character punctuation 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 (<code class="code">U+2010</code> and <code class="code">U+2011</code>).
+                Unicode punctuation connector characters are supported just like <code class="code">_</code>, except when they connect outside the current line (such as <code class="code">U+FE33</code> <code class="code">︳</code>).
+                The immediate left of a <em class="em">Vocabulary</em> must not be a valid <em class="em">Vocabulary</em> character, unless the <em class="em">Vocabulary</em> is wrapped using the wrapping characters.
+                Unicode invisible punctuation (such as invisible plus: <code class="code">U+2064</code>) are not considered a punctuation in this standard (because they a zero-width characters), therefore they are not to be considered a valid <code class="code">_</code> (<code class="code">U+005F</code>), <code class="code">-</code> (<code class="code">U+002D</code>), or <code class="code">+</code> (<code class="code">U+002B</code>) Unicode equivalents.
+              </p>
+              <p class="p">
+                The wrapping characters characters are not part of the <em class="em">Vocabulary</em> name and instead only provide the syntax used to help identify a valid <em class="em">Variable</em>.
+                The wrapping characters characters are part of the <em class="em">Variable</em>.
                 The wrapping characters do not support escaping.
                 Both wrapping characters must be specified or neither.
               </p>
               <p class="p">
+                The <em class="em">Content</em> refers to the value of the <em class="em">Variable</em>.
+                The <em class="em">Content</em> is wrapped one of the following quote characters: single quote <code class="code">'</code> (<code class="code">U+0027</code>), double quote <code class="code">"</code> (<code class="code">U+0022</code>), or grave <code class="code">`</code> (<code class="code">U+0060</code>).
+                The <em class="em">Content</em> must escape any quotes that match the open and close quote used for the <em class="em">Variable</em> by utilizing a backslash <code class="code">\</code> (<code class="code">U+005C</code>).
+                If a matching closing quote is not found until the end of the data (or file), then this unclosed <em class="em">Variable</em> is considered invalid.
+                The handling of this erroneous case is left to the implementation.
+              </p>
+              <p class="p">
+                The backslashes used for escaping quotes use <code class="code">\</code> (<code class="code">U+005C</code>).
+                Unless otherwise specified, these backslash escapes are performed only when required and not unilaterally.
+                One backslash escapes the valid quote, resulting in the quote being part of the <em class="em">Content</em>.
+                Two backslashes escape the backslash, resulting in the backslash (but not the quote) being part of the <em class="em">Content</em>.
+                An odd number of backslashes before a valid quote results in the backslashes and the quote being escaped.
+                An even number of backslashes before a valid quote results in the backslashes but not the quote being escaped.
+              </p>
+              <p class="p">
                 The IKI format will use <code class="code">iki-0000</code> to represent an IKI with no explicitly defined vocabulary.
                 Whereas <code class="code">iki-0001</code> and beyond represent a specific IKI vocabulary.
               </p>
               <p class="p">
-                A potential IKI variable name starts on word character or one of <code class="code">_</code> (<code class="code">U+005F</code>), <code class="code">-</code> (<code class="code">U+002D</code>), <code class="code">+</code> (<code class="code">U+002B</code>), <code class="code">[</code> (<code class="code">U+005B</code>).
-                White space, non-word, and non <code class="code">_</code> (<code class="code">U+005F</code>), <code class="code">-</code> (<code class="code">U+002D</code>), <code class="code">+</code> (<code class="code">U+002B</code>) 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 (<code class="code">U+2010</code> and <code class="code">U+2011</code>).
+                Key:
               </p>
+              <ul>
+                <li><code class="code">\o</code> = any printable word character, including <code class="code">_</code> (<code class="code">U+005F</code>), <code class="code">-</code> (<code class="code">U+002D</code>), <code class="code">+</code> (<code class="code">U+002B</code>) (and Unicode equivalents).</li>
+                <li><code class="code">\c</code> = any character, including white space and non-printing, and any escaped quote (used as the opening quote) or a any quote (unescaped) not used as the opening quote.</li>
+                <li><code class="code">\q</code> = either a single quote <code class="code">'</code> (<code class="code">U+0027</code>), a double quote <code class="code">"</code> (<code class="code">U+0022</code>), or a grave <code class="code">`</code> (<code class="code">U+0060</code>).</li>
+                <li><code class="code">\x</code> = any character.</li>
+                <li><code class="code">\W</code> = any non-word character, discluding <code class="code">_</code> (<code class="code">U+005F</code>) (and Unicode equivalents), <code class="code">-</code> (<code class="code">U+002D</code>) (and Unicode equivalents), and <code class="code">+</code> (<code class="code">U+002B</code>) (and Unicode equivalents).</li>
+                <li><code class="code">\e</code> = an optional escape sequence of any number of backslashes, such as <code class="code">\</code> (<code class="code">U+005C</code>).</li>
+                <li><code class="code">[</code> = a single (conditionally optional) open bracket, <code class="code">[</code> (<code class="code">U+005B</code>).</li>
+                <li><code class="code">]</code> = a single (conditionally optional) close bracket, <code class="code">]</code> (<code class="code">U+005D</code>).</li>
+                <li><code class="code">*</code> = zero or more occurrences.</li>
+                <li><code class="code">~</code> = one or more occurrences, or zero if at start of file.</li>
+                <li><code class="code">+</code> = one or more occurrences.</li>
+                <li><code class="code">:</code> = The colon <code class="code">:</code> (<code class="code">U+003A</code>).</li>
+              </ul>
               <p class="p">
-                Any potential IKI data must be escaped to make it treated as non-IKI data by prepending a backslash <code class="code">\</code> before the colon <code class="code">:</code> that is before the opening quote (single, double, or grave (backtick)). Potential IKI data refers to any valid IKI sequence without considering the closing single quote <code class="code">'</code> (<code class="code">U+0027</code>), closing double quote <code class="code">"</code> (<code class="code">U+0022</code>), or closing grave <code class="code">`</code> (<code class="code">U+0060</code>).
+                Before Structure:
               </p>
+              <ul>
+                <li><code class="code">\x*\W~</code></li>
+              </ul>
               <p class="p">
-                Unicode punctuation connector characters are supported just like <code class="code">_</code>, except when they connect outside the current line (such as <code class="code">U+FE33</code> <code class="code">︳</code>).
-                Unicode invisible punctuations (such as invisible plus: <code class="code">U+2064</code>) are not considered a punctuations in this standard (because they a zero-width characters), therefore they are not to be considered a valid <code class="code">_</code>, <code class="code">-</code>, or <code class="code">+</code> Unicode equivalents.
+                Structure:
+              </p>
+              <p class="p">
+                <li><code class="code">[\o+]\e:\q\c\q</code></li>
+              </p>
+              <p class="p">
+                After Structure:
+              </p>
+              <ul>
+                <li><code class="code"></code></li>
+              </ul>
+              <p class="p">
+                Example File:
+              </p><pre class="preserve">
+# fss-000c iki-0000
+
+This is my sentence, anything can go here but sometimes I want to italic:"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:"Featureless Settings Specification" 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 italic\:"is escaped to not be treated as IKI Variable".
+
+The conditionally optional open and close brackets allow for putting a variable directly next to another word character like: [context]:"bold"this[context]:"bold".
+
+These are examples of escapes: one:"\" escape", two:"\\" escape", three:"\\\" escape", six:"\\\\\\" escape".
+
+These are examples of non-escapes: one:"\' escape", two:"\\' escape", three:"\\\' escape", six:"\\\\\\' escape".
+
+These slashes \ \\ \\\ are not escaped because there is now quote immediately after each of them.
+</pre>
+              <p class="p">
+                Example Results:
+              </p><pre class="preserve">
+Objects (also called vocabulary or variable name) would be:
+   1.1) italic
+   2.1) URL
+   3.1) FSS
+   4.1) code
+   5.1) context
+   6.1) context
+   7.1) one
+   8.1) two
+   9.1) three
+  10.1) six
+  11.1) one
+  12.1) two
+  13.1) three
+  14.1) six
+
+Contents (also called variable value) would be:
+   1.1) emphasize some text
+   2.1) http://www.example.com/url with space/
+   3.1) Featureless Settings Specification
+   4.1) const char *string = "My \"quoted\" C string.";
+   5.1) bold
+   6.1) bold
+   7.1) " escape
+   8.1) \
+   9.1) \" escape
+  10.1) \\\
+  11.1) \' escape
+  12.1) \\' escape
+  13.1) \\\' escape
+  14.1) \\\\\\' escape
+</pre>
+              <p class="p">
+                The following are core specifications (each with a common name associated with the specification number):
+              </p>
+              <ul>
+                <li><a href="fll/specifications/iki/iki-0000.html" class="link">iki-0000: Unrestricted</a></li>
+                <li><a href="fll/specifications/iki/iki-0001.html" class="link">iki-0001: Basic</a></li>
+                <li><a href="fll/specifications/iki/iki-0002.html" class="link">iki-0002: Simple Script</a></li>
+              </ul>
+            </div>
+          </section>
+
+          <section id="eki" class="section">
+            <header class="section-header header separate">
+              <h2 class="section-title h h2">EKI</h2>
+            </header>
+
+            <div class="section-content">
+              <p class="p">
+                The version date of this specification is <code class="code">2024/11/21</code>.
+              </p>
+              <p class="p">
+                The license (copyright) is <a href="licenses/oslv1.html" class="link">Open Standard License 1.0 or greater</a>.
+              </p>
+              <p class="p">
+                EKI is an extended EKI format that introduces the ability to have multiple variable names (<em class="em">Objects</em>) per variable value (<em class="em">Content</em>).
+              </p>
+              <p class="p">
+                The EKI syntax is identical to the EKI syntax and all of its rules apply except for the modification defined in this specification.
+              </p>
+              <p class="p">
+                This variable name, or <em class="em">Object</em>, now supports an additional character, <code class="code">:</code> (<code class="code">U+003A</code>), is used to separate each individual variable name.
+                Each variable name must follow the same requirements of a valid variable name as specified in the EKI specification.
+                Only the last <code class="code">:</code> (<code class="code">U+003A</code>) before the opening single quote (<code class="code">U+0027</code>), double quote (<code class="code">U+0022</code>), or grave (<code class="code">U+0060</code>) shall be a candidate for being escaped.
+                When this escape is in place of a valid EKI variable, then that would be variable is no longer considered an EKI variable.
               </p>
               <p class="p">
                 Key:
               </p>
               <ul>
                 <li><code class="code">\o</code> = any printable word character, including <code class="code">_</code>, <code class="code">-</code>, <code class="code">+</code> (and Unicode equivalents).</li>
+                <li><code class="code">\O</code> = any printable word character, including <code class="code">_</code>, <code class="code">-</code>, <code class="code">+</code> (and Unicode equivalents) followed by a colon <code class="code">:</code> (<code class="code">U+003A</code>) (cannot be only a colon by itself).</li>
                 <li><code class="code">\c</code> = 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.</li>
                 <li><code class="code">\q</code> = either a single quote <code class="code">'</code> (<code class="code">U+0027</code>), a double quote <code class="code">"</code> (<code class="code">U+0022</code>), or a grave <code class="code">`</code> (<code class="code">U+0060</code>).</li>
                 <li><code class="code">\x</code> = any character.</li>
-                <li><code class="code">\W</code> = any non-word character, discluding <code class="code">_</code>, <code class="code">-</code>, <code class="code">+</code> (and Unicode equivalents).</li>
-                <li><code class="code">\e</code> = an optional escape sequence of any number of backslashes, such as <code class="code">\</code>.</li>
+                <li><code class="code">\W</code> = any non-word character, discluding <code class="code">_</code> (and Unicode equivalents), <code class="code">-</code> (and Unicode equivalents), <code class="code">+</code> (and Unicode equivalents), and colon <code class="code">:</code> (<code class="code">U+003A</code>).</li>
+                <li><code class="code">\e</code> = an optional escape sequence of any number of backslashes, such as <code class="code">\</code> (<code class="code">U+005C</code>).</li>
                 <li><code class="code">[</code> = a single conditionally optional open bracket, <code class="code">[</code> (<code class="code">U+005B</code>).</li>
                 <li><code class="code">]</code> = a single conditionally optional close bracket, <code class="code">]</code> (<code class="code">U+005D</code>).</li>
                 <li><code class="code">*</code> = zero or more occurrences.</li>
                 <li><code class="code">~</code> = one or more occurrences, or zero if at start of file.</li>
+                <li><code class="code">+</code> = one or more occurrences.</li>
+                <li><code class="code">:</code> = The colon <code class="code">:</code> (<code class="code">U+003A</code>).</li>
               </ul>
               <p class="p">
                 Before Structure:
               </p>
               <ul>
-                <li><code class="code">\x*\W~\*:*</code></li>
+                <li><code class="code">\x*\W~</code></li>
               </ul>
               <p class="p">
                 Structure:
               </p>
               <ul>
-                <li><code class="code">\o\e:\q\c\q</code></li>
+                <li><code class="code">[\O*\o+]\e:\q\c\q</code></li>
               </ul>
               <p class="p">
                 After Structure:
@@ -449,48 +602,73 @@ Object_2 This is multiple\" Contents and the trailing quote does not need to be
               <p class="p">
                 Example File:
               </p><pre class="preserve">
-# fss-000c iki-0000
+# fss-000c eki-0000
+
+This is my sentence, anything can go here but sometimes I want to italic:"emphasize some text".
+
+Other times I want to render a URL with bold such as this example URL: bold:url:'http://www.example.com/url with space/'.
 
-This is my sentence, anything can go here but sometimes I want to italic\:"emphasize some text".
+There are no comments, except for maybe the FSS:"Featureless Settings Specification" header (which would not resolve to any EKI syntax anyway).
 
-Other times I want to render a url such as this example url: url\:'http://www.example.com/url with space/'.
+Quotes may be included, such as: code:"const char *string = \"My \\\"quoted\\\" C string.\";".
 
-There are no comments, except for maybe the FSS\:"Featureless Settings Specification" header (which would not resolve to any IKI syntax anyway).
+The following bold:italic\:"is escaped to not be treated as EKI data".
 
-Quotes may be included, such as: code\:"const char *string = \"My \\\"quoted\\\" C string.\";".
+The conditionally optional open and close brackets allow for putting a variable directly next to another word character like: [context]:"bold"this[context]:"bold".
 
-The following italic\:"is escaped to not be treated as IKI data".
+Multiple Objects within a bracket is also valid, like: before[bold:context]:"important"after.
 
-The conditionally optional open and close brackets allow for putting a variable directly next to another word character like: [context]\:"strong"this[context]\:"strong".
+These are examples of escapes: one:"\" escape", two:"\\" escape", three:"\\\" escape", six:"\\\\\\" escape".
+
+These are examples of non-escapes: one:"\' escape", two:"\\' escape", three:"\\\' escape", six:"\\\\\\' escape".
+
+These slashes \ \\ \\\ are not escaped because there is now quote immediately after each of them.
 </pre>
               <p class="p">
                 Example Results:
               </p><pre class="preserve">
 Objects (also called vocabulary or variable name) would be:
-  1) italic
-  2) url
-  3) FSS
-  4) code
-  5) italic
-  6) context
-  7) context
+   1.1) italic
+   2.1) bold
+   2.2) URL
+   3.1) FSS
+   4.1) code
+   5.1) context
+   6.1) context
+   7.1) bold
+   7.2) context
+   8.1) one
+   9.1) two
+  10.1) three
+  11.1) six
+  12.1) one
+  13.1) two
+  14.1) three
+  15.1) six
 
 Contents (also called variable value) would be:
-  1.1) emphasize some text
-  2.1) http://www.example.com/url with space/
-  3.1) Featureless Settings Specification
-  4.1) const char *string = "My \"quoted\" C string.";
-  5.1) is escaped to not be treated as IKI data
-  6.1) strong
-  7.1) strong
+   1.1) emphasize some text
+   2.1) http://www.example.com/url with space/
+   3.1) Featureless Settings Specification
+   4.1) const char *string = "My \"quoted\" C string.";
+   5.1) bold
+   6.1) bold
+   7.1) important
+   8.1) " escape
+   9.1) \\
+  10.1) \" escape
+  11.1) \\\
+  12.1) \' escape
+  13.1) \\' escape
+  14.1) \\\' escape
+  15.1) \\\\\\' escape
 </pre>
               <p class="p">
                 The following are core specifications (each with a common name associated with the specification number):
               </p>
               <ul>
-                <li><a href="fll/specifications/iki/iki-0000.html" class="link">iki-0000: Unrestricted</a></li>
-                <li><a href="fll/specifications/iki/iki-0001.html" class="link">iki-0001: Basic</a></li>
-                <li><a href="fll/specifications/iki/iki-0002.html" class="link">iki-0002: Simple Script</a></li>
+                <li><a href="fll/specifications/eki/eki-0000.html" class="link">eki-0000: Unrestricted</a></li>
+                <li><a href="fll/specifications/eki/eki-0001.html" class="link">eki-0001: Basic</a></li>
               </ul>
             </div>
           </section>
@@ -502,7 +680,7 @@ Contents (also called variable value) would be:
 
             <div class="section-content">
               <p class="p">
-                The <abbr title="Featureless Settings Specifications">FSS</abbr> and the <strong class="strong">IKI</strong> are not the only standards provided by the <abbr title="Featureless Linux Library">FLL</abbr>.
+                The <abbr title="Featureless Settings Specifications">FSS</abbr>, <strong class="strong">IKI</strong> and <strong class="strong">EKI</strong> are not the only standards provided by the <abbr title="Featureless Linux Library">FLL</abbr>.
               </p>
               <p class="p">
                 The following are other specifications that are provided:
diff --git a/fll/specifications/eki/eki-0000.html b/fll/specifications/eki/eki-0000.html
new file mode 100644 (file)
index 0000000..9a8ef75
--- /dev/null
@@ -0,0 +1,218 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <title>FLL - Specifications - EKI-0000 (Unrestricted)</title>
+
+    <base href="../../../">
+
+    <meta charset="UTF-8">
+    <meta name="author" content="Kevin Day">
+    <meta name="description" content="Featurless Linux Library Specifications">
+    <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, specification, standard, eki-0000, unrestricted">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+    <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+    <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+    <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+    <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+    <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+    <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+    <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+    <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+    <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+    <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+    <link rel="canonical" href="fll/specifications/eki/eki-0000.html">
+    <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+    <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+    <link type="text/html" rel="license" href="licenses.html">
+    <link type="text/html" rel="next" href="fll/specifications/eki/eki-0001.html">
+  </head>
+
+  <body id="kevux" class="kevux no-js fll specifications">
+    <div role="banner" class="header-block">
+      <header class="header-section header">
+        <div class="header-site">Kevux Systems and Software</div>
+      </header>
+
+      <div class="nav-block">
+        <nav id="kevux-site-nav" class="nav-menu">
+          <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+          <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+          <div class="nav-item active"><a href="fll.html" class="nav-text link">FLL</a></div>
+          <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+          <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+        </nav>
+      </div>
+    </div>
+
+    <div class="content-block">
+      <div id="nav-expanded" class="nav-block">
+        <nav id="kevux-document-nav" class="nav-menu">
+          <div class="nav-item block back">
+            <a href="fll/specifications.html" class="nav-text link back">Back</a>
+          </div>
+          <div class="nav-item block highlight unlink">
+            <div class="nav-text notice">FLL Specification</div>
+            <div class="nav-text unlink">EKI</div>
+          </div>
+          <div class="nav-item block">
+            <a href="fll/specifications/eki/eki-0000.html#eki-0000" class="nav-text link"><div>EKI-0000</div><div>(Unrestricted)</div></a>
+          </div>
+          <div class="nav-item block">
+            <a href="fll/specifications/eki/eki-0000.html#common" class="nav-text link">Common Specification Rules</a>
+          </div>
+          <div class="nav-item block ellipses">
+            <a href="fll/specifications/eki/eki-0000.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+            <a href="fll/specifications/eki/eki-0000.html" class="nav-text link close">Collapse Menu</a>
+          </div>
+        </nav>
+      </div>
+
+      <div role="document" class="main-block">
+        <main class="main">
+          <header class="section-header header">
+            <h1 class="section-title h h1">Featureless Linux Library Specification</h1>
+          </header>
+
+          <section id="eki-0000" class="section">
+            <header class="section-header header">
+              <h2 class="section-title h h2">EKI-0000 (Unrestricted)</h2>
+            </header>
+
+            <div class="section-content">
+              <p class="p">
+                The version date of this specification is <code class="code">2024/11/03</code>.
+              </p>
+              <p class="p">
+                This specification provides no restrictions on the vocabulary.
+              </p>
+            </div>
+          </section>
+
+          <section id="common" class="section">
+            <header class="section-header header separate">
+              <h2 class="section-title h h2">Common Specification Rules</h2>
+            </header>
+
+            <div class="section-content">
+              <p class="p">
+                EKI is an extended EKI format that introduces the ability to have multiple variable names (<em class="em">Objects</em>) per variable value (<em class="em">Content</em>).
+              </p>
+              <p class="p">
+                The EKI syntax is identical to the EKI syntax and all of its rules apply except for the modification defined in this specification.
+              </p>
+              <p class="p">
+                This variable name, or <em class="em">Object</em>, now supports an additional character, <code class="code">:</code> (<code class="code">U+003A</code>), is used to separate each individual variable name.
+                Each variable name must follow the same requirements of a valid variable name as specified in the EKI specification.
+                Only the last <code class="code">:</code> (<code class="code">U+003A</code>) before the opening single quote (<code class="code">U+0027</code>), double quote (<code class="code">U+0022</code>), or grave (<code class="code">U+0060</code>) shall be a candidate for being escaped.
+                When this escape is in place of a valid EKI variable, then that would be variable is no longer considered an EKI variable.
+              </p>
+              <p class="p">
+                Key:
+              </p>
+              <ul>
+                <li><code class="code">\o</code> = any printable word character, including <code class="code">_</code>, <code class="code">-</code>, <code class="code">+</code> (and Unicode equivalents).</li>
+                <li><code class="code">\O</code> = any printable word character, including <code class="code">_</code>, <code class="code">-</code>, <code class="code">+</code> (and Unicode equivalents) followed by a colon <code class="code">:</code> (<code class="code">U+003A</code>) (cannot be only a colon by itself).</li>
+                <li><code class="code">\c</code> = 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.</li>
+                <li><code class="code">\q</code> = either a single quote <code class="code">'</code> (<code class="code">U+0027</code>), a double quote <code class="code">"</code> (<code class="code">U+0022</code>), or a grave <code class="code">`</code> (<code class="code">U+0060</code>).</li>
+                <li><code class="code">\x</code> = any character.</li>
+                <li><code class="code">\W</code> = any non-word character, discluding <code class="code">_</code> (and Unicode equivalents), <code class="code">-</code> (and Unicode equivalents), <code class="code">+</code> (and Unicode equivalents), and colon <code class="code">:</code> (<code class="code">U+003A</code>).</li>
+                <li><code class="code">\e</code> = an optional escape sequence of any number of backslashes, such as <code class="code">\</code> (<code class="code">U+005C</code>).</li>
+                <li><code class="code">[</code> = a single conditionally optional open bracket, <code class="code">[</code> (<code class="code">U+005B</code>).</li>
+                <li><code class="code">]</code> = a single conditionally optional close bracket, <code class="code">]</code> (<code class="code">U+005D</code>).</li>
+                <li><code class="code">*</code> = zero or more occurrences.</li>
+                <li><code class="code">~</code> = one or more occurrences, or zero if at start of file.</li>
+                <li><code class="code">+</code> = one or more occurrences.</li>
+                <li><code class="code">:</code> = The colon <code class="code">:</code> (<code class="code">U+003A</code>).</li>
+              </ul>
+              <p class="p">
+                Before Structure:
+              </p>
+              <ul>
+                <li><code class="code">\x*\W~</code></li>
+              </ul>
+              <p class="p">
+                Structure:
+              </p>
+              <ul>
+                <li><code class="code">[\O*\o+]\e:\q\c\q</code></li>
+              </ul>
+              <p class="p">
+                After Structure:
+              </p>
+              <ul>
+                <li><code class="code"></code></li>
+              </ul>
+              <p class="p">
+                Example File:
+              </p><pre class="preserve">
+# fss-000c eki-0000
+
+This is my sentence, anything can go here but sometimes I want to italic:"emphasize some text".
+
+Other times I want to render a URL with bold such as this example URL: bold:url:'http://www.example.com/url with space/'.
+
+There are no comments, except for maybe the FSS:"Featureless Settings Specification" header (which would not resolve to any EKI syntax anyway).
+
+Quotes may be included, such as: code:"const char *string = \"My \\\"quoted\\\" C string.\";".
+
+The following bold:italic\:"is escaped to not be treated as EKI data".
+
+The conditionally optional open and close brackets allow for putting a variable directly next to another word character like: [context]:"bold"this[context]:"bold".
+
+Multiple Objects within a bracket is also valid, like: before[bold:context]:"important"after.
+
+These are examples of escapes: one:"\" escape", two:"\\" escape", three:"\\\" escape", six:"\\\\\\" escape".
+
+These are examples of non-escapes: one:"\' escape", two:"\\' escape", three:"\\\' escape", six:"\\\\\\' escape".
+
+These slashes \ \\ \\\ are not escaped because there is now quote immediately after each of them.
+</pre>
+              <p class="p">
+                Example Results:
+              </p><pre class="preserve">
+Objects (also called vocabulary or variable name) would be:
+   1.1) italic
+   2.1) bold
+   2.2) URL
+   3.1) FSS
+   4.1) code
+   5.1) context
+   6.1) context
+   7.1) bold
+   7.2) context
+   8.1) one
+   9.1) two
+  10.1) three
+  11.1) six
+  12.1) one
+  13.1) two
+  14.1) three
+  15.1) six
+
+Contents (also called variable value) would be:
+   1.1) emphasize some text
+   2.1) http://www.example.com/url with space/
+   3.1) Featureless Settings Specification
+   4.1) const char *string = "My \"quoted\" C string.";
+   5.1) bold
+   6.1) bold
+   7.1) important
+   8.1) " escape
+   9.1) \\
+  10.1) \" escape
+  11.1) \\\
+  12.1) \' escape
+  13.1) \\' escape
+  14.1) \\\' escape
+  15.1) \\\\\\' escape
+</pre>
+            </div>
+          </section>
+        </main>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/fll/specifications/eki/eki-0001.html b/fll/specifications/eki/eki-0001.html
new file mode 100644 (file)
index 0000000..98715cb
--- /dev/null
@@ -0,0 +1,259 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <title>FLL - Specifications - EKI-0001 (Basic)</title>
+
+    <base href="../../../">
+
+    <meta charset="UTF-8">
+    <meta name="author" content="Kevin Day">
+    <meta name="description" content="Featurless Linux Library Specifications">
+    <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, specification, standard, eki-0001, basic">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+    <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+    <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+    <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+    <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+    <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+    <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+    <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+    <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+    <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+    <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+    <link rel="canonical" href="fll/specifications/eki/eki-0001.html">
+    <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+    <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+    <link type="text/html" rel="license" href="licenses.html">
+    <link type="text/html" rel="prev" href="fll/specifications/eki/eki-0000.html">
+  </head>
+
+  <body id="kevux" class="kevux no-js fll specifications">
+    <div role="banner" class="header-block">
+      <header class="header-section header">
+        <div class="header-site">Kevux Systems and Software</div>
+      </header>
+
+      <div class="nav-block">
+        <nav id="kevux-site-nav" class="nav-menu">
+          <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+          <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+          <div class="nav-item active"><a href="fll.html" class="nav-text link">FLL</a></div>
+          <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+          <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+        </nav>
+      </div>
+    </div>
+
+    <div class="content-block">
+      <div id="nav-expanded" class="nav-block">
+        <nav id="kevux-document-nav" class="nav-menu">
+          <div class="nav-item block back">
+            <a href="fll/specifications.html" class="nav-text link back">Back</a>
+          </div>
+          <div class="nav-item block highlight unlink">
+            <div class="nav-text notice">FLL Specification</div>
+            <div class="nav-text unlink">EKI</div>
+          </div>
+          <div class="nav-item block">
+            <a href="fll/specifications/eki/eki-0001.html#eki-0001" class="nav-text link"><div>EKI-0001</div><div>(Basic)</div></a>
+          </div>
+          <div class="nav-item block">
+            <a href="fll/specifications/eki/eki-0001.html#common" class="nav-text link">Common Specification Rules</a>
+          </div>
+          <div class="nav-item block ellipses">
+            <a href="fll/specifications/eki/eki-0001.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+            <a href="fll/specifications/eki/eki-0001.html" class="nav-text link close">Collapse Menu</a>
+          </div>
+        </nav>
+      </div>
+
+      <div role="document" class="main-block">
+        <main class="main">
+          <header class="section-header header">
+            <h1 class="section-title h h1">Featureless Linux Library Specification</h1>
+          </header>
+
+          <section id="eki-0001" class="section">
+            <header class="section-header header">
+              <h2 class="section-title h h2">EKI-0001 (Basic)</h2>
+            </header>
+
+            <div class="section-content">
+              <p class="p">
+                The version date of this specification is <code class="code">2024/11/03</code>.
+              </p>
+              <p class="p">
+                This specification provides a small set of vocabulary names meant to be associated with common uses, such as e-mail addresses and Uniform Resource Locators.
+              </p>
+              <p class="p">
+                Vocabulary:
+              </p>
+              <dl class="dl">
+                <div class="di">
+                  <dt class="dt">address</dt>
+                  <dd class="dd">Any mailing address, except for e-mail and <abbr title="Uniform Resource Identifier">URI</abbr>.</dd>
+                </div>
+                <div class="di">
+                  <dt class="dt">code</dt>
+                  <dd class="dd">All text contained within represent code and should be presented as such.</dd>
+                </div>
+                <div class="di">
+                  <dt class="dt">email</dt>
+                  <dd class="dd">Any valid e-mail address.</dd>
+                </div>
+                <div class="di">
+                  <dt class="dt">phone</dt>
+                  <dd class="dd">Any valid phone number.</dd>
+                </div>
+                <div class="di">
+                  <dt class="dt">quote</dt>
+                  <dd class="dd">All text within represents some quote.</dd>
+                </div>
+                <div class="di">
+                  <dt class="dt">uri</dt>
+                  <dd class="dd">Any valid <abbr title="Uniform Resource Identifier">URI</abbr> (allows <abbr title="Uniform Resource Locator">URL</abbr> and <abbr title="Uniform Resource Name">URN</abbr>).</dd>
+                </div>
+                <div class="di">
+                  <dt class="dt">url</dt>
+                  <dd class="dd">Any valid <abbr title="Uniform Resource Locator">URL</abbr>.</dd>
+                </div>
+                <div class="di">
+                  <dt class="dt">urn</dt>
+                  <dd class="dd">Any valid <abbr title="Uniform Resource Name">URN</abbr>.</dd>
+                </div>
+                <div class="di">
+                  <dt class="dt">var</dt>
+                  <dd class="dd">All text contained within represents some sort of variable.</dd>
+                </div>
+              </dl>
+            </div>
+          </section>
+
+          <section id="common" class="section">
+            <header class="section-header header separate">
+              <h2 class="section-title h h2">Common Specification Rules</h2>
+            </header>
+
+            <div class="section-content">
+              <p class="p">
+                EKI is an extended EKI format that introduces the ability to have multiple variable names (<em class="em">Objects</em>) per variable value (<em class="em">Content</em>).
+              </p>
+              <p class="p">
+                The EKI syntax is identical to the EKI syntax and all of its rules apply except for the modification defined in this specification.
+              </p>
+              <p class="p">
+                This variable name, or <em class="em">Object</em>, now supports an additional character, <code class="code">:</code> (<code class="code">U+003A</code>), is used to separate each individual variable name.
+                Each variable name must follow the same requirements of a valid variable name as specified in the EKI specification.
+                Only the last <code class="code">:</code> (<code class="code">U+003A</code>) before the opening single quote (<code class="code">U+0027</code>), double quote (<code class="code">U+0022</code>), or grave (<code class="code">U+0060</code>) shall be a candidate for being escaped.
+                When this escape is in place of a valid EKI variable, then that would be variable is no longer considered an EKI variable.
+              </p>
+              <p class="p">
+                Key:
+              </p>
+              <ul>
+                <li><code class="code">\o</code> = any printable word character, including <code class="code">_</code>, <code class="code">-</code>, <code class="code">+</code> (and Unicode equivalents).</li>
+                <li><code class="code">\O</code> = any printable word character, including <code class="code">_</code>, <code class="code">-</code>, <code class="code">+</code> (and Unicode equivalents) followed by a colon <code class="code">:</code> (<code class="code">U+003A</code>) (cannot be only a colon by itself).</li>
+                <li><code class="code">\c</code> = 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.</li>
+                <li><code class="code">\q</code> = either a single quote <code class="code">'</code> (<code class="code">U+0027</code>), a double quote <code class="code">"</code> (<code class="code">U+0022</code>), or a grave <code class="code">`</code> (<code class="code">U+0060</code>).</li>
+                <li><code class="code">\x</code> = any character.</li>
+                <li><code class="code">\W</code> = any non-word character, discluding <code class="code">_</code> (and Unicode equivalents), <code class="code">-</code> (and Unicode equivalents), <code class="code">+</code> (and Unicode equivalents), and colon <code class="code">:</code> (<code class="code">U+003A</code>).</li>
+                <li><code class="code">\e</code> = an optional escape sequence of any number of backslashes, such as <code class="code">\</code> (<code class="code">U+005C</code>).</li>
+                <li><code class="code">[</code> = a single conditionally optional open bracket, <code class="code">[</code> (<code class="code">U+005B</code>).</li>
+                <li><code class="code">]</code> = a single conditionally optional close bracket, <code class="code">]</code> (<code class="code">U+005D</code>).</li>
+                <li><code class="code">*</code> = zero or more occurrences.</li>
+                <li><code class="code">~</code> = one or more occurrences, or zero if at start of file.</li>
+                <li><code class="code">+</code> = one or more occurrences.</li>
+                <li><code class="code">:</code> = The colon <code class="code">:</code> (<code class="code">U+003A</code>).</li>
+              </ul>
+              <p class="p">
+                Before Structure:
+              </p>
+              <ul>
+                <li><code class="code">\x*\W~</code></li>
+              </ul>
+              <p class="p">
+                Structure:
+              </p>
+              <ul>
+                <li><code class="code">[\O*\o+]\e:\q\c\q</code></li>
+              </ul>
+              <p class="p">
+                After Structure:
+              </p>
+              <ul>
+                <li><code class="code"></code></li>
+              </ul>
+              <p class="p">
+                Example File:
+              </p><pre class="preserve">
+# fss-000c eki-0000
+
+This is my sentence, anything can go here but sometimes I want to italic:"emphasize some text".
+
+Other times I want to render a URL with bold such as this example URL: bold:url:'http://www.example.com/url with space/'.
+
+There are no comments, except for maybe the FSS:"Featureless Settings Specification" header (which would not resolve to any EKI syntax anyway).
+
+Quotes may be included, such as: code:"const char *string = \"My \\\"quoted\\\" C string.\";".
+
+The following bold:italic\:"is escaped to not be treated as EKI data".
+
+The conditionally optional open and close brackets allow for putting a variable directly next to another word character like: [context]:"bold"this[context]:"bold".
+
+Multiple Objects within a bracket is also valid, like: before[bold:context]:"important"after.
+
+These are examples of escapes: one:"\" escape", two:"\\" escape", three:"\\\" escape", six:"\\\\\\" escape".
+
+These are examples of non-escapes: one:"\' escape", two:"\\' escape", three:"\\\' escape", six:"\\\\\\' escape".
+
+These slashes \ \\ \\\ are not escaped because there is now quote immediately after each of them.
+</pre>
+              <p class="p">
+                Example Results:
+              </p><pre class="preserve">
+Objects (also called vocabulary or variable name) would be:
+   1.1) italic
+   2.1) bold
+   2.2) URL
+   3.1) FSS
+   4.1) code
+   5.1) context
+   6.1) context
+   7.1) bold
+   7.2) context
+   8.1) one
+   9.1) two
+  10.1) three
+  11.1) six
+  12.1) one
+  13.1) two
+  14.1) three
+  15.1) six
+
+Contents (also called variable value) would be:
+   1.1) emphasize some text
+   2.1) http://www.example.com/url with space/
+   3.1) Featureless Settings Specification
+   4.1) const char *string = "My \"quoted\" C string.";
+   5.1) bold
+   6.1) bold
+   7.1) important
+   8.1) " escape
+   9.1) \\
+  10.1) \" escape
+  11.1) \\\
+  12.1) \' escape
+  13.1) \\' escape
+  14.1) \\\' escape
+  15.1) \\\\\\' escape
+</pre>
+            </div>
+          </section>
+        </main>
+      </div>
+    </div>
+  </body>
+</html>
index 210d37ce13313823b82a89ba1078ec7767ee7fb1..e6b3ab9790ea67a6e3254f22c4916ddc53227ccc 100644 (file)
               <p class="p">
                 Each Object starts at the beginning of a line and white space to the left of the Object is not treated as part of the object.
                 White space separates an Object from the Content.
-                An Object may be preceded by a newline, in which case means that the Object has no Content.
+                An Object may be preceded by a new line character, in which case means that the Object has no Content.
                 If only printing white spaces or non-printable characters follow a valid Object, then that Object is considered to have no Content.
-                An Object may be quoted to include whitespace where a single quote <code class="code">'</code> (<code class="code">U+0027</code>), a double quote <code class="code">"</code> (<code class="code">U+0022</code>), or a grave <code class="code">`</code> (<code class="code">U+0060</code>) are used to quote.
+                An Object may be quoted to include white space where a single quote <code class="code">'</code> (<code class="code">U+0027</code>), a double quote <code class="code">"</code> (<code class="code">U+0022</code>), or a grave <code class="code">`</code> (<code class="code">U+0060</code>) are used to quote.
+                An Object is only considered quoted if the first and last character of the Object are the same quote.
+                Any quote characters in a non-quoted Object are treated as part of the Object rather than as a quote.
+                An Object that properly starts with a quote character but is not properly terminated before the new line is reached is considered to be an Object terminating at the end of the line.
+                A quoted Objected terminating at the new line in this way preserves the quotes as part of the Object.
               </p>
               <p class="p">
                 Content exists on the same line as the Object.
-                Content is represented as a single Content column terminated by a newline.
-                Content column consists of everything following the first non-white space character until the newline.
-                Content column includes trailing white space before newline is reached.
+                Content is represented as a single Content column terminated by a new line.
+                Content column consists of everything following the first non-white space character until the new line.
+                Content column includes trailing white space before new line is reached.
                 Content column does not include any of the leading white space.
                 No delimits are supported in the Content.
               </p>
                 Key:
               </p>
               <ul>
-                <li><code class="code">\s</code> = White space, except newline.</li>
-                <li><code class="code">\b</code> = Either white space or printable, except newline.</li>
-                <li><code class="code">\q</code> = Non-white space or quoted white space (and non-whitespace) with no white space outside of the quotes.</li>
-                <li><code class="code">\n</code> = Newline.</li>
+                <li><code class="code">\s</code> = White space, except new line.</li>
+                <li><code class="code">\b</code> = Either white space or printable, except new line.</li>
+                <li><code class="code">\q</code> = Non-white space or quoted white space (and non-white space) with no white space outside of the quotes.</li>
+                <li><code class="code">\n</code> = New line.</li>
                 <li><code class="code">*</code> = Zero or more occurrences.</li>
                 <li><code class="code">+</code> = One or more occurrences.</li>
               </ul>
               </p>
               <ul>
                 <li><code class="code"></code></li>
-              </ul>
-              <p class="p">
-                Example:
-              </p><pre class="preserve">
-# fss-0000
-# valid comments are ignored.
-"The Object" Content until newline.
-Second object set.
+              </ul><pre class="preserve">
+Example:
+  # fss-0000
+  # valid comments are ignored.
+  "The Object" Content until new line.
+  Second object set.
 </pre>
               <p class="p">
                 Example Result:
@@ -142,7 +144,7 @@ Object would be:
   2) Second
 
 Content would be:
-  1.1) Content until newline.
+  1.1) Content until new line.
   2.1) object set.
 </pre>
             </div>
index d9e029255e6bfb717591f677b191ede25fb8e029..c829a5ac0cf13d0d4f409676d136915287e3605b 100644 (file)
               <p class="p">
                 Each Object starts at the beginning of a line and white space to the left of the Object is not treated as an object.
                 White space separates an Object from the Content.
-                An Object may be followed by a newline, in which case means that the Object has no Content.
+                An Object may be followed by a new line, in which case means that the Object has no Content.
                 If only printing white spaces or non-printable characters follow a valid Object, then that Object is considered to have no Content.
-                An Object may be quoted to include whitespace where a single quote <code class="code">'</code> (<code class="code">U+0027</code>), a double quote <code class="code">"</code> (<code class="code">U+0022</code>), or a grave <code class="code">`</code> (<code class="code">U+0060</code>) are used to quote.
+                An Object may be quoted to include white space where a single quote <code class="code">'</code> (<code class="code">U+0027</code>), a double quote <code class="code">"</code> (<code class="code">U+0022</code>), or a grave <code class="code">`</code> (<code class="code">U+0060</code>) are used to quote.
+                An Object is only considered quoted if the first and last character of the Object are the same quote.
+                Any quote characters in a non-quoted Object are treated as part of the Object rather than as a quote.
+                An Object that properly starts with a quote character but is not properly terminated before the new line is reached is considered to be an Object terminating at the end of the line.
+                A quoted Objected terminating at the new line in this way preserves the quotes as part of the Object.
               </p>
               <p class="p">
                 Content exists on the same line as the Object.
                 Content is represented as multiple Content columns.
-                Content columns are white space separated parts within the Content and terminated by a newline.
-                Any number of Content columns may exist in the Content until the newline is reached.
+                Content columns are white space separated parts within the Content and terminated by a new line.
+                Any number of Content columns may exist in the Content until the new line is reached.
+                Content follows the same quoting rules as an Object.
               </p>
               <p class="p">
                 Key:
               </p>
               <ul>
-                <li><code class="code">\s</code> = White space, except newline.</li>
-                <li><code class="code">\b</code> = Either white space or printable, except newline.</li>
-                <li><code class="code">\q</code> = Non-white space or quoted white space (and non-whitespace) with no white space outside of the quotes.</li>
-                <li><code class="code">\n</code> = Newline.</li>
+                <li><code class="code">\s</code> = White space, except new line.</li>
+                <li><code class="code">\b</code> = Either white space or printable, except new line.</li>
+                <li><code class="code">\q</code> = Non-white space or quoted white space (and non-white space) with no white space outside of the quotes.</li>
+                <li><code class="code">\n</code> = New line.</li>
                 <li><code class="code">*</code> = Zero or more occurrences.</li>
                 <li><code class="code">+</code> = One or more occurrences.</li>
                 <li><code class="code">()*</code> = Grouping that repeats zero or more times.</li>
               </ul>
               <p class="p">
                 Example:
-              </p><pre class="preserve">
+              </p>
+                <pre class="preserve">
 # fss-0001
 # valid comments are ignored.
 "The Object" Content "content 2" content_3.
index f5ea9e6686b3a3baca37808bb2559f6e43feda7c..3abf380423eeff3f2926077805b495377cb737f8 100644 (file)
 
             <div class="section-content">
               <p class="p">
-                The version date of this specification is <code class="code">2024/01/15</code>.
+                The version date of this specification is <code class="code">2024/08/30</code>.
               </p>
               <p class="p">
-                Each Object starts at the beginning of a line and white space to the left of the Object is not treated as an object.
-                A colon <code class="code">:</code> (<code class="code">U+003A</code>) followed by any white space until a newline terminates a valid Object.
+                Each Object starts at the beginning of a line and white space to the left of the Object is not treated as an Object.
+                A colon <code class="code">:</code> (<code class="code">U+003A</code>) followed by any white space until a new line terminates a valid Object.
+                White space after the last printable character of the Object but before the colon <code class="code">:</code> (<code class="code">U+003A</code>) is not considered part of the Object.
                 Non-white space printable characters may not follow the colon of a valid Object.
+                Implementations of the standard may choose to include the white space to the left and to the right of a valid Object may be included as an untrimmed Object.
               </p>
               <p class="p">
-                Content is represented as a single Content column of every line following a valid object until the end of file (or string) or until the next valid Object is found.
+                Content is represented as a single Content column of every line following a valid Object until the end of file (or string) or until the next valid Object is found.
                 Any Content that could be interpreted as a valid Object must have the colon delimited.
               </p>
               <p class="p">
-                There is no single-quote, double-quote, or grave delimitation in this specification.
+                There is no single-quote (<code class="code">U+0027</code>), double-quote (<code class="code">U+0022</code>), or grave (<code class="code">U+0060</code>) delimitation in this specification.
                 Only a colon <code class="code">:</code> (<code class="code">U+003A</code>) that would result in a valid Object can be delimited.
               </p>
               <p class="p">
-                Empty Objects are allowed, that is, the length of the object may be zero.
+                Empty Objects are allowed, that is, the length of the Object may be zero.
               </p>
               <p class="p">
                 Key:
               </p>
               <ul>
-                <li><code class="code">\s</code> = White space, except newline.</li>
+                <li><code class="code">\s</code> = White space, except new line.</li>
                 <li><code class="code">\o</code> = Any printable character, except unescaped <code class="code">:</code> (<code class="code">U+003A</code>).</li>
-                <li><code class="code">\l</code> = Any printable character or white space, except unescaped <code class="code">:</code> (<code class="code">U+003A</code>).</li>
-                <li><code class="code">\c</code> = either white space or printable, including newline, that not interpretable as an Object.</li>
-                <li><code class="code">\n</code> = Newline.</li>
+                <li><code class="code">\c</code> = Either white space or printable, including new line, that not interpretable as an Object.</li>
+                <li><code class="code">\n</code> = New line.</li>
                 <li><code class="code">*</code> = Zero or more occurrences.</li>
               </ul>
               <p class="p">
                 Structure:
               </p>
               <ul>
-                <li><code class="code">\s*\o\l*:\s*\n\c*\n*</code></li>
+                <li><code class="code">\s*\o\s*:\s*\n\c*\n*</code></li>
               </ul>
               <p class="p">
                 After Structure:
   This Does\:
 Second:
   Continues until EOS/EOF.
-  All white space, including newline (and leading white space) is "part of content."
+  All white space, including new line (and leading white space) is "part of content."
   # Valid comments are still ignored.
 </pre>
               <p class="p">
                 Example Results:
               </p><pre class="preserve">
-  Objects would be:
-    1) "The Object"
-    2) Second
+Objects would be:
+  1) "The Object"
+  2) Second
 
-  Contents would be:
-    1.1) Does not need to be quoted.
-         This: does not need to be delimited.
-         This Does:
-    2.1) Continues until EOS/EOF.
-         All white space, including newline (and leading white space) is "part of content."
+Contents would be:
+  1.1) Does not need to be quoted.
+       This: does not need to be delimited.
+       This Does:
+  2.1) Continues until EOS/EOF.
+       All white space, including new line (and leading white space) is "part of content."
 </pre>
             </div>
           </section>
index fb8d47bbb9771e4e9d9818370d4bac204f1f3904..ad11347f5db1f270ffeafe81b0a23627c5bbc366 100644 (file)
 
             <div class="section-content">
               <p class="p">
-                The version date of this specification is <code class="code">2024/01/15</code>.
+                The version date of this specification is <code class="code">2024/08/30</code>.
               </p>
               <p class="p">
-                Each Object starts at the beginning of a line and white space to the left of the Object is not treated as an object.
-                An open-brace <code class="code">{</code> (<code class="code">U+007B</code>) followed by any white space until a newline terminates a possible valid Object.
+                Each Object starts at the beginning of a line and white space to the left of the Object is not treated as an Object.
+                An open-brace <code class="code">{</code> (<code class="code">U+007B</code>) followed by any white space until a new line terminates a possible valid Object.
+                White space after the last printable character of the Object but before the brace <code class="code">{</code> (<code class="code">U+0037B</code>) is not considered part of the Object.
                 An Object is not considered fully valid until a valid close-brace <code class="code">}</code> (<code class="code">U+007D</code>) is found, designating the end of the Content.
                 Non-white space printable characters may not follow the open-brace <code class="code">{</code> (<code class="code">U+007B</code>) of a valid Object.
+                Implementations of the standard may choose to include the white space to the left and to the right of a valid Object may be included as an untrimmed Object.
               </p>
               <p class="p">
-                Content is represented as a single Content column of every line following a valid object until the end of file (or string) or until a non-delimited close-brace <code class="code">}</code> (<code class="code">U+007D</code>).
+                Content is represented as a single Content column of every line following a valid Object until the end of file (or string) or until a non-delimited close-brace <code class="code">}</code> (<code class="code">U+007D</code>).
                 Any Content column that could be interpreted as an end of Content must be delimited if it should be part of the Content.
-                White space may follow a valid close-brace <code class="code">}</code> (<code class="code">U+007D</code>) but a terminating newline must be present to designate a valid end of Content.
+                White space may follow a valid close-brace <code class="code">}</code> (<code class="code">U+007D</code>) but a terminating new line must be present to designate a valid end of Content.
               </p>
               <p class="p">
-                There is no single-quote, double-quote, or grave delimitation in this specification.
-                Only an open-brace <code class="code">{</code> (<code class="code">U+007B</code>) that would result in a valid Object or a close-brace <code class="code">}</code> (<code class="code">U+007D</code>) that would terminate valid Content can be delimited.
+                There is no single-quote (<code class="code">U+0027</code>), double-quote (<code class="code">U+0022</code>), or grave (<code class="code">U+0060</code>) delimitation in this specification.
+                Only an open-brace <code class="code">{</code> (<code class="code">U+007B</code>) that would result in a valid Object or the close-brace <code class="code">}</code> (<code class="code">U+007D</code>) that would terminate valid Content can be delimited.
                 When inside potentially valid Content (which follows a valid Object) the open-brace <code class="code">{</code> (<code class="code">U+007B</code>) cannot be delimited because this standard is not-recursive.
                 When not inside any potentially valid Content (that is, there is no previous unclosed Object), then the Object may be delimited.
                 Likewise, the close-brace <code class="code">}</code> (<code class="code">U+007D</code>) may only be delimited if it is within any potentially valid Content.
                 Only the first delimit slash in a delimitable close-brace <code class="code">}</code> (<code class="code">U+007D</code>) is treated as a potential delimit (<code class="code">\\\}</code> would represent <code class="code">\\}</code>).
               </p>
               <p class="p">
-                Empty Objects are allowed, that is, the length of the object may be zero.
+                Empty Objects are allowed, that is, the length of the Object may be zero.
+              </p>
               <p class="p">
                 Key:
               </p>
               <ul>
-                <li><code class="code">\s</code> = White space, except newline.</li>
+                <li><code class="code">\s</code> = White space, except new line.</li>
                 <li><code class="code">\o</code> = Any printable character, except unescaped <code class="code">{</code> (<code class="code">U+007B</code>).</li>
-                <li><code class="code">\l</code> = Any printable character or white space, except unescaped <code class="code">}</code> (<code class="code">U+007D</code>).</li>
-                <li><code class="code">\c</code> = Either white space or printable, including newline, that is not interpretable as an Object.</li>
+                <li><code class="code">\c</code> = Either white space or printable, including new line, that is not interpretable as an Object.</li>
                 <li><code class="code">\n</code> = Newline.</li>
                 <li><code class="code">*</code> = Zero or more occurrences.</li>
               </ul>
               <ul>
                 <li><code class="code"></code></li>
               </ul>
+
               <p class="p">
                 Structure:
               </p>
               <ul>
-                <li><code class="code">\s*\o\l*{\s*\n\c*\n\s*}\s*\n</code></li>
+                <li><code class="code">\s*\o\s*{\s*\n\c*\n\s*}\s*\n</code></li>
               </ul>
               <p class="p">
                 After Structure:
               </ul>
               <p class="p">
                 Example:
-              </p><pre class="preserve">
+              </p>
+              <pre class="preserve">
 # fss-0003
 # valid comments are ignored.
 "The Object" {
 
 Second {
   Continues until EOS/EOF.
-  All white space, including newline (and leading white space) is "part of content."
+  All white space, including new line (and leading white space) is "part of content."
   # Valid comments are still ignored.
 }
 </pre>
@@ -165,7 +169,7 @@ Contents would be:
        This: does not need to be delimited.
        }
   2.1) Continues until EOS/EOF.
-       All white space, including newline (and leading white space) is "part of content."
+       All white space, including new line (and leading white space) is "part of content."
 </pre>
             </div>
           </section>
index 25dd210be88557de6c137d929642db4debb56ad5..f4d097e5b334e4259799e2e49363651b9d199ad5 100644 (file)
                 The version date of this specification is <code class="code">2023/07/14</code>.
               </p>
               <p class="p">
-                This is a <code class="code">fss-0002 (Basic List)</code> whose Content is then processed as <code class="code">fss-0000 (Basic)</code>.
+                This is a <code class="code">FSS-0002 (Basic List)</code> whose Content is then processed as <code class="code">FSS-0000 (Basic)</code>.
               </p>
               <p class="p">
-                All <code class="code">fss-0002 (Basic List)</code> escapes are applied before any <code class="code">fss-0000 (Basic)</code> is identified.
+                All <code class="code">FSS-0002 (Basic List)</code> escapes are applied before any <code class="code">FSS-0000 (Basic)</code> is identified.
               </p>
               <p class="p">
-                See the <a href="fll/specifications/fss/fss-0000.html" class="link">fss-0000 (Basic)</a> and <a href="fll/specifications/fss/fss-0002.html" class="link">fss-0002 (Basic List)</a> specifications for details on the syntax rules.
+                See the <a href="fll/specifications/fss/fss-0000.html" class="link">FSS-0000 (Basic)</a> and <a href="fll/specifications/fss/fss-0002.html" class="link">FSS-0002 (Basic List)</a> specification files for details on the syntax rules.
               </p>
               <p class="p">
                 Example:
   This Does\:
 Second:
   Continues until EOS/EOF.
-  All white space, including newline (and leading white space) is "part of content."
+  All white space, including new line (and leading white space) is "part of content."
   # Valid comments are still ignored.
 </pre>
               <p class="p">
@@ -115,7 +115,6 @@ Outer Objects would be:
 
 Inner Objects would be:
   1.1) Does
-  1.2) This:
   1.3) This
 
   2.1) Continues
@@ -127,7 +126,7 @@ Inner Contents would be:
   1.3.1) Does:
 
   2.1.1) until EOS/EOF.
-  2.2.1) white space, including newline (and leading white space) is "part of content."
+  2.2.1) white space, including new line (and leading white space) is "part of content."
 </pre>
             </div>
           </section>
index 0d4ce30a63331f6adfcc30f7789ff9cdc6fb3e53..a23c378730cf575766f34ee0c45f74684210aa55 100644 (file)
                 The version date of this specification is <code class="code">2023/07/14</code>.
               </p>
               <p class="p">
-                This is a code"fss-0002 (Basic List)" whose Content is then processed as <code class="code">fss-0001 (Extended)</code>.
+                This is a <code class="code">FSS-0002 (Basic List)</code> whose Content is then processed as <code class="code">FSS-0001 (Extended)</code>.
               </p>
               <p class="p">
-                All <code class="code">fss-0002 (Basic List)</code> escapes are applied before any <code class="code">fss-0001 (Extended)</code> is identified.
+                All <code class="code">FSS-0002 (Basic List)</code> escapes are applied before any <code class="code">FSS-0001 (Extended)</code> is identified.
               </p>
               <p class="p">
-                See the <a href="fll/specifications/fss/fss-0001.html" class="link">fss-0001 (Extended)</a> and <a href="fll/specifications/fss/fss-0002.html" class="link">fss-0002 (Basic List)</a> specifications for details on the syntax rules.
+                See the <a href="fll/specifications/fss/fss-0001.html" class="link">FSS-0001 (Extended)</a> and <a href="fll/specifications/fssw/fss-0002.html" class="link">FSS-0002 (Basic List)</a> specification files for details on the syntax rules.
               </p>
               <p class="p">
                 Example:
   This Does\:
 Second:
   Continues until EOS/EOF.
-  All white space, including newline (and leading white space) is "part of content."
+  All white space, including new line (and leading white space) is "part of content."
   # Valid comments are still ignored.
-</pre>
+              </pre>
               <p class="p">
                 Example Results:
               </p><pre class="preserve">
@@ -115,7 +115,6 @@ Outer Objects would be:
 
 Inner Objects would be:
   1.1) Does
-  1.2) This:
   1.3) This
 
   2.1) Continues
@@ -140,14 +139,16 @@ Inner Contents would be:
   2.1.1) until
   2.1.2) EOS/EOF.
 
-  2.2.1) white space,
-  2.2.2) including
-  2.2.3) newline
-  2.2.4) (and
-  2.2.5) leading
-  2.2.6) white space)
-  2.2.7) is
-  2.2.8) part of content.
+  2.2.1) white
+  2.2.2) space,
+  2.2.3) including
+  2.2.4) new
+  2.2.5) line
+  2.2.6) (and
+  2.2.7) leading
+  2.2.8) white space)
+  2.2.9) is
+  2.2.10) part of content.
 </pre>
             </div>
           </section>
index 6ae1e8a019bea2c43ed3174e9451460c5c156c78..d84ccee2155161589077c302eec8df8f28f753cf 100644 (file)
                 The version date of this specification is <code class="code">2023/07/14</code>.
               </p>
               <p class="p">
-                This is a <code class="code">fss-0003 (Extended List)</code> whose Content is then processed as <code class="code">fss-0000 (Basic)</code>.
+                This is a <code class="code">FSS-0003 (Extended List)</code> whose Content is then processed as <code class="code">FSS-0000 (Basic)</code>.
               </p>
               <p class="p">
-                All <code class="code">fss-0003 (Extended List)</code> escapes are applied before any <code class="code">fss-0000 (Basic)</code> is identified.
+                All <code class="code">FSS-0003 (Extended List)</code> escapes are applied before any <code class="code">FSS-0000 (Basic)</code> is identified.
               </p>
               <p class="p">
-                See the <a href="fll/specifications/fss/fss-0000.html" class="link">fss-0000 (Basic)</a> and <a href="fll/specifications/fss/fss-0003.html" class="link">fss-0003 (Extended List)</a> specifications for details on the syntax rules.
+                See the <a href="fll/specifications/fss/fss-0000.html" class="link">FSS-0000 (Basic)</a> and <a href="fll/specifications/fss/fss-0003.html" class="link">FSS-0003 (Extended List)</a> specification files for details on the syntax rules.
               </p>
               <p class="p">
                 Example:
 
 Second {
   Continues until EOS/EOF.
-  All white space, including newline (and leading white space) is "part of content."
+  All white space, including new line (and leading white space) is "part of content."
   # Valid comments are still ignored.
 }
 </pre>
@@ -130,7 +130,7 @@ Inner Contents would be:
   1.3.1)
 
   2.1.1) until EOS/EOF.
-  2.2.1) white space, including newline (and leading white space) is "part of content."
+  2.2.1) white space, including new line (and leading white space) is "part of content."
 </pre>
             </div>
           </section>
index b707230a24e9a54d15704edbfdfd8e5a51478c1e..3b0a5b0bf64bd470a769f08828f82e2beb30a039 100644 (file)
                 The version date of this specification is <code class="code">2023/07/14</code>.
               </p>
               <p class="p">
-                This is a <code class="code">fss-0003 (Extended List)</code> whose Content is then processed as <code class="code">fss-0001 (Extended)</code>.
+                This is a <code class="code">FSS-0003 (Extended List)</code> whose Content is then processed as <code class="code">FSS-0001 (Extended)</code>.
               </p>
               <p class="p">
-                All <code class="code">fss-0003 (Extended List)</code> escapes are applied before any <code class="code">fss-0001 (Extended)</code> is identified.
+                All <code class="code">FSS-0003 (Extended List)</code> escapes are applied before any <code class="code">FSS-0001 (Extended)</code> is identified.
               </p>
               <p class="p">
-                See the <a href="fll/specifications/fss/fss-0001.html" class="link">fss-0001 (Extended)</a> and <a href="fll/specifications/fss/fss-0003.html" class="link">fss-0003 (Extended List)</a> specifications for details on the syntax rules.
+                See the <a href="fll/specifications/fss/fss-0001.html" class="link">FSS-0001 (Extended)</a> and <a href="fll/specifications/fss/fss-0003.html" class="link">FSS-0003 (Extended List)</a> specification files for details on the syntax rules.
               </p>
               <p class="p">
                 Example:
               </p><pre class="preserve">
-# fss-0007
-# valid comments are ignored.
-"The Object" {
-  Does not need to be quoted.
-  This: does not need to be delimited.
-  \}
-}
-
-Second {
-  Continues until EOS/EOF.
-  All white space, including newline (and leading white space) is "part of content."
-  # Valid comments are still ignored.
-}
+  # fss-0007
+  # valid comments are ignored.
+  "The Object" {
+    Does not need to be quoted.
+    This: does not need to be delimited.
+    \}
+  }
+
+  Second {
+    Continues until EOS/EOF.
+    All white space, including new line (and leading white space) is "part of content."
+    # Valid comments are still ignored.
+  }
 </pre>
               <p class="p">
                 Example Results:
@@ -143,14 +143,16 @@ Inner Contents would be:
   2.1.1) until
   2.1.2) EOS/EOF.
 
-  2.2.1) white space,
-  2.2.2) including
-  2.2.3) newline
-  2.2.4) (and
-  2.2.5) leading
-  2.2.6) white space)
-  2.2.7) is
-  2.2.8) part of content.
+  2.2.1) white
+  2.2.2) space,
+  2.2.3) including
+  2.2.4) new
+  2.2.5) line
+  2.2.6) (and
+  2.2.7) leading
+  2.2.8) white space)
+  2.2.9) is
+  2.2.10) part of content.
 </pre>
             </div>
           </section>
index c486f0a001b5b002263a87f4a82091c5c976abe5..937f44ff52ce16827c266138b5e83a7ae0f0fa94 100644 (file)
                 The version date of this specification is <code class="code">2023/07/14</code>.
               </p>
               <p class="p">
-                This is a <code class="code">fss-0003 (Extended List)</code> whose Content is then recursively processed as <code class="code">fss-0003 (Extended List)</code>.
+                This is a <code class="code">FSS-0003 (Extended List)</code> whose Content is then recursively processed as <code class="code">FSS-0003 (Extended List)</code>.
               </p>
               <p class="p">
-                See the <a href="fll/specifications/fss/fss-0003.html" class="link">fss-0003 (Extended List)</a> specification for details on the syntax rules.
+                See the <a href="fll/specifications/fss/fss-0003.html" class="link">FSS-0003 (Extended List)</a> specification file for details on the syntax rules.
               </p>
               <p class="p">
                 Example:
index 81c6499691c015fc9166100df4ef54470142ec42..568169a2e6085d949661ba9792415e6090723863 100644 (file)
@@ -84,7 +84,7 @@
                 The version date of this specification is <code class="code">2024/06/11</code>.
               </p>
               <p class="p">
-                This is based off of <code class="code">fss-0000 (Basic)</code>, except the Object is at the end of the line.
+                This is based off of <code class="code">FSS-0000 (Basic)</code>, except the Object is at the end of the line.
               </p>
               <p class="p">
                 Each Object starts at the end of a line and white space to the left of the Object is not treated as part of the object.
               <ul>
                 <li><code class="code">\s</code> = White space, except new line.</li>
                 <li><code class="code">\b</code> = Either white space or printable, except new line.</li>
-                <li><code class="code">\q</code> = Non-white space or quoted white space (and non-whitespace) with no white space outside of the quotes.</li>
-                <li><code class="code">\n</code> = Newline.</li>
+                <li><code class="code">\q</code> = Non-white space or quoted white space (and non-white space) with no white space outside of the quotes.</li>
+                <li><code class="code">\n</code> = New line.</li>
                 <li><code class="code">*</code> = Zero or more occurrences.</li>
                 <li><code class="code">+</code> = One or more occurrences.</li>
               </ul>
index dafc5316db51ebd77e18053727a1c7b21a0cc60c..2c6d13de1d79c800a0d9ba469603215e2ec216c4 100644 (file)
@@ -84,7 +84,7 @@
                 The version date of this specification is <code class="code">2024/06/11</code>.
               </p>
               <p class="p">
-                This is based off of <code class="code">fss-0001 (Extended)</code>, except the Object is at the end of the line.
+                This is based off of <code class="code">FSS-0001 (Extended)</code>, except the Object is at the end of the line.
               </p>
               <p class="p">
                 Each Object starts at the end of a line and white space to the left of the Object is not treated as an object.
               <ul>
                 <li><code class="code">\s</code> = White space, except new line.</li>
                 <li><code class="code">\b</code> = Either white space or printable, except new line.</li>
-                <li><code class="code">\q</code> = Non-white space or quoted white space (and non-whitespace) with no white space outside of the quotes.</li>
-                <li><code class="code">\n</code> = Newline.</li>
+                <li><code class="code">\q</code> = Non-white space or quoted white space (and non-white space) with no white space outside of the quotes.</li>
+                <li><code class="code">\n</code> = New line.</li>
                 <li><code class="code">*</code> = Zero or more occurrences.</li>
                 <li><code class="code">+</code> = One or more occurrences.</li>
                 <li><code class="code">()*</code> = Grouping that repeats zero or more times.</li>
index d3c966e731e404d7a0462d9bd0454ac4157b9963..3b10662a0169081c8f624482253a7e8a1cd07a77 100644 (file)
                 The version date of this specification is <code class="code">2023/07/14</code>.
               </p>
               <p class="p">
-                This is similar to <code class="code">fss-0008 (Embedded List)</code>, except it is an <code class="code">fss-0003 (Extended List)</code> with a (non-recursive) <code class="code">fss-0002 (Basic List)</code> inside the Content.
+                This is similar to <code class="code">FSS-0008 (Embedded List)</code>, except that it is an <code class="code">FSS-0003 (Extended List)</code> with a (non-recursive) <code class="code">FSS-0002 (Basic List)</code> inside the Content.
               </p>
               <p class="p">
-                See the <a href="fll/specifications/fss/fss-0002.html" class="link">fss-0002 (Basic List)</a> and <a href="fll/specifications/fss/fss-0003.html" class="link">fss-0003 (Extended List)</a> specifications for details on the syntax rules.
+                See the <a href="fll/specifications/fss/fss-0002.html" class="link">FSS-0002 (Basic List)</a> and <a href="fll/specifications/fss/fss-0003.html" class="link">FSS-0003 (Extended List)</a> specification files for details on the syntax rules.
               </p>
               <p class="p">
                 Example:
index dddbc24f169ee11e43a10789bebc5b09e9048416..8a7a673956dffca2af3dcfa52961dcf522b3e7b3 100644 (file)
               <p class="p">
                 The IKI specifications are separate specifications from the <abbr title="Featureless Settings Specifications">FSS</abbr>.
                 This is simply a more formal way to designate that this format utilizes IKI syntax.
+                This may also be used to designate EKI syntax.
+              </p>
+              <p class="p">
+                When neither an IKI nor an EKI header is specified and (other than <code class="code">fss-000c</code> is specified) and the syntax is not known through some other means, then this can be assumed to be in IKI syntax rather than EKI syntax.
               </p>
               <p class="p">
                 The IKI syntax may be used in any <abbr title="Featureless Settings Specifications">FSS</abbr>.
-                The IKI format may be added to the.
               </p>
               <p class="p">
-                See the iki.txt specification for details on the IKI specifications.
+                See the <a href="fll/specifications.html#iki" class="link">iki.txt</a> specification for details on the IKI specifications.
+              </p>
+              <p class="p">
+                See the <a href="fll/specifications.html#eki" class="link">eki.txt</a> specification for details on the EKI specifications.
               </p>
               <p class="p">
                 Example:
               </p><pre class="preserve">
 # fss-000c iki-0000
 
-This is a emphasis:"formal example" utilizing the FSS headers.
+This is a italic:"formal example" utilizing the FSS and IKI headers.
 </pre>
               <p class="p">
                 Example:
               </p><pre class="preserve">
 # iki-0000
 
-This is an emphasis:"informal example" utilizing the IKI headers.
-              </pre>
+This is a italic:"informal example" utilizing only the IKI headers.
+</pre>
+              <p class="p">
+                Example:
+              </p><pre class="preserve">
+# fss-000c eki-0000
+
+This is a bold:italic:"informal example" utilizing the FSS and EKI headers.
+</pre>
+              <p class="p">
+                Example:
+              </p><pre class="preserve">
+# fss-000c
+
+This is a italic:"formal example" utilizing only the FSS headers, which in this case is treated as IKI rather than EKI.
+</pre>
             </div>
           </section>
         </main>
index 659e78a2cfcd695636c3e24ecbe9a25de422db90..40a3e662db27b0bc64fd430da1ed22fb0dea9902 100644 (file)
               <p class="p">
                 The version date of this specification is <code class="code">2023/07/14</code>.
               </p>
-              <p class="p">
-                This is a special case that follows <code class="code">fss-0002 (Basic List)</code>, and different <abbr title="Featureless Settings Specifications">FSS</abbr> formats inside this <code class="code">fss-0002 (Basic List)</code>.
-                This <code class="code">fss-0002 (Basic List)</code> is considered the "Outer List" and the Content of this Outer List is considered the "Inner Content".
+                This is a special case that follows <code class="code">FSS-0002 (Basic List)</code>, and different <abbr title="Featureless Settings Specifications">FSS</abbr> formats inside this <code class="code">FSS-0002 (Basic List)</code>.
+                This <code class="code">FSS-0002 (Basic List)</code> is considered the "Outer List" and the Content of this Outer List is considered the "Inner Content".
               </p>
               <p class="p">
-                The Inner Content may be any of the following <abbr title="Featureless Settings Specifications">FSS</abbr> formats: <code class="code">fss-0000 (Basic)</code>, <code class="code">fss-0001 (Extended)</code>, and <code class="code">fss-0003 (Extended List)</code>.
+                The Inner Content may be any of the following <abbr title="Featureless Settings Specifications">FSS</abbr> formats: <code class="code">FSS-0000 (Basic)</code>, <code class="code">FSS-0001 (Extended)</code>, and <code class="code">FSS-0003 (Extended List)</code>.
                 The way in which each format is determined is first to see if the Inner Content Object would be a valid Extended List Object.
-                If the Inner Content Object is not a valid <code class="code">fss-0003 (Extended List)</code> Object, then check to see if it is an <code class="code">fss-0000 (Basic)</code> or <code class="code">fss-0001 (Extended)</code> Object.
+                If the Inner Content Object is not a valid <code class="code">FSS-0003 (Extended List)</code> Object, then check to see if it is an <code class="code">FSS-0000 (Basic)</code> or <code class="code">FSS-0001 (Extended)</code> Object.
               </p>
               <p class="p">
-                The <code class="code">fss-0000 (Basic)</code> and <code class="code">fss-0001 (Extended)</code> Objects have the same format for Object names but the <code class="code">fss-0003 (Extended List)</code> Object is slightly different.
-                Anything that would match an <code class="code">fss-0003 (Extended List)</code> Object must therefore be an <code class="code">fss-0003 (Extended List)</code> Object.
+                The <code class="code">FSS-0000 (Basic)</code> and <code class="code">FSS-0001 (Extended)</code> Objects have the same format for Object names but the <code class="code">FSS-0003 (Extended List)</code> Object is slightly different.
+                Anything that would match an <code class="code">FSS-0003 (Extended List)</code> Object must therefore be an <code class="code">FSS-0003 (Extended List)</code> Object.
               </p>
               <p class="p">
-                This supports the use of <code class="code">iki-0000 (Unrestricted)</code> but only within the Content of the outermost <code class="code">fss-0002 (Basic List)</code>.
+                This supports the use of <code class="code">iki-0000 (Unrestricted)</code> but only within the Content of the outermost <code class="code">FSS-0002 (Basic List)</code>.
                 That is to say, the IKI is only processed once.
                 Additional restrictions on the use of IKI syntax is allowed if explicitly defined in the implementing specification.
                 This additional restriction may also include using a more restrictive IKI syntax, such as <code class="code">iki-0001 (Basic)</code>.
                 Anything implementing this specification may impose its own restrictions on when to determine if the Inner Content is what <abbr title="Featureless Settings Specifications">FSS</abbr> format, based on Object names.
               </p>
               <p class="p">
-                See the <a href="fll/specifications/fss/fss-0000.html" class="link">fss-0000 (Basic)</a>, <a href="fll/specifications/fss/fss-0001.html" class="link">fss-0001 (Extended)</a>, and <a href="fll/specifications/fss/fss-0003.html" class="link">fss-0003 (Extended List)</a> specifications for details on the syntax rules.
+                See the the <a href="fll/specifications/fss/fss-0000.html" class="link">FSS-0000 (Basic)</a>, <a href="fll/specifications/fss/fss-0001.html" class="link">FSS-0001 (Extended)</a>, and <a href="fll/specifications/fss/fss-0003.html" class="link">FSS-0003 (Extended List)</a> specification files for details on the syntax rules.
               </p>
               <p class="p">
                 Example:
index 0c237ac851c65e9fcfbe900225c7212094458df6..3ac921d12ccc7ad31ca993faceb147e4446853e4 100644 (file)
@@ -84,7 +84,7 @@
                 The version date of this specification is <code class="code">2024/03/12</code>.
               </p>
               <p class="p">
-                This is a <code class="code">fss-0002 (Basic List)</code> with two required objects:
+                This is a <code class="code">FSS-0002 (Basic List)</code> with one required object and two optional objects:
               </p>
               <ol>
                 <li><em class="em">header</em>.</li>
@@ -97,7 +97,7 @@
               <ul>
                 <li>The <em class="em">header</em>'s Content is of type <code class="code">FSS-0001 (Extended)</code>.</li>
                 <li>The <em class="em">header</em> is recommended to have the Objects <em class="em">length</em>, <em class="em">status</em>, <em class="em">part</em>, <em class="em">total</em>, and <em class="em">type</em>.</li>
-                The <em class="em">header</em> is suggested to have the Objects <em class="em">salt</em> and <em class="em">time</em>.
+                <li>The <em class="em">header</em> is suggested to have the Objects <em class="em">salt</em> and <em class="em">time</em>.</li>
                 <li>The recommended <em class="em">length</em> represents the size of the <em class="em">payload</em>.</li>
                 <li>The recommended <em class="em">part</em> represents a single part of a set of packets for when the data being transmitted is split across multiple payloads.</li>
                 <li>The recommended <em class="em">status</em> represents status codes (such as success or failure) and multiple.</li>
                 <li>The <em class="em">payload</em>'s Content may contain anything, including raw binary data.</li>
                 <li>The <em class="em">payload</em> is <em class="em">required</em> to be the last list Object in the file, if present.</li>
                 <li>The <em class="em">payload</em> is recommended to have its size designated in some manner in the <em class="em">header</em> (such as with the recommended <em class="em">length</em>).</li>
-                <li>The <em class="em">payload</em> is terminated by the <abbr title="End of File">EOF</abbr> character or by the recommended <em class="em">length</em> header.</li>
+                <li>The <em class="em">payload</em> is terminated by the End of File character or by the recommended <em class="em">length</em> header.</li>
                 <li>The <em class="em">payload</em> may be empty (length may be zero).</li>
                 <li>Nothing in the <em class="em">payload</em> may be considered a valid list Object by the outer <code class="code">FSS-0002 (Basic List)</code> and therefore escaping is unnecessary (No further processing by the outer <code class="code">FSS-0002 (Basic List)</code> is allowed at this point).</li>
                 <li>Comments in the <em class="em">payload</em> are not considered comments and are instead considered part of the payload, as-is.</li>
                 <li>Essentially, the <em class="em">payload</em> should be treated as binary data embedded in a text file.</li>
                 <li>There may only be a single <em class="em">payload</em> Object and associated Content.</li>
-                <li>Any <em class="em">payload</em> Object and associated Content that is not the last must not have its Content data treated as binary in the same way as the last <em class="em">payload"</em> Object and associated Content.</li>
+                <li>Any <em class="em">payload</em> Object and associated Content that is not the last must not have its Content data treated as binary in the same way as the last <em class="em">payload</em> Object and associated Content.</li>
               </ul>
               <p class="p">
                 The recommended <em class="em">length</em> <em class="em">header</em> Object used to designate the <em class="em">payload</em> size does not necessarily have to be defined in the <em class="em">header</em>.
                 That is to say, if the <em class="em">payload</em> is expected to be of some pre-defined or static length then a length does not need to be provided in the <em class="em">header</em>.
               </p>
               <p class="p">
-                The recommended <em class="em">length</em> <em class="em">header</em> Object used to designate the <em class="em">payload</em> size does not necessarily have to be defined in the <em class="em">header</em>.
-                That is to say, if the <em class="em">payload</em> is expected to be of some pre-defined or static length then a length does not need to be provided in the <em class="em">header</em>.
-              </p>
-              <p class="p">
                 The recommended <em class="em">status</em> <em class="em">header</em> Object may be a string, such as <code class="code">F_okay</code>, or a positive whole number.
-                What the status code represents is application specific (or specific to a sub-standard) but may often be used to represent <abbr title="Featureless Linux Library">FLL</abbr> status code.
+                What the status code represents is application specific (or specific to a sub-standard) but may often be used to represent Featureless Linux Library status code.
               </p>
               <ul>
                 <li>The <abbr title="Featureless Linux Library">FLL</abbr> status code is a 16-bit digit whose first two high-order bits represent <em class="em">error</em> and <em class="em">warning</em> (representing <em class="em">signal</em>).</li>
index 0d97648f252adb748432080dbd5f2e1c11737e04..264d07c461a6ff3560e78ec364bffbf6d3e8e1d7 100644 (file)
@@ -84,7 +84,7 @@
                 The version date of this specification is <code class="code">2024/06/05</code>.
               </p>
               <p class="p">
-                This is a network packet format that often contains <code class="code">fss-000e (Payload)</code> within it.
+                This is a network packet format that often contains <code class="code">FSS-000e (Payload)</code> within it.
               </p>
               <p class="p">
                 The <strong class="strong">Magic Block</strong> when containing <code class="code">FSS-000e (Payload)</code> in the <strong class="strong">Payload Block</strong> is: <code class="code">11010010100111101111010000111110</code>.
                 There are three or four blocks in this format:
               </p>
               <ol>
-                <li>Control Block.</li>
-                <li>Size Block.</li>
-                <li>Magic Block.</li>
-                <li>Payload Block.</li>
+                <li><strong class="strong">Control Block</strong>.</li>
+                <li><strong class="strong">Size Block</strong>.</li>
+                <li><strong class="strong">Magic Block</strong>.</li>
+                <li><strong class="strong">Payload Block</strong>.</li>
               </ol>
               <p class="p">
                 The <strong class="strong">Control Block</strong> is the first block in the packet and is considered endianless.
                 The third bit following the endiannes bit represents the magic bit.
               </p>
               <p class="p">
-                Control Block Structure:
+                <strong class="strong">Control Block</strong> Structure:
               </p><pre class="preserve">
 [ Endianness Bit ] [ String / Binary Bit ] [ Magic Bit   ] [ Remaining 5 Bits (unused) ]
 [ size: 1 bit    ] [ size: 1 bit         ] [ size: 1 bit ] [ size: 5 bits              ]
               <p class="p">
                 The endianness bit designates whether or not the packet is in big endian or little endian format.
                 A bit value of 0 designates that this packet is in little endian and a value of 1 designates that this packet is in big endian format.
-                All <em class="em">binary</em> data within this packet, following the Control Block, must respect this endianness bit (including the <strong class="strong">Size Block</strong>).
+                All <em class="em">binary</em> data within this packet, following the <strong class="strong">Control Block</strong>, must respect this endianness bit (including the <strong class="strong">Size Block</strong>).
               </p>
               <p class="p">
                 The magic bit designates whether or not the packet contains the optional <strong class="strong">Magic Block</strong>.
               <p class="p">
                 The remaining bits are not defined by this standard and are expected to be 0.
                 Non-formal or local uses may utilize these remaining 6 bits as desired.
-                However, there may be additional standards that expand upon this and utilize these remaining <strong class="strong">Control</strong> bits.
-                Anything that utilizes these unused <strong class="strong">Control</strong> bits may add or remove additional <strong class="strong">Blocks</strong> after the <strong class="strong">Control Block</strong> as they see fit.
-                One possible use of the remaining bits is to designate a different variation of this <strong class="strong">Simple Packet</strong> standard.
+                However, there may be additional standards that expand upon this and utilize these remaining Control bits.
+                Anything that utilizes these unused Control bits may add or remove additional Blocks after the <strong class="strong">Control Block</strong> as they see fit.
+                One possible use of the remaining bits is to designate a different variation of this Simple Packet standard.
               </p>
               <p class="p">
-                Size Block Structure:
+                <strong class="strong">Size Block</strong> Structure:
               </p><pre class="preserve">
 [ Size Block    ]
 [ size: 32 bits ]
                 The <strong class="strong">Size Block</strong> is an unsigned 32-bit integer representing the size of the entire packet in bytes, including the <strong class="strong">Control Block</strong> and <strong class="strong">Size Block</strong>.
                 This size must exactly match the packet to be a valid packet.
                 The size represents number of bytes in the file.
-                The <strong class="strong">Control Block</strong> is 1 byte long and the <strong class="strong">Size Block</strong> is 4 bytes long, therefore the maximum available size of the entire <strong class="strong">Simple Packet</strong> structure is <code class="code">(2^32)-6</code>.
-                The <strong class="strong">Magic Block</strong> is 4 bytes long, therefore when the magic bit is set, then the maximum available size of the entire <strong class="strong">Simple Packet</strong> structure is <code class="code">(2^32)-9</code>.
+                The <strong class="strong">Control Block</strong> is 1 byte long and the <strong class="strong">Size Block</strong> is 4 bytes long, therefore the maximum available size of the entire Simple Packet structure is <code class="code">(2^32)-5</code>.
+                The <strong class="strong">Magic Block</strong> is 4 bytes long, therefore when the magic bit is set, then the maximum available size of the entire Simple Packet structure is <code class="code">(2^32)-9</code>.
               </p>
               <p class="p">
-                Magic Block Structure:
+                The reason behind why the size includes both the <strong class="strong">Control Block</strong> and the <strong class="strong">Size Block</strong> in addition to the <strong class="strong">Payload Block</strong> is to avoid the need to perform any calculations for handling the size of the entire packet. The idea here is to optimize the packet for the network hardware transferring the packet. The network device should not need to read the contents of the packet in order to transfer the packet and therefore it only needs the number of the entire packet. Anything that wants to analyze this packet will have to incure the cost of calculating the <strong class="strong">Payload Block</strong> size by performing the appropriate subtraction from the size represented in the <strong class="strong">Size Block</strong>.
+              </p>
+              <p class="p">
+                <strong class="strong">Magic Block</strong> Structure:
               </p><pre class="preserve">
 [ Magic Block   ]
 [ size: 32 bits ]
 </pre>
               <p class="p">
-                The <strong class="strong">Magic Block</strong>  is an unsigned 32-bit digit used to uniquely identify the packet.
+                The <strong class="strong">Magic Block</strong> is an unsigned 32-bit digit used to uniquely identify the packet.
                 The 32-bits are treated as endianless such that the left to right order of the bits is always the same for both big and little endian systems.
-                The <strong class="strong">Magic Block</strong>  is required when the magic bit is set and it must not exist when the magic bit is not set.
+                The <strong class="strong">Magic Block</strong> is required when the magic bit is set and it must not exist when the magic bit is not set.
               </p>
               <p class="p">
                 This offers optimization in identifying the packet and its structure.
                 This is particularly unhelpful for security and privacy given that it helps quickly identify the packet.
               </p>
               <p class="p">
-                Payload Block Structure:
+                <strong class="strong">Payload Block</strong> Structure:
               </p><pre class="preserve">
 [ Payload Block                                                ]
 [ size: (2^32)-5 bytes (or (2^32)-9 bytes if magic bit is set) ]
                 The <code class="code">FSS-000e (Payload)</code> may be represented in either <em class="em">string</em> format or <em class="em">binary</em> format.
                 The <code class="code">FSS-000e (Payload)</code> may contain multiple <em class="em">header</em>(s) but may only contain a single <em class="em">payload</em>.
                 With this in mind, it is recommended that only a single <em class="em">header</em> be supported in the <strong class="strong">Payload Block</strong>.
-                The <em class="em">payload</em> <strong class="strong">Content</strong> may be in either a <em class="em">binary</em> or <em class="em">string</em> format regardless of the <em class="em">binary</em> bit in the <strong class="strong">Simple Packet</strong> <strong class="strong">Header Block</strong>.
+                The <em class="em">payload</em> Content may be in either a <em class="em">binary</em> or <em class="em">string</em> format regardless of the <em class="em">binary</em> bit in the Simple Packet Header Block.
               </p>
               <p class="p">
-                See the <a href="fll/specifications/fss/fss-000e.html" class="link">fss-000e (Payload)</a> specification file for details on the syntax rules for the <strong class="strong">Payload Block</strong>.
+                See the <a href="fll/specifications/fss/fss-000e.html" class="link">FSS-000e (Payload)</a> specification file for details on the syntax rules for the <strong class="strong">Payload Block</strong>.
               </p>
               <p class="p">
                 Example Packet Structure:
index 795d13ddd047d94fae9cee82f6896889694c5af3..19b15f25c2c79934dca551be2f36f2cd2f7976a3 100644 (file)
               <p class="p">
                 The version date of this specification is <code class="code">2023/07/16</code>.
               </p>
+  This is an encrypted form of the network packet format of <code class="code">FSS-000f (Simple Packet)</code>.
+
+  The entire Payload Block is undefined by this standard and is instead defined by the encryption algorithm or standard in use.
+  There is no rule, restriction, requirement, or definition on what encryption can be used.
+  The only rule is that the Payload Block must be of a valid length as defined by the Size Block.
+
+  The general rule is that it can be assumed that the encrypted data in the Payload Block would be of the <code class="code">FSS-000e (Payload)</code> format. Being that the data is supposed to be encrypted, the actual contents of the Payload Block is left undefined.
+
+  The <code class="code">FSS-000f (Simple Packet)</code> that this standard modifies does not require the Payload Block to be in <code class="code">FSS-000e (Payload)</code> format.
+  This standard is even more lax than <code class="code">FSS-000f (Simple Packet)</code> and drops replaces the words <em class="em">should be in</em> from the <code class="code">FSS-000f (Simple Packet)</code> standard and replaces them with <em class="em">could be in</em>.
+
+  This allows for the encrypted data to be anything the user wants, such as but not limited to Hypertext Transfer Protocol.
+
+  When it comes to security, any and all data can be useful. For best encryption, one may want to consider not using this format because of the Control Block and the Size Block are not encrypted.
+
+  The endianness bit should only be used to represent the Size Block to avoid any security concerns. The endianness of the encrypted needs to be determined through some other means for any kind of reasonable security.
+
+  This standard uses the third bit from the left in the Control Block to designate that this is an encrypted packet.
+
+  The 5 remaining control bits are left undefined.
+
+  See the <code class="code">fss-000f.txt</code> specification file for details regarding the <code class="code">FSS-000f (Simple Packet)</code> standard.
+
+  Example Packet Structure:
+    <code class="code">
+    [ Control Block ] [ Size Block                                  ] [ Payload Block         ]
+    [ 0b10100000    ] [ 0b00000000 0b00000000 0b00000100 0b11010010 ] [ size: 1229 (1234 - 5) ]
+    </code>
+
+  In the above example, take note that the third bit in the Control Block is a 1.
+
+
               <p class="p">
                 This is an encrypted form of the network packet format of <code class="code">FSS-000f (Simple Packet)</code>.
               </p>
index d600e4c272e057817e0d26212b2b1495753905d1..d32676137799656e6d5051255a32c57d31743833 100644 (file)
                 IKI is a minimally structured WIKI-like syntax meant to be simpler than WIKI syntax.
               </p>
               <p class="p">
-                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 <em class="em">Object</em>.
-                The variable value is considered the <em class="em">Content</em>.
+                The IKI syntax describes a <em class="em">Variable</em> that is defined by a <em class="em">Vocabulary</em> name followed by quoted value called the <em class="em">Content</em>.
               </p>
               <p class="p">
-                The IKI format will use <code class="code">iki-0000</code> to represent an IKI with no explicitly defined vocabulary.
-                Whereas <code class="code">iki-0001</code> and beyond represent a specific IKI vocabulary.
+                The <em class="em">Variable</em> refers to the <em class="em">Vocabulary</em>, <em class="em">Content</em>, and associated syntax that describes the <em class="em">Variable</em>.
+                The <em class="em">Variable</em> name may be wrapped by a single open bracket, <code class="code">[</code> (<code class="code">U+005B</code>), at the start and a single close bracket, <code class="code">]</code> (<code class="code">U+005D</code>), at the end.
+                The open and close brackets, also called the wrapping characters, for the <em class="em">Variable</em> do not utilize escaping characters and instead any escaping is perform against the colon <code class="code">:</code> (<code class="code">U+003A</code>) that separates the <em class="em">Vocabulary</em> from the <em class="em">Content</em>.
+                The <em class="em">Vocabulary</em> generally defines the context and many of the IKI specifications may provide a discrete set of allowed <em class="em">Vocabulary</em>.
+                The <em class="em">Vocabulary</em> may also be referred to as the <em class="em">Object</em>.
+                The <em class="em">Vocabulary</em> only allows word characters or one of <code class="code">_</code> (<code class="code">U+005F</code>), <code class="code">-</code> (<code class="code">U+002D</code>), <code class="code">+</code> (<code class="code">U+002B</code>), <code class="code">[</code> (<code class="code">U+005B</code>)).
+                White space, non-word, and non <code class="code">_</code> (<code class="code">U+005F</code>), <code class="code">-</code> (<code class="code">U+002D</code>), <code class="code">+</code> (<code class="code">U+002B</code>)) character punctuation 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 (<code class="code">U+2010</code> and <code class="code">U+2011</code>).
+                Unicode punctuation connector characters are supported just like <code class="code">_</code>, except when they connect outside the current line (such as <code class="code">U+FE33</code> <code class="code">︳</code>).
+                The immediate left of a <em class="em">Vocabulary</em> must not be a valid <em class="em">Vocabulary</em> character, unless the <em class="em">Vocabulary</em> is wrapped using the wrapping characters.
+                Unicode invisible punctuation (such as invisible plus: <code class="code">U+2064</code>) are not considered a punctuation in this standard (because they a zero-width characters), therefore they are not to be considered a valid <code class="code">_</code> (<code class="code">U+005F</code>), <code class="code">-</code> (<code class="code">U+002D</code>), or <code class="code">+</code> (<code class="code">U+002B</code>) Unicode equivalents.
               </p>
               <p class="p">
-                A potential IKI variable name starts on word (or <code class="code">_</code>, <code class="code">-</code>, <code class="code">+</code>) characters.
-                White space and non-word (and non <code class="code">_</code>, <code class="code">-</code>, <code class="code">+</code>) 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 (<code class="code">U+2010</code> and <code class="code">U+2011</code>).
+                The wrapping characters characters are not part of the <em class="em">Vocabulary</em> name and instead only provide the syntax used to help identify a valid <em class="em">Variable</em>.
+                The wrapping characters characters are part of the <em class="em">Variable</em>.
+                The wrapping characters do not support escaping.
+                Both wrapping characters must be specified or neither.
               </p>
               <p class="p">
-                Any valid IKI data may be escaped to make it treated as non-IKI data by prepending a backslash <code class="code">" before the colon code:</code>:" that is before the opening quote (single or double).
+                The <em class="em">Content</em> refers to the value of the <em class="em">Variable</em>.
+                The <em class="em">Content</em> is wrapped one of the following quote characters: single quote <code class="code">'</code> (<code class="code">U+0027</code>), double quote <code class="code">"</code> (<code class="code">U+0022</code>), or grave <code class="code">`</code> (<code class="code">U+0060</code>).
+                The <em class="em">Content</em> must escape any quotes that match the open and close quote used for the <em class="em">Variable</em> by utilizing a backslash <code class="code">\</code> (<code class="code">U+005C</code>).
+                If a matching closing quote is not found until the end of the data (or file), then this unclosed <em class="em">Variable</em> is considered invalid.
+                The handling of this erroneous case is left to the implementation.
               </p>
               <p class="p">
-                Unicode punctuation connector characters are supported just like <code class="code">_</code>, except when they connect outside the current line (such as <code class="code">U+FE33</code> <code class="code">︳</code>).
-                Unicode invisible punctuations (such as invisible plus: <code class="code">U+2064</code>) are not considered a punctuations in this standard (because they a zero-width characters), therefore they are not to be considered a valid <code class="code">_</code>, <code class="code">-</code>, or <code class="code">+</code> Unicode equivalents.
+                The backslashes used for escaping quotes use <code class="code">\</code> (<code class="code">U+005C</code>).
+                Unless otherwise specified, these backslash escapes are performed only when required and not unilaterally.
+                One backslash escapes the valid quote, resulting in the quote being part of the <em class="em">Content</em>.
+                Two backslashes escape the backslash, resulting in the backslash (but not the quote) being part of the <em class="em">Content</em>.
+                An odd number of backslashes before a valid quote results in the backslashes and the quote being escaped.
+                An even number of backslashes before a valid quote results in the backslashes but not the quote being escaped.
+              </p>
+              <p class="p">
+                The IKI format will use <code class="code">iki-0000</code> to represent an IKI with no explicitly defined vocabulary.
+                Whereas <code class="code">iki-0001</code> and beyond represent a specific IKI vocabulary.
               </p>
               <p class="p">
                 Key:
               </p>
               <ul>
-                  <li><code class="code">\o</code> = any printable word character, including <code class="code">_</code>, <code class="code">-</code>, <code class="code">+</code> (and Unicode equivalents).</li>
-                  <li><code class="code">\c</code> = 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.</li>
-                  <li><code class="code">\q</code> = either a single quote <code class="code">'</code> or a double quote <code class="code">"</code>.</li>
-                  <li><code class="code">\x</code> = any character.</li>
-                  <li><code class="code">\W</code> = any non-word character, discluding <code class="code">_</code>, <code class="code">-</code>, <code class="code">+</code> (and Unicode equivalents).</li>
-                  <li><code class="code">\e</code> = an optional escape sequence of any number of backslashes, such as <code class="code">\</code>.</li>
-                  <li><code class="code">*</code> = zero or more occurrences.</li>
-                  <li><code class="code">~</code> = one or more occurrences, or zero if at start of file.</li>
+                <li><code class="code">\o</code> = any printable word character, including <code class="code">_</code> (<code class="code">U+005F</code>), <code class="code">-</code> (<code class="code">U+002D</code>), <code class="code">+</code> (<code class="code">U+002B</code>) (and Unicode equivalents).</li>
+                <li><code class="code">\c</code> = any character, including white space and non-printing, and any escaped quote (used as the opening quote) or a any quote (unescaped) not used as the opening quote.</li>
+                <li><code class="code">\q</code> = either a single quote <code class="code">'</code> (<code class="code">U+0027</code>), a double quote <code class="code">"</code> (<code class="code">U+0022</code>), or a grave <code class="code">`</code> (<code class="code">U+0060</code>).</li>
+                <li><code class="code">\x</code> = any character.</li>
+                <li><code class="code">\W</code> = any non-word character, discluding <code class="code">_</code> (<code class="code">U+005F</code>) (and Unicode equivalents), <code class="code">-</code> (<code class="code">U+002D</code>) (and Unicode equivalents), and <code class="code">+</code> (<code class="code">U+002B</code>) (and Unicode equivalents).</li>
+                <li><code class="code">\e</code> = an optional escape sequence of any number of backslashes, such as <code class="code">\</code> (<code class="code">U+005C</code>).</li>
+                <li><code class="code">[</code> = a single (conditionally optional) open bracket, <code class="code">[</code> (<code class="code">U+005B</code>).</li>
+                <li><code class="code">]</code> = a single (conditionally optional) close bracket, <code class="code">]</code> (<code class="code">U+005D</code>).</li>
+                <li><code class="code">*</code> = zero or more occurrences.</li>
+                <li><code class="code">~</code> = one or more occurrences, or zero if at start of file.</li>
+                <li><code class="code">+</code> = one or more occurrences.</li>
+                <li><code class="code">:</code> = The colon <code class="code">:</code> (<code class="code">U+003A</code>).</li>
               </ul>
               <p class="p">
                 Before Structure:
               </p>
               <ul>
-                <li><code class="code">\x*\W~\*:*</code></li>
+                <li><code class="code">\x*\W~</code></li>
               </ul>
               <p class="p">
                 Structure:
               </p>
-              <ul>
-                <li><code class="code">\o\e:\q\c\q</code></li>
-              </ul>
+              <p class="p">
+                <li><code class="code">[\o+]\e:\q\c\q</code></li>
+              </p>
               <p class="p">
                 After Structure:
               </p>
               </p><pre class="preserve">
 # fss-000c iki-0000
 
-This is my sentence, anything can go here but sometimes I want to emphasis:"emphasize some text".
+This is my sentence, anything can go here but sometimes I want to italic:"emphasize some text".
 
-Other times I want to render a url such as this example url: url:'http://www.example.com/url with space/'.
+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).
+There are no comments, except for maybe the FSS:"Featureless Settings Specification" 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".
+The following italic\:"is escaped to not be treated as IKI Variable".
+
+The conditionally optional open and close brackets allow for putting a variable directly next to another word character like: [context]:"bold"this[context]:"bold".
+
+These are examples of escapes: one:"\" escape", two:"\\" escape", three:"\\\" escape", six:"\\\\\\" escape".
+
+These are examples of non-escapes: one:"\' escape", two:"\\' escape", three:"\\\' escape", six:"\\\\\\' escape".
+
+These slashes \ \\ \\\ are not escaped because there is now quote immediately after each of them.
 </pre>
               <p class="p">
                 Example Results:
-              </p><pre class="preserve margin-below">
-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.";
+              </p><pre class="preserve">
+Objects (also called vocabulary or variable name) would be:
+   1.1) italic
+   2.1) URL
+   3.1) FSS
+   4.1) code
+   5.1) context
+   6.1) context
+   7.1) one
+   8.1) two
+   9.1) three
+  10.1) six
+  11.1) one
+  12.1) two
+  13.1) three
+  14.1) six
+
+Contents (also called variable value) would be:
+   1.1) emphasize some text
+   2.1) http://www.example.com/url with space/
+   3.1) Featureless Settings Specification
+   4.1) const char *string = "My \"quoted\" C string.";
+   5.1) bold
+   6.1) bold
+   7.1) " escape
+   8.1) \
+   9.1) \" escape
+  10.1) \\\
+  11.1) \' escape
+  12.1) \\' escape
+  13.1) \\\' escape
+  14.1) \\\\\\' escape
 </pre>
             </div>
           </section>
index 98c5c28daee86b512011829fb0c44b1046708d0e..1e75138ed4147ba3e9196d7897f1796d7f9c47be 100644 (file)
                 IKI is a minimally structured WIKI-like syntax meant to be simpler than WIKI syntax.
               </p>
               <p class="p">
-                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 <em class="em">Object</em>.
-                The variable value is considered the <em class="em">Content</em>.
+                The IKI syntax describes a <em class="em">Variable</em> that is defined by a <em class="em">Vocabulary</em> name followed by quoted value called the <em class="em">Content</em>.
               </p>
               <p class="p">
-                The IKI format will use <code class="code">iki-0000</code> to represent an IKI with no explicitly defined vocabulary.
-                Whereas <code class="code">iki-0001</code> and beyond represent a specific IKI vocabulary.
+                The <em class="em">Variable</em> refers to the <em class="em">Vocabulary</em>, <em class="em">Content</em>, and associated syntax that describes the <em class="em">Variable</em>.
+                The <em class="em">Variable</em> name may be wrapped by a single open bracket, <code class="code">[</code> (<code class="code">U+005B</code>), at the start and a single close bracket, <code class="code">]</code> (<code class="code">U+005D</code>), at the end.
+                The open and close brackets, also called the wrapping characters, for the <em class="em">Variable</em> do not utilize escaping characters and instead any escaping is perform against the colon <code class="code">:</code> (<code class="code">U+003A</code>) that separates the <em class="em">Vocabulary</em> from the <em class="em">Content</em>.
+                The <em class="em">Vocabulary</em> generally defines the context and many of the IKI specifications may provide a discrete set of allowed <em class="em">Vocabulary</em>.
+                The <em class="em">Vocabulary</em> may also be referred to as the <em class="em">Object</em>.
+                The <em class="em">Vocabulary</em> only allows word characters or one of <code class="code">_</code> (<code class="code">U+005F</code>), <code class="code">-</code> (<code class="code">U+002D</code>), <code class="code">+</code> (<code class="code">U+002B</code>), <code class="code">[</code> (<code class="code">U+005B</code>)).
+                White space, non-word, and non <code class="code">_</code> (<code class="code">U+005F</code>), <code class="code">-</code> (<code class="code">U+002D</code>), <code class="code">+</code> (<code class="code">U+002B</code>)) character punctuation 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 (<code class="code">U+2010</code> and <code class="code">U+2011</code>).
+                Unicode punctuation connector characters are supported just like <code class="code">_</code>, except when they connect outside the current line (such as <code class="code">U+FE33</code> <code class="code">︳</code>).
+                The immediate left of a <em class="em">Vocabulary</em> must not be a valid <em class="em">Vocabulary</em> character, unless the <em class="em">Vocabulary</em> is wrapped using the wrapping characters.
+                Unicode invisible punctuation (such as invisible plus: <code class="code">U+2064</code>) are not considered a punctuation in this standard (because they a zero-width characters), therefore they are not to be considered a valid <code class="code">_</code> (<code class="code">U+005F</code>), <code class="code">-</code> (<code class="code">U+002D</code>), or <code class="code">+</code> (<code class="code">U+002B</code>) Unicode equivalents.
               </p>
               <p class="p">
-                A potential IKI variable name starts on word (or <code class="code">_</code>, <code class="code">-</code>, <code class="code">+</code>) characters.
-                White space and non-word (and non <code class="code">_</code>, <code class="code">-</code>, <code class="code">+</code>) 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 (<code class="code">U+2010</code> and <code class="code">U+2011</code>).
+                The wrapping characters characters are not part of the <em class="em">Vocabulary</em> name and instead only provide the syntax used to help identify a valid <em class="em">Variable</em>.
+                The wrapping characters characters are part of the <em class="em">Variable</em>.
+                The wrapping characters do not support escaping.
+                Both wrapping characters must be specified or neither.
               </p>
               <p class="p">
-                Any valid IKI data may be escaped to make it treated as non-IKI data by prepending a backslash <code class="code">" before the colon code:</code>:" that is before the opening quote (single or double).
+                The <em class="em">Content</em> refers to the value of the <em class="em">Variable</em>.
+                The <em class="em">Content</em> is wrapped one of the following quote characters: single quote <code class="code">'</code> (<code class="code">U+0027</code>), double quote <code class="code">"</code> (<code class="code">U+0022</code>), or grave <code class="code">`</code> (<code class="code">U+0060</code>).
+                The <em class="em">Content</em> must escape any quotes that match the open and close quote used for the <em class="em">Variable</em> by utilizing a backslash <code class="code">\</code> (<code class="code">U+005C</code>).
+                If a matching closing quote is not found until the end of the data (or file), then this unclosed <em class="em">Variable</em> is considered invalid.
+                The handling of this erroneous case is left to the implementation.
               </p>
               <p class="p">
-                Unicode punctuation connector characters are supported just like <code class="code">_</code>, except when they connect outside the current line (such as <code class="code">U+FE33</code> <code class="code">︳</code>).
-                Unicode invisible punctuations (such as invisible plus: <code class="code">U+2064</code>) are not considered a punctuations in this standard (because they a zero-width characters), therefore they are not to be considered a valid <code class="code">_</code>, <code class="code">-</code>, or <code class="code">+</code> Unicode equivalents.
+                The backslashes used for escaping quotes use <code class="code">\</code> (<code class="code">U+005C</code>).
+                Unless otherwise specified, these backslash escapes are performed only when required and not unilaterally.
+                One backslash escapes the valid quote, resulting in the quote being part of the <em class="em">Content</em>.
+                Two backslashes escape the backslash, resulting in the backslash (but not the quote) being part of the <em class="em">Content</em>.
+                An odd number of backslashes before a valid quote results in the backslashes and the quote being escaped.
+                An even number of backslashes before a valid quote results in the backslashes but not the quote being escaped.
+              </p>
+              <p class="p">
+                The IKI format will use <code class="code">iki-0000</code> to represent an IKI with no explicitly defined vocabulary.
+                Whereas <code class="code">iki-0001</code> and beyond represent a specific IKI vocabulary.
               </p>
               <p class="p">
                 Key:
               </p>
               <ul>
-                  <li><code class="code">\o</code> = any printable word character, including <code class="code">_</code>, <code class="code">-</code>, <code class="code">+</code> (and Unicode equivalents).</li>
-                  <li><code class="code">\c</code> = 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.</li>
-                  <li><code class="code">\q</code> = either a single quote <code class="code">'</code> or a double quote <code class="code">"</code>.</li>
-                  <li><code class="code">\x</code> = any character.</li>
-                  <li><code class="code">\W</code> = any non-word character, discluding <code class="code">_</code>, <code class="code">-</code>, <code class="code">+</code> (and Unicode equivalents).</li>
-                  <li><code class="code">\e</code> = an optional escape sequence of any number of backslashes, such as <code class="code">\</code>.</li>
-                  <li><code class="code">*</code> = zero or more occurrences.</li>
-                  <li><code class="code">~</code> = one or more occurrences, or zero if at start of file.</li>
+                <li><code class="code">\o</code> = any printable word character, including <code class="code">_</code> (<code class="code">U+005F</code>), <code class="code">-</code> (<code class="code">U+002D</code>), <code class="code">+</code> (<code class="code">U+002B</code>) (and Unicode equivalents).</li>
+                <li><code class="code">\c</code> = any character, including white space and non-printing, and any escaped quote (used as the opening quote) or a any quote (unescaped) not used as the opening quote.</li>
+                <li><code class="code">\q</code> = either a single quote <code class="code">'</code> (<code class="code">U+0027</code>), a double quote <code class="code">"</code> (<code class="code">U+0022</code>), or a grave <code class="code">`</code> (<code class="code">U+0060</code>).</li>
+                <li><code class="code">\x</code> = any character.</li>
+                <li><code class="code">\W</code> = any non-word character, discluding <code class="code">_</code> (<code class="code">U+005F</code>) (and Unicode equivalents), <code class="code">-</code> (<code class="code">U+002D</code>) (and Unicode equivalents), and <code class="code">+</code> (<code class="code">U+002B</code>) (and Unicode equivalents).</li>
+                <li><code class="code">\e</code> = an optional escape sequence of any number of backslashes, such as <code class="code">\</code> (<code class="code">U+005C</code>).</li>
+                <li><code class="code">[</code> = a single (conditionally optional) open bracket, <code class="code">[</code> (<code class="code">U+005B</code>).</li>
+                <li><code class="code">]</code> = a single (conditionally optional) close bracket, <code class="code">]</code> (<code class="code">U+005D</code>).</li>
+                <li><code class="code">*</code> = zero or more occurrences.</li>
+                <li><code class="code">~</code> = one or more occurrences, or zero if at start of file.</li>
+                <li><code class="code">+</code> = one or more occurrences.</li>
+                <li><code class="code">:</code> = The colon <code class="code">:</code> (<code class="code">U+003A</code>).</li>
               </ul>
               <p class="p">
                 Before Structure:
               </p>
               <ul>
-                <li><code class="code">\x*\W~\*:*</code></li>
+                <li><code class="code">\x*\W~</code></li>
               </ul>
               <p class="p">
                 Structure:
               </p>
-              <ul>
-                <li><code class="code">\o\e:\q\c\q</code></li>
-              </ul>
+              <p class="p">
+                <li><code class="code">[\o+]\e:\q\c\q</code></li>
+              </p>
               <p class="p">
                 After Structure:
               </p>
               <p class="p">
                 Example File:
               </p><pre class="preserve">
-# fss-000c iki-0001
+# fss-000c iki-0000
 
-This is my sentence, anything can go here but sometimes I want to emphasis:"emphasize some text".
+This is my sentence, anything can go here but sometimes I want to italic:"emphasize some text".
 
-Other times I want to render a url such as this example url: url:'http://www.example.com/url with space/'.
+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).
+There are no comments, except for maybe the FSS:"Featureless Settings Specification" 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".
+The following italic\:"is escaped to not be treated as IKI Variable".
+
+The conditionally optional open and close brackets allow for putting a variable directly next to another word character like: [context]:"bold"this[context]:"bold".
+
+These are examples of escapes: one:"\" escape", two:"\\" escape", three:"\\\" escape", six:"\\\\\\" escape".
+
+These are examples of non-escapes: one:"\' escape", two:"\\' escape", three:"\\\' escape", six:"\\\\\\' escape".
+
+These slashes \ \\ \\\ are not escaped because there is now quote immediately after each of them.
 </pre>
               <p class="p">
                 Example Results:
-              </p><pre class="preserve margin-below">
-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.";
+              </p><pre class="preserve">
+Objects (also called vocabulary or variable name) would be:
+   1.1) italic
+   2.1) URL
+   3.1) FSS
+   4.1) code
+   5.1) context
+   6.1) context
+   7.1) one
+   8.1) two
+   9.1) three
+  10.1) six
+  11.1) one
+  12.1) two
+  13.1) three
+  14.1) six
+
+Contents (also called variable value) would be:
+   1.1) emphasize some text
+   2.1) http://www.example.com/url with space/
+   3.1) Featureless Settings Specification
+   4.1) const char *string = "My \"quoted\" C string.";
+   5.1) bold
+   6.1) bold
+   7.1) " escape
+   8.1) \
+   9.1) \" escape
+  10.1) \\\
+  11.1) \' escape
+  12.1) \\' escape
+  13.1) \\\' escape
+  14.1) \\\\\\' escape
 </pre>
             </div>
           </section>
index 6c7e72d45f285427a41d1c0de7a9b94cc0c7235b..f187129555c52f28fe02f7180b1f0e5ea607eace 100644 (file)
                 IKI is a minimally structured WIKI-like syntax meant to be simpler than WIKI syntax.
               </p>
               <p class="p">
-                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 <em class="em">Object</em>.
-                The variable value is considered the <em class="em">Content</em>.
+                The IKI syntax describes a <em class="em">Variable</em> that is defined by a <em class="em">Vocabulary</em> name followed by quoted value called the <em class="em">Content</em>.
               </p>
               <p class="p">
-                The IKI format will use <code class="code">iki-0000</code> to represent an IKI with no explicitly defined vocabulary.
-                Whereas <code class="code">iki-0001</code> and beyond represent a specific IKI vocabulary.
+                The <em class="em">Variable</em> refers to the <em class="em">Vocabulary</em>, <em class="em">Content</em>, and associated syntax that describes the <em class="em">Variable</em>.
+                The <em class="em">Variable</em> name may be wrapped by a single open bracket, <code class="code">[</code> (<code class="code">U+005B</code>), at the start and a single close bracket, <code class="code">]</code> (<code class="code">U+005D</code>), at the end.
+                The open and close brackets, also called the wrapping characters, for the <em class="em">Variable</em> do not utilize escaping characters and instead any escaping is perform against the colon <code class="code">:</code> (<code class="code">U+003A</code>) that separates the <em class="em">Vocabulary</em> from the <em class="em">Content</em>.
+                The <em class="em">Vocabulary</em> generally defines the context and many of the IKI specifications may provide a discrete set of allowed <em class="em">Vocabulary</em>.
+                The <em class="em">Vocabulary</em> may also be referred to as the <em class="em">Object</em>.
+                The <em class="em">Vocabulary</em> only allows word characters or one of <code class="code">_</code> (<code class="code">U+005F</code>), <code class="code">-</code> (<code class="code">U+002D</code>), <code class="code">+</code> (<code class="code">U+002B</code>), <code class="code">[</code> (<code class="code">U+005B</code>)).
+                White space, non-word, and non <code class="code">_</code> (<code class="code">U+005F</code>), <code class="code">-</code> (<code class="code">U+002D</code>), <code class="code">+</code> (<code class="code">U+002B</code>)) character punctuation 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 (<code class="code">U+2010</code> and <code class="code">U+2011</code>).
+                Unicode punctuation connector characters are supported just like <code class="code">_</code>, except when they connect outside the current line (such as <code class="code">U+FE33</code> <code class="code">︳</code>).
+                The immediate left of a <em class="em">Vocabulary</em> must not be a valid <em class="em">Vocabulary</em> character, unless the <em class="em">Vocabulary</em> is wrapped using the wrapping characters.
+                Unicode invisible punctuation (such as invisible plus: <code class="code">U+2064</code>) are not considered a punctuation in this standard (because they a zero-width characters), therefore they are not to be considered a valid <code class="code">_</code> (<code class="code">U+005F</code>), <code class="code">-</code> (<code class="code">U+002D</code>), or <code class="code">+</code> (<code class="code">U+002B</code>) Unicode equivalents.
               </p>
               <p class="p">
-                A potential IKI variable name starts on word (or <code class="code">_</code>, <code class="code">-</code>, <code class="code">+</code>) characters.
-                White space and non-word (and non <code class="code">_</code>, <code class="code">-</code>, <code class="code">+</code>) 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 (<code class="code">U+2010</code> and <code class="code">U+2011</code>).
+                The wrapping characters characters are not part of the <em class="em">Vocabulary</em> name and instead only provide the syntax used to help identify a valid <em class="em">Variable</em>.
+                The wrapping characters characters are part of the <em class="em">Variable</em>.
+                The wrapping characters do not support escaping.
+                Both wrapping characters must be specified or neither.
               </p>
               <p class="p">
-                Any valid IKI data may be escaped to make it treated as non-IKI data by prepending a backslash <code class="code">" before the colon code:</code>:" that is before the opening quote (single or double).
+                The <em class="em">Content</em> refers to the value of the <em class="em">Variable</em>.
+                The <em class="em">Content</em> is wrapped one of the following quote characters: single quote <code class="code">'</code> (<code class="code">U+0027</code>), double quote <code class="code">"</code> (<code class="code">U+0022</code>), or grave <code class="code">`</code> (<code class="code">U+0060</code>).
+                The <em class="em">Content</em> must escape any quotes that match the open and close quote used for the <em class="em">Variable</em> by utilizing a backslash <code class="code">\</code> (<code class="code">U+005C</code>).
+                If a matching closing quote is not found until the end of the data (or file), then this unclosed <em class="em">Variable</em> is considered invalid.
+                The handling of this erroneous case is left to the implementation.
               </p>
               <p class="p">
-                Unicode punctuation connector characters are supported just like <code class="code">_</code>, except when they connect outside the current line (such as <code class="code">U+FE33</code> <code class="code">︳</code>).
-                Unicode invisible punctuations (such as invisible plus: <code class="code">U+2064</code>) are not considered a punctuations in this standard (because they a zero-width characters), therefore they are not to be considered a valid <code class="code">_</code>, <code class="code">-</code>, or <code class="code">+</code> Unicode equivalents.
+                The backslashes used for escaping quotes use <code class="code">\</code> (<code class="code">U+005C</code>).
+                Unless otherwise specified, these backslash escapes are performed only when required and not unilaterally.
+                One backslash escapes the valid quote, resulting in the quote being part of the <em class="em">Content</em>.
+                Two backslashes escape the backslash, resulting in the backslash (but not the quote) being part of the <em class="em">Content</em>.
+                An odd number of backslashes before a valid quote results in the backslashes and the quote being escaped.
+                An even number of backslashes before a valid quote results in the backslashes but not the quote being escaped.
+              </p>
+              <p class="p">
+                The IKI format will use <code class="code">iki-0000</code> to represent an IKI with no explicitly defined vocabulary.
+                Whereas <code class="code">iki-0001</code> and beyond represent a specific IKI vocabulary.
               </p>
               <p class="p">
                 Key:
               </p>
               <ul>
-                  <li><code class="code">\o</code> = any printable word character, including <code class="code">_</code>, <code class="code">-</code>, <code class="code">+</code> (and Unicode equivalents).</li>
-                  <li><code class="code">\c</code> = 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.</li>
-                  <li><code class="code">\q</code> = either a single quote <code class="code">'</code> or a double quote <code class="code">"</code>.</li>
-                  <li><code class="code">\x</code> = any character.</li>
-                  <li><code class="code">\W</code> = any non-word character, discluding <code class="code">_</code>, <code class="code">-</code>, <code class="code">+</code> (and Unicode equivalents).</li>
-                  <li><code class="code">\e</code> = an optional escape sequence of any number of backslashes, such as <code class="code">\</code>.</li>
-                  <li><code class="code">*</code> = zero or more occurrences.</li>
-                  <li><code class="code">~</code> = one or more occurrences, or zero if at start of file.</li>
+                <li><code class="code">\o</code> = any printable word character, including <code class="code">_</code> (<code class="code">U+005F</code>), <code class="code">-</code> (<code class="code">U+002D</code>), <code class="code">+</code> (<code class="code">U+002B</code>) (and Unicode equivalents).</li>
+                <li><code class="code">\c</code> = any character, including white space and non-printing, and any escaped quote (used as the opening quote) or a any quote (unescaped) not used as the opening quote.</li>
+                <li><code class="code">\q</code> = either a single quote <code class="code">'</code> (<code class="code">U+0027</code>), a double quote <code class="code">"</code> (<code class="code">U+0022</code>), or a grave <code class="code">`</code> (<code class="code">U+0060</code>).</li>
+                <li><code class="code">\x</code> = any character.</li>
+                <li><code class="code">\W</code> = any non-word character, discluding <code class="code">_</code> (<code class="code">U+005F</code>) (and Unicode equivalents), <code class="code">-</code> (<code class="code">U+002D</code>) (and Unicode equivalents), and <code class="code">+</code> (<code class="code">U+002B</code>) (and Unicode equivalents).</li>
+                <li><code class="code">\e</code> = an optional escape sequence of any number of backslashes, such as <code class="code">\</code> (<code class="code">U+005C</code>).</li>
+                <li><code class="code">[</code> = a single (conditionally optional) open bracket, <code class="code">[</code> (<code class="code">U+005B</code>).</li>
+                <li><code class="code">]</code> = a single (conditionally optional) close bracket, <code class="code">]</code> (<code class="code">U+005D</code>).</li>
+                <li><code class="code">*</code> = zero or more occurrences.</li>
+                <li><code class="code">~</code> = one or more occurrences, or zero if at start of file.</li>
+                <li><code class="code">+</code> = one or more occurrences.</li>
+                <li><code class="code">:</code> = The colon <code class="code">:</code> (<code class="code">U+003A</code>).</li>
               </ul>
               <p class="p">
                 Before Structure:
               </p>
               <ul>
-                <li><code class="code">\x*\W~\*:*</code></li>
+                <li><code class="code">\x*\W~</code></li>
               </ul>
               <p class="p">
                 Structure:
               </p>
-              <ul>
-                <li><code class="code">\o\e:\q\c\q</code></li>
-              </ul>
+              <p class="p">
+                <li><code class="code">[\o+]\e:\q\c\q</code></li>
+              </p>
               <p class="p">
                 After Structure:
               </p>
               </p><pre class="preserve">
 # fss-000c iki-0000
 
-This is my sentence, anything can go here but sometimes I want to emphasis:"emphasize some text".
+This is my sentence, anything can go here but sometimes I want to italic:"emphasize some text".
 
-Other times I want to render a url such as this example url: url:'http://www.example.com/url with space/'.
+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).
+There are no comments, except for maybe the FSS:"Featureless Settings Specification" 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".
+The following italic\:"is escaped to not be treated as IKI Variable".
+
+The conditionally optional open and close brackets allow for putting a variable directly next to another word character like: [context]:"bold"this[context]:"bold".
+
+These are examples of escapes: one:"\" escape", two:"\\" escape", three:"\\\" escape", six:"\\\\\\" escape".
+
+These are examples of non-escapes: one:"\' escape", two:"\\' escape", three:"\\\' escape", six:"\\\\\\' escape".
+
+These slashes \ \\ \\\ are not escaped because there is now quote immediately after each of them.
 </pre>
               <p class="p">
                 Example Results:
-              </p><pre class="preserve margin-below">
-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.";
+              </p><pre class="preserve">
+Objects (also called vocabulary or variable name) would be:
+   1.1) italic
+   2.1) URL
+   3.1) FSS
+   4.1) code
+   5.1) context
+   6.1) context
+   7.1) one
+   8.1) two
+   9.1) three
+  10.1) six
+  11.1) one
+  12.1) two
+  13.1) three
+  14.1) six
+
+Contents (also called variable value) would be:
+   1.1) emphasize some text
+   2.1) http://www.example.com/url with space/
+   3.1) Featureless Settings Specification
+   4.1) const char *string = "My \"quoted\" C string.";
+   5.1) bold
+   6.1) bold
+   7.1) " escape
+   8.1) \
+   9.1) \" escape
+  10.1) \\\
+  11.1) \' escape
+  12.1) \\' escape
+  13.1) \\\' escape
+  14.1) \\\\\\' escape
 </pre>
             </div>
           </section>