Skip to content

Nibble 0.25.0

Latest

Choose a tag to compare

@mah3uz mah3uz released this 30 Oct 17:29

One way to bring content in, wherever a page needs it. The queries a view's sidecar runs now work for layouts,
for the page's own linked records, and for a form's choices.

One database migration adds a column for the labels a submission was made with; it only adds, so it can be rolled
back, but the snapshot taken before an upgrade is the surest way back.

What's new

  • A layout can query content. layouts/<name>.yml is a sidecar like a view's, and its props reach every page
    using the layout, the 404, search and preview pages included, typed as LayoutProps. A layout that shares another's
    header takes its queries with extends: default. nibble:check refuses a layout query named like a view's or like
    a prop every page has.
  • A page brings its linked records along. page: { include: [loan] } in a view's or layout's sidecar gives the
    page's relationship fields as whole records, so a view or layout reads the fields of what the page links to.
  • Child entries in a query. include: [children] on a structured collection gives each entry its published
    children in tree order, enough for a menu of sections and their pages.
  • A form's choices can come from content. A select, radio, checkboxes or button_group field on a form takes
    options: { from: entries:<collection> } (or terms:), with value, label, where and sort. Only published
    entries in the visitor's language are offered and accepted. parent: narrows one field's choices by the answer to
    another, through the tree or a relationship field, and the @nibble form helper hides choices that don't fit and
    clears one that stops fitting.
  • Submissions keep their choices readable. Each choice's label is stored with the submission, so the Control
    Plane, emails and exports still show it after the option is renamed or removed; an encrypted field's labels are
    encrypted too.
  • Generated types follow include. An included field is typed as the record it holds, and children as the
    collection's records.

What's fixed

  • A crop shows wherever the image is used. An image whose field has no preset was served as uploaded, with its
    uploaded size, so cropping, rotating or flipping it in the media library changed only its preset uses. Every use now
    shows the edited image at its edited size, and Reset brings the original back everywhere. The crop editor and
    Download in the Control Plane still work from the original. An animated image can't be edited, since its uses
    would show a single frame; one edited before keeps being served as uploaded.

Changed

  • crumbs lists topics in its footer from a layout query, and a post shows its author's bio.
  • An image that already has edits gets a new address, so a cache holding its original under the old one can't keep
    serving it; the old address redirects.