Repository navigation
Releases
1.0.1
What's Changed
- Replaced the README screenshot with the current UI. by @AlexSkrypnyk in #165
- Added the 'add-nexus-template' skill for adding a landing template, with a test that keeps it in step with the code. by @AlexSkrypnyk in #166
- Covered config folders that mix installed and missing module dependencies in the 'add-nexus-template' skill. by @AlexSkrypnyk in #167
- [#164] Added a user manual in 'docs/' and a Help panel that shows it, with a '?' button on every panel and dialog. by @AlexSkrypnyk in #168
- Stopped false Checks warnings on block, media, vocabulary and function-backed list config, and added a Delete key in Edit mode. by @AlexSkrypnyk in #169
Full Changelog: 1.0.0...1.0.1
1.0.0
What's new since 0.8.0
Breaking changes
-
[#105] Made 'check-diagram' report undefined reference targets and 3 new model rules as errors that exit with 1. @AlexSkrypnyk (#136)
In 0.8.0,npm run check-diagramonly warned about a reference to an entity the document doesn't define, and warnings alone exit with 0. It now runs the Checks panel's rules too, so that reference, a non-base reference field with no target type, 1 field name with 2 types or cardinalities on the same entity type, and a machine name outside Drupal's pattern or length limit are errors that exit with 1. If a script or CI job runs it over your documents, run it once before upgrading and fix what it reports, usually by adding the missing target entities the old warning pointed at. -
[#133] Changed the fields CSV layout: a new third 'Bundle' column and references written as 'Label (entity id)'. @AlexSkrypnyk (#147)
Save as > CSV > Fields now writes aBundlecolumn afterEntity type, so every column after it moves 1 place right, and the References cell names each target asTags (taxonomy_term.tags)instead of the label alone; it also writes a row for each entity with no fields and appendsUsed in,Help text,Default,Allowed valuesandTranslatable. A spreadsheet or script that reads this CSV by column position or parses References should read columns by header and take the id from the parentheses.
Highlights
-
[#104] Showed descriptions, help text and field settings read from config. @AlexSkrypnyk (#121)
Nexus now reads each bundle's description and each field's help text, default value, allowed values and translatability from exported config, where 0.8.0 dropped everything but label, type, cardinality, required and targets. They show in the tooltip, the Fields table and its CSV, and the Inspector edits them in Edit mode..nexus.json, the schema and thecreate-nexus-diagramskill carry them as optional keys, so older documents open unchanged. -
[#106] Added 'Copy link', which puts the whole diagram in the URL fragment, and opened diagrams from such links. @AlexSkrypnyk (#129)
Copy link at the end of the Save menu packs the diagram, compressed, into the URL fragment, so you can drop it into a chat or a ticket and it opens in 1 click with the same model, layout and type settings. The fragment never reaches a server,&focus=points at 1 entity, and the deflate checksum makes a link damaged in transit fail with a clear alert. A link over 32,000 characters isn't copied; the dialog offers the.nexus.jsonfile instead. -
[#140] Edited fields in place in the Fields table and rendered allowed markup in help text and descriptions. @AlexSkrypnyk (#138)
Every editable cell of the Fields table now opens an editor in place, in View and Edit mode alike: label, machine name, type, cardinality, required, references, help text, default, allowed values and translatability, each as its own undo step. Help text and descriptions from config also render their allowed HTML (em,strong,code, lists), while scripts, attributes and styles are dropped and links draw as text that can't navigate the page. -
[#105] Added a Checks panel that lists model problems as errors and warnings. @AlexSkrypnyk (#136)
The new Checks panel lists what Drupal would reject, and what just looks off, and re-checks after every edit, undo and redo: 3 error rules (reference targets, shared field storage with a different type or cardinality, machine names) and 5 warnings, including a field limit you set in Settings. A count badge on the toolbar button turns red on an error, and clicking a problem focuses it on the canvas. -
[#133] Added a CSV import and a CSV template to the Open menu. @AlexSkrypnyk (#147)
You can now write a content model in a spreadsheet and open it as a diagram: Open > CSV file… or a.csvdropped on the landing screen reads it, and Open > CSV template downloads an example with every column filled in. The import is strict and lists up to 5 problems with their row numbers rather than opening a half-read model, and a fields CSV exported from Nexus imports back as the same entities, fields and references. -
[#114] Added an explore view that shows the entities within 1 to 5 references of an entity, outward, inward or both. @AlexSkrypnyk (#153)
Explore from here, in the new right-click entity menu and the entity Inspector, keeps only the entities within 1 to 5 references of the one you picked and re-runs the layout on what's left. It answers "what references this media type?" without tracing lines across the whole diagram, records no history step, and Clear in the status bar puts every position and the viewport back. -
[#108] Added 'Compare with' to the Open menu, which shows the bundles, fields and references another version adds, removes or changes. @AlexSkrypnyk (#152)
Open > Compare with sets the open diagram against a saved.nexus.jsonor a config folder and marks every bundle, field and reference that's added, removed or changed, with a Changes panel listing the old and new values by bundle. That's the quick answer to "what does this release change in the content model?" or "does the site still match the spec?". Editing and saving are off while it's open, and stopping restores the diagram exactly, with no history step.
Other changes
-
[#107] Added a Markdown export that documents each bundle, its fields, notes and references, with an optional Mermaid diagram. @AlexSkrypnyk (#120)
Save as > Markdown writes<title>.mdwith a table of contents and a section per bundle holding its fields table, notes and a "Referenced by" line, so the content model can live in the repository next to the code. The Mermaid diagram is included up to 50 entities by default, and the Markdown export settings switch it to always or never. -
Added a daily 'Update templates' workflow that opens 1 pull request per template with its latest upstream tags. @AlexSkrypnyk (#102)
Template bumps used to be hand edits, and nothing flagged a new upstream release, which is how both templates fell behind. A daily workflow now moves each template to its latest stable tags and opens 1 pull request per template, andnpm run update-templatesgained--latest,--prand--listand writes the bundle counts itself. -
[#115] Added the Umami demo profile from Drupal core as a landing template. @AlexSkrypnyk (#125)
The landing screen offers Umami, the food magazine demo from Drupal core 11.4.12 that most Drupal people have seen: 3 content types, 2 vocabularies, 5 media types, 4 block types and the user. -
Added an HTML report to the 'Save as' menu that documents each bundle, its fields, notes and references. @AlexSkrypnyk (#124)
Save as > HTML writes a standalone report with the same sections and anchors as the Markdown export, for anyone who'd rather open the model in a browser than in a Markdown viewer. The page loads nothing and runs no script, enforced by its own Content Security Policy, and follows the reader's light or dark scheme. -
Fixed the outline test reading 'field_media' by index after the saved document gained a 'field_layout' field. @AlexSkrypnyk (#126)
A unit test readfield_mediaby position and broke once the shared fixture gained a field before it, so the test now finds the field by name. Test-only, with no change to the app. -
[#116] Added the Thunder publishing distribution as a landing template. @AlexSkrypnyk (#130)
The landing screen offers Thunder 8.4.7, the publishing distribution built from paragraphs and 7 media types. Along the way the parser learned negated Paragraphs selections (negate: 1): a field that allows every paragraph type except a listed few now targets those bundles, where it used to point at anAny Paragraphplaceholder, or with exclusions, at exactly the excluded ones. -
Fixed the templates e2e spec failing on every template update by reading versions and counts from 'TEMPLATES'. @AlexSkrypnyk (#132)
The templates e2e spec spelled out each version and bundle count, so every automated template update failed CI on its own pull request. It now reads them fromTEMPLATES, the file the update script rewrites. -
Skipped the Scorecard job on pull requests, where its local-only upload left code scanning neutral. @AlexSkrypnyk (#127)
On a pull request Scorecard could upload only 1 of the 3 code scanning categoriesmainhas, which left every PR with a neutral "2 configurations not found" check. It now runs onmainonly, while CodeQL still runs on every pull request. -
Added sortable Fields table columns with a '#' column, scrolled the table with its panel, and resized floating panels from their edges. @AlexSkrypnyk (#128)
Every Fields table column sorts from its header, cycling ascending, descending and back to the new#order within each entity, and the table scrolls both ways inside its panel with the toolbar and header sticky. Floating panels resize from their left, right and bottom edges and bottom corners, a double-click on a handle resets the size, and the table's search and sort now survive docking. -
Updated the Drupal CMS template to 2.2.9. @github-actions[bot] (#123)
-
Updated the CivicTheme template to 1.14.0. @github-actions[bot] (#122)
-
[#117] Added Open Social 13.1.0 as a landing template. @AlexSkrypnyk (#131)
The landing screen offers Open Social 13.1.0, the community and intranet distribution: 8 content types, 20 paragraph types, 11 vocabularies, 9 block types, 1 media type and the user, read from 33 feature-module config folders. Nexus doesn't draw groups, profiles or posts, so references to them land on placeholder entities that stay **out of the template...
0.8.0
What's new since 0.7.0
- Added the OpenSSF Best Practices badge to the README. @AlexSkrypnyk (#101)
- Documented how to submit a change and the tests each change needs. @AlexSkrypnyk (#100)
- Update all dependencies @renovate[bot] (#98)
- Made the workflows and tests visible to OpenSSF Scorecard, attached release provenance files and fixed 2 dev dependency advisories. @AlexSkrypnyk (#97)
- [#93] Hardened untrusted documents with a CSP and type style checks, recorded vendored libraries and released with provenance. @AlexSkrypnyk (#96)
- Added a 'Why' section to the README, removed its UI walkthrough and moved developer notes into 'CONTRIBUTING.md'. @AlexSkrypnyk (#95)
- Removed Patreon from funding platforms. @AlexSkrypnyk (#94)
- Added a 'Create with AI' dialog, and folded the toolbar's document buttons into Open and Save split buttons. @AlexSkrypnyk (#92)
Full Changelog: 0.7.0...0.8.0
0.7.0
What's new since 0.6.0
- Ran CI on Node 26 only and split it into 'Lint', 'Unit', 'E2E 1' and 'E2E 2' jobs. @AlexSkrypnyk (#91)
- Replaced the README screenshot with Edit mode on the conference example in the light theme. @AlexSkrypnyk (#90)
- Split the e2e suite into 1 spec file per area with shared helpers in 'tests/e2e/helpers.js'. @AlexSkrypnyk (#88)
- Added a JSON Schema, a 'check-diagram' command and a 'create-nexus-diagram' skill so AI agents can write Nexus diagrams from any source. @AlexSkrypnyk (#89)
- [#59] Added hover titles to every control, table header and badge, with a check that fails on an untitled one. @AlexSkrypnyk (#87)
- [#51] Fixed canvas labels losing strokes by drawing elements without Cytoscape's layered texture cache. @AlexSkrypnyk (#86)
- [#66] Kept the node the Inspector shows selected on the canvas, with the '+' handles around an inspected entity. @AlexSkrypnyk (#84)
- [#52] Centred Find entity and entity focus in the part of the canvas the open panels leave free. @AlexSkrypnyk (#85)
- [#67] Kept the field order on Tidy and tidied only the entity the selection belongs to. @AlexSkrypnyk (#79)
- [#64] Joined the Find entity field and its search button into 1 control. @AlexSkrypnyk (#83)
- [#68] Added a frame inside the canvas edge coloured by View or Edit mode, with a Settings section to turn it off and pick each colour. @AlexSkrypnyk (#81)
- [#60] Sized the ends of tag, hexagon, octagon and rhomboid symbols by height, fitted labels to shapes and wrapped proxy names. @AlexSkrypnyk (#74)
- [#69] Added a New diagrams section to Settings for the layout, display switches and mode a diagram opens with. @AlexSkrypnyk (#82)
- [#65] Made the left button select and move in Edit mode, the right button pan in every mode, and a View mode double-click open a node. @AlexSkrypnyk (#78)
- [#63] Added show or hide and go-to columns to the Fields table. @AlexSkrypnyk (#80)
- [#58] Capped docked panel heights at their content and gave the docked Inspector its full height. @AlexSkrypnyk (#76)
- [#61] Drew each entity type's symbol in its colour on the Edit mode Add palette, and gave the API and Callback buttons their shapes. @AlexSkrypnyk (#75)
- [#62] Laid out each entity type setting on 1 line with plus and minus buttons. @AlexSkrypnyk (#77)
- [#56] Moved the Fields, Proxies and Machine names toggles to the status bar as switches. @AlexSkrypnyk (#72)
- [#57] Added a drag handle to panel headers that moves a docked panel within or between the side rails, and showed the pin state. @AlexSkrypnyk (#73)
- [#54] Linked the landing note's 'annotations.yml' to a full reference of the overlay in the README. @AlexSkrypnyk (#71)
- [#55] Added the tech stack and the Netlify development version to the README. @AlexSkrypnyk (#70)
- Made the browser zoom keys and a pinch zoom the diagram instead of the page, and placed new nodes in a clear spot. @AlexSkrypnyk (#53)
- Added a breadcrumb to the Inspector that leads a field, new field or bulk fields screen back to its entity. @AlexSkrypnyk (#50)
- [#48] Added bulk field entry to the entity inspector, with copying fields from another entity. @AlexSkrypnyk (#49)
Full Changelog: 0.6.0...0.7.0
0.6.0
What's new since 0.5.0
- Added moving a node by dragging it with the right mouse button, in View mode as well as Edit. @AlexSkrypnyk (#46)
- Reordered the toolbar into 7 sections with separators that hide where the row wraps. @AlexSkrypnyk (#47)
- [#42] Added keyboard shortcuts to the toolbar and an F1 view that labels every button with its shortcut. @AlexSkrypnyk (#45)
Full Changelog: 0.5.0...0.6.0
0.5.0
What's new since 0.4.0
- Added a Columns layout and a layout menu of LR, TB and Columns, and made Tidy line entities up in columns where they are. @AlexSkrypnyk (#37)
- Listed Drupal CMS before CivicTheme on the landing screen. @AlexSkrypnyk (#44)
- Added a light/dark theme toggle to the landing screen. @AlexSkrypnyk (#43)
- [#36] Added undo, redo and a History panel that steps back to earlier versions of the diagram. @AlexSkrypnyk (#41)
- Replaced the PNG, SVG and CSV export buttons with an Export split button that remembers the last format. @AlexSkrypnyk (#39)
- Fixed node captions overlapping entity names and spilling past their boxes. @AlexSkrypnyk (#40)
- Removed Google Analytics and every mention of it. @AlexSkrypnyk (#38)
Full Changelog: 0.4.0...0.5.0