Skip to content

0.9.0

Latest

Choose a tag to compare

@Decipher Decipher released this 13 Sep 10:49
· 45 commits to main since this release

DruxtJS.org 0.9.0

The first numbered version: the relaunch of druxtjs.org.

This release is the relaunch of the site, what runs on Lagoon today, and
the first numbered version.

Added

  • The site runs on Lagoon as one environment, Drupal beside Nuxt. Nuxt
    serves pre-rendered pages first and renders the rest live, behind a
    starting page while the app builds; ?live=1 renders past the store.
    docs/hosting.md covers a deployment.

  • A live component playground at /playground, and a "Try it" card on
    each module and component reference page. Every Druxt component renders
    against this site's Drupal, the Umami demo, or a reader's own Drupal,
    which the card probes for the modules each component needs. The props
    are the controls, the requests are listed, the markup can be copied, and
    the URL holds the card's state so it can be shared.

  • sitemap.xml, llms.txt and llms-full.txt, written when the server
    starts, and share cards for every page.

  • Form widgets for the playground's entity forms: text, number, options,
    radios and checkboxes, language, references, media, path and moderation.

  • Redirects for the old guide and reference paths, and for the package
    subdomains.

  • A Storybook service beside the site, with stories for the dui
    components and the ones Druxt writes from the backend. Production serves it
    at storybook.druxtjs.org; the footer and the playground link to the
    environment's own.

  • npm run setup and npm run dev, which bring up the backend and the
    frontend together, with npm run login for a one-time login link and
    npm run docs:generate for the generated reference pages.

  • A dev container for VS Code, Codespaces and DevPod, set up the way the demo
    site's is.

  • A README for contributors, with the site's banner, and docs/backend.md for
    the importer, page history and previews.

  • The Druxt repository standard. Committed git hooks and commitlint check every
    commit. cspell, markdownlint, Prettier, ESLint, yamllint and Vale check the
    files. The pipeline also checks that no AI tool is credited, and scans for
    secrets with gitleaks and a detection canary.

  • Issue and merge request templates for GitLab and GitHub, CONTRIBUTING.md,
    AGENTS.md, a Renovate policy and a toolchain pinned in .mise.toml.

  • Tests for the private-host lint.

Changed

  • Each page asks Drupal only for the fields its displays render, and each
    menu only for what a menu needs. The inline page state is about a fifth
    smaller.

  • Druxt's components load with the page rather than as chunks, so the
    server-rendered markup hydrates instead of being rendered again.

  • A request for a page in another letter case is redirected to the alias
    Drupal resolves; a query string other than live=1 gets the stored page.

  • The page footer no longer offers to edit the page in druxt.js. Pages are
    edited in Drupal, and the database is the source of truth.

  • Module pages list their "Try it" and API reference sections in the table
    of contents. Component reference pages put the card after the reference.

  • The root tooling runs on Node 16.20.1, the Node Nuxt 2 builds with, and
    .nvmrc is kept at the root only.

  • A Drupal 11 backend replaces the Drupal 9 site. An importer seeds it from a
    pinned commit of the documentation in druxt.js, and saves each page's earlier
    versions as dated revisions.

  • Drupal renders only administration. default_admin is the default theme, and
    the frontend reads the druxtjs theme's regions and blocks through the
    druxtjs_org consumer.

Fixed

  • Drupal media images render with the alt text set on their reference, not
    their filename as a heading.

  • The page body no longer re-renders in the browser after hydration, and the
    docs menu is no longer fetched again on every page.

  • The playground's controls are labelled, show their focus, and stay at 16
    px on tablets. Its backend reasons are text rather than a title attribute.

  • The private-host lint read a private address written as an IPv4-mapped IPv6
    literal as a public one. It now reads the IPv4 address inside.

Full history, including the site before numbered versions, is in the
CHANGELOG.