notACMS 1.1.1 — Deploy respects existing content
1.1.1 fixes a bug where ./notACMS deploy --prod would overwrite existing local/ content. Deploy now only seeds when local/ is missing or empty — matching ddev build behaviour.
Frontmatter-driven navigation labels
Navigation labels for content pages now come from frontmatter — not translation keys. Set menu.label in any page's frontmatter and it becomes the label in the navigation; omit it and the page title is used as fallback.
---
title: "Architecture guide"
slug: "architecture-guide"
menu:
label: "Architecture"
weight: 30
---
New content_item() Twig function resolves any content page by directory key:
{{ content_item('architecture-guide', 'en').menuLabel() }}
{# → "Architecture" (or the page title if menu.label is absent) #}
Why this matters: Previously every locale's messages.*.yaml had to duplicate translations for nav.home, nav.blog, nav.about, nav.contact, nav.privacy_policy (core) and site.releases, site.about, site.manual, site.architecture, site.customization, site.locales, site.design_reference, site.contact (demo). Adding a page meant updating N translation files. Now it's one frontmatter field. Custom templates referencing the removed keys should switch to content_item('key', locale).menuLabel().
Deploy no longer overwrites existing local/
The bug
Running ./notACMS deploy --prod would back up and replace your entire local/ directory with docs/demo/ on every deploy — even when it already contained your content, templates, and customisations. The seed logic didn't distinguish between "user explicitly requested a theme re-seed" and "user just wants to redeploy with existing content."
The fix
Deploy now works exactly like ddev build:
- No
--bare/--demoflag → seedslocal/only if it's missing or empty; skips if it has content. --bareor--demopassed explicitly → backs up existinglocal/and seeds the chosen theme.
./notACMS deploy --prod # preserves existing local/
./notACMS deploy --prod --demo # forces re-seed from docs/demo/
./notACMS deploy --prod --bare # forces re-seed from docs/bare/
--prod now only controls Composer flags (--no-dev) and the runtime environment (APP_ENV=prod). It never touches local/.
Also in 1.1.1
- Dependency bump:
symfony/polyfill-*packages updated from v1.36.0 to v1.37.0. - Polish, German, and French demo content reviewed and improved across all pages and blog posts.
- Translation style guides added to the AI-agent skill system for Polish, German, and French to ensure consistent quality in future translations.
Full changelog
Every change with its category: CHANGELOG.md.