From 9278c65797107fb2ebb0cebe335fcedd2e288b66 Mon Sep 17 00:00:00 2001 From: Kevin Day Date: Fri, 29 Mar 2024 16:46:40 -0500 Subject: [PATCH] Update: Out of date specification documentation. Make sure the version dates are present. Working on this led to the discovery of some bugs in the iki specification that have been fixed in the original source. --- documentation/fake/specifications/settings.html | 4 ++ documents/standards/fll/specifications/iki.txt | 28 +++++----- fll/specifications.html | 69 ++++++++++++++++--------- fll/specifications/fss/fss-000a.html | 2 +- fll/specifications/iki/iki-0000.html | 6 +-- 5 files changed, 68 insertions(+), 41 deletions(-) diff --git a/documentation/fake/specifications/settings.html b/documentation/fake/specifications/settings.html index 5382889..608e996 100644 --- a/documentation/fake/specifications/settings.html +++ b/documentation/fake/specifications/settings.html @@ -188,7 +188,11 @@
  • path_program_shared: Must be a single valid path.
  • path_program_static: Must be a single valid path.
  • path_sources: Must only be a valid directory path or not specified.
  • +
  • path_sources_headers: Must only be a valid directory path or not specified.
  • +
  • path_sources_library: Must only be a valid directory path or not specified.
  • path_sources_object: Must only be a valid directory path or not specified.
  • +
  • path_sources_program: Must only be a valid directory path or not specified.
  • +
  • path_sources_script: Must only be a valid directory path or not specified.
  • preserve_path_headers: Must only be one of yes or no.
  • process_post: Must contain only a single valid filename.
  • process_pre: Must contain only a single valid filename.
  • diff --git a/documents/standards/fll/specifications/iki.txt b/documents/standards/fll/specifications/iki.txt index 1bc219d..a6c4fea 100644 --- a/documents/standards/fll/specifications/iki.txt +++ b/documents/standards/fll/specifications/iki.txt @@ -1,7 +1,7 @@ # fss-0002 iki-0000 # # license open-standard-license-1.0 -# version 2024/01/15 +# version 2024/03/29 # # 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 '"' '"' @@ -57,35 +57,37 @@ IKI Specifications: 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 data". - The conditionally optional open and close brackets allow for putting a variable directly next to another word character like: [context]\:"strong"this[context]\:"strong". + The conditionally optional open and close brackets allow for putting a variable directly next to another word character like: [context]\:"strong"this[context]\:"strong".' Objects (also called vocabulary or variable name) would be\: - 1) FSS - 2) italic - 3) url + 1) italic + 2) url + 3) FSS 4) code - 5) context + 5) italic 6) context + 7) context Contents (also called variable value) would be\: - 1.1) Featureless Settings Specification - 2.1) emphasize some text - 3.1) http://www.example.com/url with space/ + 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) strong + 5.1) is escaped to not be treated as IKI data 6.1) strong + 7.1) strong The following are core specifications (each with a common name associated with the specification number)\: - fss-0000: Unrestricted diff --git a/fll/specifications.html b/fll/specifications.html index 116635f..bb93807 100644 --- a/fll/specifications.html +++ b/fll/specifications.html @@ -378,25 +378,34 @@ Object_2 This is multiple\" Contents and the trailing quote does not need to be

    + The version date of this specification is 2024/01/15. +

    +

    IKI is a minimally structured WIKI-like syntax meant to be simpler than WIKI syntax.

    - The IKI syntax provides a vocabulary name (with specific context associated with it) followed by quoted code that is associated with the given vocabulary name. + The 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 Object. + The variable name is considered the Object and is also considered the vocabulary. The variable value is considered the Content. + The variable name may be wrapped by a single open bracket, [ (U+005B), at the start and a single close bracket, ] (U+005D), at the end. +

    +

    + The wrapping characters characters are not part of the variable name and must not be contained within a variable name. + The wrapping characters do not support escaping. + Both wrapping characters must be specified or neither.

    The IKI format will use iki-0000 to represent an IKI with no explicitly defined vocabulary. Whereas iki-0001 and beyond represent a specific IKI vocabulary.

    - A potential IKI variable name starts on word (or _, -, +) characters. - White space and non-word (and non _, -, +) character punctuations may not exist as part of the variable name. + A potential IKI variable name starts on word character or one of _ (U+005F), - (U+002D), + (U+002B), [ (U+005B)). + White space, non-word, and non _ (U+005F), - (U+002D), + (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 (U+2010 and U+2011).

    - Any valid IKI data may be escaped to make it treated as non-IKI data by prepending a backslash " before the colon code::" that is before the opening quote (single or double). + Any potential IKI data must be escaped to make it treated as non-IKI data by prepending a backslash \ before the colon : that is before the opening quote (single, double, or backtic). Potential IKI data refers to any valid IKI sequence without considering the closing single quote ' (U+0027), closing double quote " (U+0022), or closing grave ` (U+0060).

    Unicode punctuation connector characters are supported just like _, except when they connect outside the current line (such as U+FE33 ︳). @@ -406,14 +415,16 @@ Object_2 This is multiple\" Contents and the trailing quote does not need to be Key:

    Before Structure: @@ -436,30 +447,40 @@ Object_2 This is multiple\" Contents and the trailing quote does not need to be

    Example File:

    -# FSS-000C iki-0000
    +# fss-000c iki-0000
    +
    +This is my sentence, anything can go here but sometimes I want to italic\:"emphasize some text".
     
    -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/'.
     
    -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).
     
    -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.\";".
     
    -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 emphasis\:"is escaped to not be treated as IKI data".
    +The conditionally optional open and close brackets allow for putting a variable directly next to another word character like: [context]\:"strong"this[context]\:"strong".
     

    Example Results:

    -Objects would be:
    -  1) emphasis
    +Objects (also called vocabulary or variable name) would be:
    +  1) italic
       2) url
    -  3) code
    +  3) FSS
    +  4) code
    +  5) italic
    +  6) context
    +  7) context
     
    -Contents would be:
    +Contents (also called variable value) 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.";
    +  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
     

    The following are core specifications (each with a common name associated with the specification number): diff --git a/fll/specifications/fss/fss-000a.html b/fll/specifications/fss/fss-000a.html index 26eda2f..1306a1e 100644 --- a/fll/specifications/fss/fss-000a.html +++ b/fll/specifications/fss/fss-000a.html @@ -81,7 +81,7 @@

    - The version date of this specification is 2024/01/15. + The version date of this specification is 2023/07/14.

    This is based off of fss-0001 (Extended), except the Object is at the end of the line. diff --git a/fll/specifications/iki/iki-0000.html b/fll/specifications/iki/iki-0000.html index efe3acf..d600e4c 100644 --- a/fll/specifications/iki/iki-0000.html +++ b/fll/specifications/iki/iki-0000.html @@ -83,6 +83,9 @@

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

    +

    This specification provides no restrictions on the vocabulary.

    @@ -95,9 +98,6 @@

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

    -

    IKI is a minimally structured WIKI-like syntax meant to be simpler than WIKI syntax.

    -- 1.8.3.1