✨ Added controls to put pages in your site navigation#28727
✨ Added controls to put pages in your site navigation#28727luissazevedo wants to merge 2 commits into
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (3)
📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
WalkthroughThis PR adds site navigation placement management for Ghost pages. A new 🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
| Command | Status | Duration | Result |
|---|---|---|---|
nx run ghost-admin:test |
✅ Succeeded | 2m 57s | View ↗ |
nx run @tryghost/admin:build |
✅ Succeeded | 2m 6s | View ↗ |
nx run-many -t lint -p ghost-admin |
✅ Succeeded | 20s | View ↗ |
nx run ghost:build:assets |
✅ Succeeded | 2s | View ↗ |
nx run ghost:build:tsc |
✅ Succeeded | 6s | View ↗ |
nx run-many --target=build --projects=@tryghost... |
✅ Succeeded | <1s | View ↗ |
💡 Verify your cache is correct by running tasks in a sandbox. Read docs ↗
☁️ Nx Cloud last updated this comment at 2026-06-19 15:06:43 UTC
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@ghost/admin/app/styles/layouts/content.css`:
- Line 1040: The stroke property on line 1040 uses currentColor which violates
the value-keyword-case stylelint rule. Fix this by changing currentColor to
match the configured case requirement, typically converting it to lowercase
currentcolor to comply with the stylelint configuration.
In `@ghost/admin/app/utils/site-navigation.js`:
- Around line 35-37: The condition in the navigation filtering logic does not
properly handle the case when siteOrigin is null or undefined. Currently, if
siteOrigin is falsy, absolute URLs can still be processed and matched by
pathname alone, which is incorrect. Modify the condition to return null not only
when the origin doesn't match, but also when the URL is absolute (not relative)
but siteOrigin is missing or invalid. This ensures that absolute URLs without a
valid siteOrigin to compare against are properly rejected as external links.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: d89461fa-cd0d-4fad-8513-9bd855f9537c
⛔ Files ignored due to path filters (1)
ghost/admin/public/assets/icons/navigation.svgis excluded by!**/*.svg
📒 Files selected for processing (15)
ghost/admin/app/components/editor/modals/publish-flow/confirm.hbsghost/admin/app/components/editor/modals/publish-flow/options.hbsghost/admin/app/components/editor/publish-management.jsghost/admin/app/components/editor/publish-options/navigation.hbsghost/admin/app/components/editor/publish-options/navigation.jsghost/admin/app/components/posts-list/context-menu.hbsghost/admin/app/components/posts-list/context-menu.jsghost/admin/app/components/posts-list/list-item-analytics.hbsghost/admin/app/components/posts-list/list-item-analytics.jsghost/admin/app/styles/components/dropdowns.cssghost/admin/app/styles/layouts/content.cssghost/admin/app/utils/publish-options.jsghost/admin/app/utils/site-navigation.jsghost/admin/tests/acceptance/content-test.jsghost/admin/tests/acceptance/editor/publish-flow-test.js
95b7bdd to
cbdfc24
Compare
no ref - pages aren't in navigation by default, so a newly published page is easy to miss on your site — a common onboarding dead-end - you can now set a page's placement while publishing it, and manage it from the pages list (an in-nav indicator plus a context-menu action to add, move or remove); Settings → Navigation stays the home for ordering and non-page links - navigation is treated as something you manage in its own right rather than a property of a page, so it's intentionally not in page settings
cbdfc24 to
d374fc2
Compare
Previously the "add to primary" and "add to secondary" actions shared the same navigation icon, and "remove" reused the generic close (×) icon — which read as a delete next to the existing red trash Delete item. Gave each action its own glyph on a shared page frame so they read as a set: - navigation-primary: page with a top bar - navigation-secondary: page with a bottom bar - navigation-remove: page with a minus-in-circle (removal, not deletion) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Why
New publishers create pages (About, Contact…), view their site, and can't find them — pages aren't in navigation by default, and the only way to add them is a separate trip to Settings → Navigation. A quiet onboarding dead-end.
What it does
Design notes
Testing — acceptance tests across the publish flow, pages list, and the navigation util; lint clean. No schema change, no migration.
🤖 Generated with Claude Code