The Pillars picture
12A14 — The Pillars

Oscean is a flat-file wiki engine.

Oscean is a static wiki engine written entirely in C99, designed to be deployed from low-power devices with gcc as its only dependecy. The engine has grown into a collection of tools, including the time tracking software horaire, as well as the time formats neralie & arvelie.

The wiki and related tools are designed to be used offline first, so the content is generally accessed and edited locally, there are no offsite queries for critical resources.

The generated files use no javascript, are optimized for screen-readers and terminal browsers, the entire CSS content of the entire site should be under 1kb. The software architecture is inspired by longtermism.

indental

The Indental parser allows for human-readable data structures for static APIs. In the Indental file, an unindented line declares the key to a new root node, children lines can associate either parameters or lists to their parent node, a line divided with a colon will associate a value to a parameter to the parent node, and a sequence of equally indented lines will append to a list. You can download syntax highlight here.

NAME
  KEY : VALUE
  LIST
    ITEM1
    ITEM2
Or, {NAME:{KEY:VALUE,LIST:[ITEM1,ITEM2])}

tablatal

The Tablatal parser allows for human-readable data structures for static APIs. In the Tablatal file, the first line declares the key, the spacing between each key defines the length of the parameters for all subsequent lines. You can download syntax highlight here.

NAME    AGE   COLOR
Erica   12    Opal
Alex    23    Cyan
Nike    34    Red
Ruca    45    Grey
Or, [{name:Erica,Age:12,Color:Blue},{name:Alex,Age..}

lain

The Lain parser used to exist at the core of oscean before the migrationg to a fully static website, but it can still be found in various projects of the Nataniev ecosystem, such as in the ronin and paradise applications. The parser takes a Lain Library.

Templating With Lain

(link "home")                             {(link "home")}
(link "home" "local")                     {(link "home" "local")}
(link "https://github.com/")              {(link "https://github.com/")}
(link "https://github.com/" "external")   {(link "https://github.com/" "external")}
(bold "bold")                             {(bold "bold")}
(ital "italic")                           {(ital "italic")}
(bold (link "home" "bold link"))          {(bold (link "home" "bold link"))}

Programming With Lain

(add (sub 5 3) 2)                         ; Basic Math
(λ (a b c) (concat a b c))                ; Lambda
(def obj:foo "bar")                       ; Creating object
(obj:foo)                                 ; Reading object parameters
(def _sidebar (dom:create "sidebar"))     ; Creating DOM elements

runic

Runic is a first-order templating language operating on an array of lines, Where line is prefixed by a rune, giving a sense of the data being handled. The Runic parser takes a Runic Library.

* Header
& Paragraph
- List Element 1
- List Element 2
| table | row1
| table | row2
# -- CODE BLOCK
> -- HTML BLOCK
λ -- {(link "LAIN")} BLOCK

Last update on 20G05, edited 320 times. +1257/1871fh