Look
The declarative rendering vocabulary. A resource declares how it presents itself by attaching a view of stacked bands; the SDK interprets that declaration instead of hardcoding layout, so appearance is authored in the graph and overridable without recompiling. In 2.0.0 the band path carriers (metricPath, statPath, mapPath, alphaPath, betaPath, lowerPath, upperPath, hueBy, laneBy, labelPath, badgePath, nodeNote, edgeValue) are typed as `tx.Expression` rather than `/`-separated path strings, so every path a band reads resolves through the object model and validates at `kanonak validate` time — no magic-string local-name matching.
The look vocabulary lets a type say how it renders, declaratively. A view — Resource View,
Package View, or
Publisher View — is an ordered list of
Bands, each a self-contained section:
Hero for the header,
Markdown for prose,
Details for a generic property dump,
Property Table /
Property List for structured fields,
Embedded Views /
Instances for nested resources, and
Referenced By for incoming links. Bands read their content from properties named declaratively — a Markdown band's
Source, say — so the same machinery styles any vocabulary. Defaults and the rdfs.Resource floor live in the universal-look package; this package defines the building blocks.
A publisher's landing page is just a Publisher resource rendered through a
Publisher View. Attach a
derivation.look to the Publisher and list the bands you want, top to bottom:
acme:
type: ck.Publisher
label: Acme
comment: Tools for the road-runner age.
derivation.look:
type: look.PublisherView
bands:
- type: look.Hero
look.title: rdfs.label
look.subtitle: rdfs.comment
- type: look.Markdown
look.source: prose.documentation
- type: look.PublisherPackages
That renders a Hero over the publisher's name and tagline, its
Documentation as a
Markdown section, and a
Publisher Packages grid of every package it publishes (latest version of each).
To feature a curated headline set instead of the whole catalog, give Publisher Packages an explicit
Packages list and introduce it with a
Section Heading:
- type: look.SectionHeading
look.heading: Start here
- type: look.PublisherPackages
look.packages:
- core-rdf
- core-owl
Site-wide chrome — the Nav shown on every page and a
Footer (copyright / license text plus optional links) — is declared the same way, on the Publisher resource, so it applies across the whole site from one place. Declare no look at all and the universal-look default applies (a Hero plus the full package grid), so every publisher has a usable landing page out of the box.