Index: cli.lua ================================================================== --- cli.lua +++ cli.lua @@ -1,8 +1,8 @@ -- [ʞ] cli.lua -- ~ lexi hale --- 🄯 AGPLv3 +-- 🄯 EUPL v1.2 -- ? simple command line driver for the cortav library local ct = require 'cortav' local ss = require 'sirsem' local native = _G.native Index: cortav.ct ================================================================== --- cortav.ct +++ cortav.ct @@ -816,10 +816,17 @@ Hyacinth! your Godforsaken scrambler! 
oh, [!fuck]. (signal lost) ~~~ +## specification license +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: ++ language + license text location +| english | [`legal/cc-by-nc-sa.en] +| german | [`legal/cc-by-nc-sa.de] +[*should the texts be interpreted to conflict in translation, the most restrictive subset of terms shall apply.] + #refimpl reference implementation 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. 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. @@ -958,22 +965,22 @@ corran: http://ʞ.cc/fic/spirals/society tengwar: https://en.wikipedia.org/wiki/Tengwar ###refimpl-switches switches [`cortav.lua] offers various switches to control its behavior. -+ long + short + function + -| [`--out [$file]] :|:[`-o]:| sets the output file (default stdout) | -| [`--log [$file]] :|:[`-l]:| sets the log file (default stderr) | -| [`--define [$var] [$val]] :|:[`-d]:| sets the context variable [$var] to [$val] | ++ long + short + function +| [`--out [$file]] :|:[`-o]:| sets the output file (default stdout) +| [`--log [$file]] :|:[`-l]:| sets the log file (default stderr) +| [`--define [$var] [$val]] :|:[`-d]:| sets the context variable [$var] to [$val] | [`--mode-set [$mode]] :|:[`-y]:| activates the [>refimpl-mode mode] with ID [!mode] -| [`--mode-clear [$mode]] :|:[`-n]:| disables the mode with ID [!mode] | -| [`--mode [$id] [$val]] :|:[`-m]:| configures mode [$id] with the value [$val] | +| [`--mode-clear [$mode]] :|:[`-n]:| disables the mode with ID [!mode] +| [`--mode [$id] [$val]] :|:[`-m]:| configures mode [$id] with the value [$val] | [`--mode-set-weak [$mode]] :|:[`-Y]:| activates the [>refimpl-mode mode] with ID [$mode] if the source file does not specify otherwise | [`--mode-clear-weak [$mode]] :|:[`-N]:| disables the mode with ID [$mode] if the source file does not specify otherwise | [`--mode-weak [$id] [$val]] :|:[`-M]:| configures mode [$id] with the value [$val] if the source file does not specify otherwise -| [`--help] :|:[`-h]:| display online help | -| [`--version] :|:[`-V]:| display the interpreter version | +| [`--help] :|:[`-h]:| display online help +| [`--version] :|:[`-V]:| display the interpreter version ###refimpl-mode modes 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. most modes are defined by the renderer backend. the following modes affect the behavior of the frontend: @@ -1153,5 +1160,21 @@ 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. 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. intent files should also be able to define [>rsrc resources], [>ctxvar context variables], and macros. + +## implementation license +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: ++ language + license text location +| english | [`legal/eupl.en] +| german | [`legal/eupl.de] +[*should the texts be interpreted to conflict in translation, the most restrictive subset of terms shall apply.] + +# trademarks +the name "cortav" is a trademark of alexis hale, and may be used only insofar as the following terms apply: +: the name "cortav" is applied to an implementation of the cortav language that strictly conforms to at least [>levels level 1] of this specification +: 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: +:: cortav-scheme +:: cortav.c +:: pycortav +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. Index: cortav.lua ================================================================== --- cortav.lua +++ cortav.lua @@ -1,8 +1,8 @@ -- [ʞ] cortav.lua -- ~ lexi hale --- © AGPLv3 +-- © EUPL v1.2 -- ? reference implementation of the cortav document language -- -- ! TODO refactor encoding logic. it's a complete -- mess and i seem to have repeatedly gotten -- confused about how it's supposed to work. Index: desk/cortav.xml ================================================================== --- desk/cortav.xml +++ desk/cortav.xml @@ -1,10 +1,10 @@