cortav  Diff

Differences From Artifact [996aa283a7]:

To Artifact [0535a222ee]:


   814    814   <B> Hyacinth, I told you not to contact me without—
   815    815   <A, shouting> god DAMMIT woman I am trying to SAVE your worthless skin
   816    816   <B> Hyacinth! your Godforsaken scrambler!
   817    817   <A> …oh, [!fuck].
   818    818   (signal lost)
   819    819   ~~~
   820    820   
          821  +## specification license
          822  +the text of this specification is made available under the terms of the Creative Commons CC-BY-NC-SA 4.0 license. the binding license text may be found in the [`cortav] source control tree at the following paths:
          823  ++ language + license text location
          824  +| english  | [`legal/cc-by-nc-sa.en]
          825  +| german   | [`legal/cc-by-nc-sa.de]
          826  +[*should the texts be interpreted to conflict in translation, the most restrictive subset of terms shall apply.]
          827  +
   821    828   #refimpl reference implementation
   822    829   the cortav standard is implemented in [`cortav.lua], found in this repository. only the way [`cortav.lua] interprets the cortav language is defined as a reference implementation; other behaviors are simply how [`cortav.lua] implements the specification and may be copied, ignored, tweaked, violently assaulted, or used as inspiration by a compliant parser.
   823    830   
   824    831   the reference implementation can be used both as a lua library and from the command line. [`cortav.lua] contains the parser and renderers, [`ext/*] contain various extensions, [`sirsem.lua] contains utility functions, and [`cli.lua] contains the CLI driver.
   825    832   
   826    833   ##refimpl-lib lua library
   827    834   there are various ways to use cortav from a lua script; the simplest however is probably to precompile your script with luac and link in the necessary components of the implementation. for instance, say we have the following program
................................................................................
   956    963   [*do note] that no cortav implementation needs to concern itself with character class data. this functionality is provided in the reference implementation strictly as an (optional) extension to the spec to improve usability, not as a normative requirement.
   957    964   
   958    965   	corran: http://ʞ.cc/fic/spirals/society
   959    966   	tengwar: https://en.wikipedia.org/wiki/Tengwar
   960    967   
   961    968   ###refimpl-switches switches
   962    969   [`cortav.lua] offers various switches to control its behavior.
   963         -+ long                           + short + function                                    +
   964         -| [`--out [$file]]              :|:[`-o]:| sets the output file (default stdout)       |
   965         -| [`--log [$file]]              :|:[`-l]:| sets the log file (default stderr)          |
   966         -| [`--define [$var] [$val]]     :|:[`-d]:| sets the context variable [$var] to [$val]  |
          970  ++ long                           + short + function                                    
          971  +| [`--out [$file]]              :|:[`-o]:| sets the output file (default stdout)       
          972  +| [`--log [$file]]              :|:[`-l]:| sets the log file (default stderr)          
          973  +| [`--define [$var] [$val]]     :|:[`-d]:| sets the context variable [$var] to [$val]  
   967    974   | [`--mode-set [$mode]]         :|:[`-y]:| activates the [>refimpl-mode mode] with ID [!mode]
   968         -| [`--mode-clear [$mode]]       :|:[`-n]:| disables the mode with ID [!mode]           |
   969         -| [`--mode [$id] [$val]]        :|:[`-m]:| configures mode [$id] with the value [$val] |
          975  +| [`--mode-clear [$mode]]       :|:[`-n]:| disables the mode with ID [!mode]           
          976  +| [`--mode [$id] [$val]]        :|:[`-m]:| configures mode [$id] with the value [$val] 
   970    977   | [`--mode-set-weak [$mode]]    :|:[`-Y]:| activates the [>refimpl-mode mode] with ID [$mode] if the source file does not specify otherwise
   971    978   | [`--mode-clear-weak [$mode]]  :|:[`-N]:| disables the mode with ID [$mode] if the source file does not specify otherwise
   972    979   | [`--mode-weak [$id] [$val]]   :|:[`-M]:| configures mode [$id] with the value [$val] if the source file does not specify otherwise
   973         -| [`--help]                     :|:[`-h]:| display online help                         |
   974         -| [`--version]                  :|:[`-V]:| display the interpreter version             |
          980  +| [`--help]                     :|:[`-h]:| display online help                         
          981  +| [`--version]                  :|:[`-V]:| display the interpreter version            
   975    982   
   976    983   ###refimpl-mode modes
   977    984   most of [`cortav.lua]'s implementation-specific behavior is controlled by use of [!modes]. these are namespaced options which may have a boolean, string, or numeric value. boolean modes are set with the [`-y] [`-n] flags; other modes use the [`-m] flags.
   978    985   
   979    986   most modes are defined by the renderer backend. the following modes affect the behavior of the frontend:
   980    987   
   981    988   + ID                 + type   + effect
................................................................................
  1151   1158   
  1152   1159   ### intent files
  1153   1160   there's currently no standard way to describe the intent and desired formatting of a document besides placing pragmata in the source file itself. this is extremely suboptimal, as when generating collections of documents, it's ideal to be able to keep all formatting information in one place. users should also be able to specify their own styling overrides that describe the way they prefer to read [`cortav] files, especially for uses like gemini or gopher integration.
  1154   1161   
  1155   1162   at some point soon [`cortav] needs to address this by adding intent files that can be activated from outside the source file, such as with a command line flag or a configuration file setting. these will probably consist of lines that are interpreted as pragmata. in addition to the standard intent format however, individual implementations should feel free to provide their own ways to provide intent metadata; e.g. the reference implementation, which has a lua interpreter available, should be able to take a lua script that runs after the parse stage and makes arbitrary alterations to the AST. this will be particularly useful for the end-user who wishes to specify a particular format she likes reading her files in without forcing that format on everyone she sends the compiled document to, as it will be able to interrogate the document and make intelligent decisions about what pragmata to apply.
  1156   1163   
  1157   1164   intent files should also be able to define [>rsrc resources], [>ctxvar context variables], and macros.
         1165  +
         1166  +## implementation license
         1167  +the cortav reference implementation is made available under the terms of the European Union Public License v1.2. the binding license text may be found in the [`cortav] source control tree at the following paths:
         1168  ++ language + license text location
         1169  +| english  | [`legal/eupl.en]
         1170  +| german   | [`legal/eupl.de]
         1171  +[*should the texts be interpreted to conflict in translation, the most restrictive subset of terms shall apply.]
         1172  +
         1173  +# trademarks
         1174  +the name "cortav" is a trademark of alexis hale, and may be used only insofar as the following terms apply:
         1175  +: the name "cortav" is applied to an implementation of the cortav language that strictly conforms to at least [>levels level 1] of this specification
         1176  +: the name is not used unqualified; i.e. no project may name itself simply "cortav". below are some examples of permissible names under this term:
         1177  +:: cortav-scheme
         1178  +:: cortav.c
         1179  +:: pycortav
         1180  +this grant may be revoked at any time, for any reason, by the trademark owner. if you wish to use the name "cortav" in contravention of this grant or simply require stronger legal guarantees, feel free to contact me and we can probably work something out as long as you're not some corporate asshole.