lini 0.22.0

Pretty diagrams, charts, and technical drawings from plain text, with fine-grained control. Compiles to clean, themeable SVG.
Documentation
// A small e-commerce schema — the |entity| ER card and the crow's-foot cardinality
// operators [SPEC 8, 9]. An entity's label is its centred title; rows read left as
// "field" "type", or "key" "field" "type" for a keyed (3-column) table. Entities are
// pinned so the schema reads as a graph, not a grid; `-o<` is zero-or-many, `-+<`
// one-or-many, `-o+` zero-or-one — the ring / bar / crow composed on the target end.
// Category is left in the default palette; the rest wear a hue (ink stroke, wash fill).
{
  padding: 30;
}

|entity#user| "User" {
  pin: center; translate: 0 -14; columns: auto, auto, auto; stroke: --blue-ink; fill: --blue-wash;
} [
  "PK" "id"    "int"
  ""   "name"  "varchar"
  ""   "email" "varchar"
]
|entity#order| "Order" {
  pin: center; translate: 200 124; columns: auto, auto, auto; stroke: --teal-ink; fill: --teal-wash;
} [
  "PK" "id"      "int"
  "FK" "user_id" "int"
  ""   "total"   "decimal"
]
|entity#item| "LineItem" {
  pin: center; translate: 19 304; columns: auto, auto, auto; stroke: --amber-ink; fill: --amber-wash;
} [
  "PK" "id"         "int"
  "FK" "order_id"   "int"
  "FK" "product_id" "int"
]
|entity#product| "Product" {
  pin: center; translate: -204 185; columns: auto, auto, auto; stroke: --green-ink; fill: --green-wash;
} [
  "PK" "id"    "int"
  ""   "name"  "varchar"
  ""   "price" "decimal"
]
|entity#cart| "Cart" {
  pin: center; translate: 176 -171; stroke: --rose-ink; fill: --rose-wash;
} [ "items" "int" "updated" "timestamp" ]
|entity#category| "Category" { pin: center; translate: -195 -143; } [
  "name"
  "varchar"
  "slug"
  "varchar"
]

user -o< order
// a user places zero-or-many orders
user -o+ cart
// a user owns zero-or-one cart
order -+< item:right
// an order contains one-or-many line items
product -o< item
// a product appears in zero-or-many line items
category -o< product
// a category groups zero-or-many products