Index: cortav.ct ================================================================== --- cortav.ct +++ cortav.ct @@ -549,10 +549,11 @@ ~~~ you should always give your styles semantic names where practicable, instead of simply describing their graphical characteristics. this is good practice in general, but especially because your document will be renderable to different formats with different characteristics, and what makes text look important on a manpage in the terminal may be quite different from how it looks in a webpage or PDF. ##dir directives d: [`%[*[##1]]] + dd: [`%[*[##1]] [#2]] * {d author} encodes document authorship. multiple author directives can be issued to add additional coauthors * {d cols} specifies the number of columns the next object should be rendered with * {d include} transcludes another file * {d import} reads in the contents of another file as an embeddable section * {d quote} transcludes another file, without expanding the text except for paragraphs @@ -704,34 +705,50 @@ ** the [*groff] render backend ignores [$id] ###tsmog transmogrify a cortav renderer may automatically translate punctuation marks or symbol sequences to superior representations depending on their context. to be compliant this extension should implement, at minimum: * smart quotes (with consideration for the typographical conventions languages like German or Spanish) -** {dir.d transmogrify|language [$lang]} can be used to explicitly set the language; otherwise, it must be determined from the value of {dir.d pragma|lang}. if this is not present, implementations may fall back on their own methods for determining the language in use, such as command-line flags. +** {dir.dd transmogrify|language [$lang]} can be used to explicitly set the language; otherwise, it must be determined from the value of {dir.dd pragma|lang}. if this is not present, implementations may fall back on their own methods for determining the language in use, such as command-line flags. * multigraph to glyph conversion, including at least: ** ["--] --> "—" ** ["-->] --> "→" ** ["<--] --> "←" -an escape character before any of the sequence characters should prevent the sequence from being rendered. raw nodes (that is, ["[\…]] and ["["…]]) should not be scanned for transmogrification, nor should the contents of code blocks unless marked with the [`%[*expand]] directive +an escape character before any of the sequence characters should prevent the sequence from being rendered. raw nodes (that is, ["[\\…]] and ["["…]]) should not be scanned for transmogrification, nor should the contents of code blocks unless marked with the [`%[*expand]] directive transmogrification shall only take place after all other parsing steps are completed. ###hilite hilite code can be highlighted according to the formal language it is written in. a compliant hilite implementation must implement basic keyword, symbol, comment, pragma, and literal highlighing for the following formal languages. -* C +* [^nocpp C] + nocpp: all keywords and constructions present in C20 should be highlighted correctly, including e.g. [`typeof] and [`_Static_assert]. C++ support will never be required, due to the extreme complexity of C++ grammar and the likelihood that any naïve hilighter will produce incorrect results in edge cases +* Bourne Shell +* DOS INI +* [>glsl GLSL] +* [>gmake gmake] and [>bmake bmake] * [>lua Lua] -* [>html HTML] -* [>scheme Scheme] +* [>fennel Fennel] * [>terra Terra] +* [>scheme Scheme] +* SQL (including PL/SQL) * [>libconfig libconfig] +* [>groff groff] +* [>html HTML] +* [>css CSS] +* cortav + glsl: https://www.khronos.org/opengl/wiki/Core_Language_(GLSL) + gmake: https://www.gnu.org/software/make/ + bmake: https://www.freebsd.org/cgi/man.cgi?query=bmake&sektion=1 lua: https://lua.org - scheme: https://call-cc.org + fennel: https://fennel-lang.org terra: https://terralang.org - html: https://dev.w3.org/html5/spec-LC/ + scheme: https://call-cc.org libconfig: http://hyperrealm.github.io/libconfig/ + groff: https://www.gnu.org/software/groff/ + html: https://dev.w3.org/html5/spec-LC/ + css: https://www.w3.org/Style/CSS/current-work the highlighter should make use of semantic HTML tags like [`] where possible. ###lua lua renderers with a lua interpreter available can evaluate lua code: