From 344e2d5e754b3dd4402075fa39bae8b232ee7936 Mon Sep 17 00:00:00 2001 From: Kevin Day Date: Sat, 24 Oct 2020 18:08:19 -0500 Subject: [PATCH] Update: remove explicit FSS JSON specification. The JSON format is specifically different in certain ways. The Extended List is already as close as can be, so use that instead. This moves IKI Text from FSS-000D to FSS-000C. --- specifications/fss-000B.txt | 9 ++----- specifications/fss-000C.txt | 61 +++++++++++++++++++++++++++++++++++++++++++-- specifications/fss-000D.txt | 61 --------------------------------------------- specifications/fss.txt | 5 ++-- specifications/iki.txt | 2 +- 5 files changed, 64 insertions(+), 74 deletions(-) delete mode 100644 specifications/fss-000D.txt diff --git a/specifications/fss-000B.txt b/specifications/fss-000B.txt index 3f02c43..aca97cb 100644 --- a/specifications/fss-000B.txt +++ b/specifications/fss-000B.txt @@ -1,9 +1,4 @@ # fss-0002 -Featureless Settings Specification: 000B - Simple Json: - TODO: this will be implemented such that it is as closely FSS compliant form of JSON. - - It is not intended to be identical to JSON nor a JSON replacement. - It is intended to be a subset of JSON that follows the FSS practices. - (An FSS format that can be imported as JSON with no functional changes to the data). - This will likely be a more specific form of fss-0008 Embedded List, except additional tweaks added to accommodate JSON requirements. +Featureless Settings Specification: 000C - Simple List: + This might be similar to fss-0008 - Embedded List, except it is an fss-0003 Extended List with a (non-recursive) fss-0002 Basic List inside the Content. diff --git a/specifications/fss-000C.txt b/specifications/fss-000C.txt index aca97cb..15d734a 100644 --- a/specifications/fss-000C.txt +++ b/specifications/fss-000C.txt @@ -1,4 +1,61 @@ # fss-0002 -Featureless Settings Specification: 000C - Simple List: - This might be similar to fss-0008 - Embedded List, except it is an fss-0003 Extended List with a (non-recursive) fss-0002 Basic List inside the Content. +Featureless Settings Specification: 000C - Iki Text: + IKI is an unstructured WIKI-like syntax meant to be simpler than WIKI syntax. + This fss specification represents a plain text file not following any special FSS structure but instead supports the IKI syntax. + The IKI syntax may be used in any FSS specification and the specific vocabulary is defined by appending + + For compatibility with the FSS terminology, the Vocabulary Name is to be considered the Object and the Vocabulary value is to be considered the Content. + + There is no requirement for any specific IKI vocabulary by this standard only that the given syntax is supported. + To specify the IKI vocabulary being used append the IKI vocabulary header immediately after the fss header like such: "# fss-000c iki-0001". + + The IKI syntax provides a vocabulary name with specific context associated with it followed by quoted code that is represented by the given vocabulary name. + The vocabulary represents a list of allowed object names that may also have specific contextual meaning defined by a given IKI specification. + + When IKI is encapsulated inside any FSS format, the parent FSS format rules apply and must take precedence. + Therefore additional escaping may be required. + As for this FSS format (FSS-000C), there is no structure and therefore only the IKI syntax rules apply. + + The IKI format will use IKI-0000 to represent an IKI with no explicitly defined vocabulary. + Whereas IKI-0001 and beyond represent a specific IKI vocabulary. + + Whitespace, non-word (and non "_", "-", "+") character punctuations, or the start of file must exist before any valid variable name. + Whitespace and non-word (and non "_", "-", "+") character punctuations may not exist as part of the variable name. + The only Unicode dash-like characters allowed as a "dash" are those intended to connect, such as the Unicode hyphens (U+2010 and U+2011). + + Unicode punctuation connector characters are supported just like "_", except when they connect outside the current line (such as U+FE33 "︳"). + Unicode invisible punctuations (such as invisible plus: U+2064) are not considered a punctuations in this standard (because they a zero-width characters), therefore they are not to be considered a valid '_', '-', or '+' Unicode equivalents. + + Key\: + \o = any printable word character, including "_", "-", "+" (and Unicode equivalents). + \c = any character, including whitespace and non-printing, and any delimited quote (used as the opening quote) or a any quote (undelimited) not used as the opening quote. + \q = either a single quote (') or a double quote ("). + \x = any character. + \W = any non-word character, discluding "_", "-", "+" (and Unicode equivalents). + * = 0 or more occurrences. + ~ = one or more occurrences, or 0 if at start of file. + + Structure\: + \x*\W~\o:\q\c\q + + Example\: + # fss-000c iki-0000 + + This is my sentence, anything can go here but sometimes I want to emphasis:"emphasize some text". + + Other times I want to render a url such as this example url: url:'http://www.example.com/url with space/'. + + There are no comments, except for maybe the FSS header (which would not resolve to any IKI syntax anyway). + + Quotes may be included, such as: code:"const char *string = \"My \\\"quoted\\\" C string.\";". + + 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."; diff --git a/specifications/fss-000D.txt b/specifications/fss-000D.txt deleted file mode 100644 index db1b6a4..0000000 --- a/specifications/fss-000D.txt +++ /dev/null @@ -1,61 +0,0 @@ -# fss-0002 - -Featureless Settings Specification: 000D - Iki Text: - IKI is an unstructured WIKI-like syntax meant to be simpler than WIKI syntax. - This fss specification represents a plain text file not following any special FSS structure but instead supports the IKI syntax. - The IKI syntax may be used in any FSS specification and the specific vocabulary is defined by appending - - For compatibility with the FSS terminology, the Vocabulary Name is to be considered the Object and the Vocabulary value is to be considered the Content. - - There is no requirement for any specific IKI vocabulary by this standard only that the given syntax is supported. - To specify the IKI vocabulary being used append the IKI vocabulary header immediately after the fss header like such: "# fss-000d iki-0001". - - The IKI syntax provides a vocabulary name with specific context associated with it followed by quoted code that is represented by the given vocabulary name. - The vocabulary represents a list of allowed object names that may also have specific contextual meaning defined by a given IKI specification. - - When IKI is encapsulated inside any FSS format, the parent FSS format rules apply and must take precedence. - Therefore additional escaping may be required. - As for this FSS format (FSS-000D), there is no structure and therefore only the IKI syntax rules apply. - - The IKI format will use IKI-0000 to represent an IKI with no explicitly defined vocabulary. - Whereas IKI-0001 and beyond represent a specific IKI vocabulary. - - Whitespace, non-word (and non "_", "-", "+") character punctuations, or the start of file must exist before any valid variable name. - Whitespace and non-word (and non "_", "-", "+") character punctuations may not exist as part of the variable name. - The only Unicode dash-like characters allowed as a "dash" are those intended to connect, such as the Unicode hyphens (U+2010 and U+2011). - - Unicode punctuation connector characters are supported just like "_", except when they connect outside the current line (such as U+FE33 "︳"). - Unicode invisible punctuations (such as invisible plus: U+2064) are not considered a punctuations in this standard (because they a zero-width characters), therefore they are not to be considered a valid '_', '-', or '+' Unicode equivalents. - - Key\: - \o = any printable word character, including "_", "-", "+" (and Unicode equivalents). - \c = any character, including whitespace and non-printing, and any delimited quote (used as the opening quote) or a any quote (undelimited) not used as the opening quote. - \q = either a single quote (') or a double quote ("). - \x = any character. - \W = any non-word character, discluding "_", "-", "+" (and Unicode equivalents). - * = 0 or more occurrences. - ~ = one or more occurrences, or 0 if at start of file. - - Structure\: - \x*\W~\o:\q\c\q - - Example\: - # fss-000d iki-0000 - - This is my sentence, anything can go here but sometimes I want to emphasis:"emphasize some text". - - Other times I want to render a url such as this example url: url:'http://www.example.com/url with space/'. - - There are no comments, except for maybe the FSS header (which would not resolve to any IKI syntax anyway). - - Quotes may be included, such as: code:"const char *string = \"My \\\"quoted\\\" C string.\";". - - 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."; diff --git a/specifications/fss.txt b/specifications/fss.txt index e624007..331bade 100644 --- a/specifications/fss.txt +++ b/specifications/fss.txt @@ -129,6 +129,5 @@ Featureless Settings Specifications: - fss-0008: Embedded List - fss-0009: Reverse Mapping - fss-000A: Extended Reverse Mapping - - fss-000B: Simple Json - - fss-000C: Simple List - - fss-000D: Iki Text + - fss-000B: Simple List + - fss-000C: Iki Text diff --git a/specifications/iki.txt b/specifications/iki.txt index 1deba77..edee1ac 100644 --- a/specifications/iki.txt +++ b/specifications/iki.txt @@ -29,7 +29,7 @@ IKI Specifications: \x*\W~\o:\q\c\q Example\: - # fss-000d iki-0000 + # fss-000c iki-0000 This is my sentence, anything can go here but sometimes I want to emphasis:"emphasize some text". -- 1.8.3.1