feat: implement Roadiz meta composable - #611
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR introduces a new meta-data pipeline by replacing the Roadiz-specific SEO composable with a CMS-agnostic usePageMeta() and a Roadiz adapter useRoadizMeta(), while also adding default Schema.org structured data.
Changes:
- Add
useRoadizMeta()+usePageMeta()and wire them into the dynamic slug page. - Add utilities for truncation and markdown-to-plain-text conversion to support meta/structured-data text.
- Add Schema.org module integration and introduce a dedicated search page component.
Reviewed changes
Copilot reviewed 11 out of 12 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| types/roadiz.d.ts | Adds NSSearchPage type alias for Roadiz nodes sources. |
| nuxt.config.ts | Registers nuxt-schema-org module. |
| app/utils/string/truncate.ts | Adds string truncation helper used for meta descriptions. |
| app/utils/roadiz/entity.ts | Adds isSearchPageEntity() helper. |
| app/utils/markdown/markdown-to-plain-text.ts | Adds markdown→HTML→plain-text conversion for meta/structured data. |
| app/pages/[...slug].vue | Switches meta handling to new composables; adds Schema.org WebPage and SearchResultsPage handling and renders search page component. |
| app/layouts/default.vue | Removes title templating and adds Schema.org WebSite definition. |
| app/composables/use-roadiz-seo-meta.ts | Removes legacy Roadiz SEO meta composable. |
| app/composables/use-roadiz-meta.ts | Adds new Roadiz-specific meta resolver (title/desc/image/noindex/canonical/alternate). |
| app/composables/use-page-meta.ts | Adds CMS-agnostic head/meta builder for use with useHead(). |
| app/components/VPageSearch.vue | Adds search page component rendering blocks and a heading. |
| app/components/VPageDefault.vue | Updates default page heading fallback text. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
timothejoubert
previously approved these changes
Jul 9, 2026
… character handling
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…teName is not set
timothejoubert
approved these changes
Jul 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
useRoadizMeta()A composable dedicated to Roadiz meta data.
The previous
useRoadizSeoMeta()has been removed.usePageMeta()An agnostic composable to handle meta data.
It will be used with
useHead()to update the meta data.Structured data
Adds the default structured data for a website and a webpage.