From 3d147564258001adc119d66c1bc34d9f1942b721 Mon Sep 17 00:00:00 2001 From: ajianaz Date: Mon, 5 Oct 2026 10:36:32 +0700 Subject: [PATCH] seo(docs): keyword-rich title, description, OG/Twitter meta, canonical - config.ts: site title 'Covecto' (7 chars) -> 'Covecto: Image to SVG Vectorizer CLI | CodeCora' (49 chars, keyword-first); description rewritten intent-matched (colon values quoted - bare YAML values with ': ' break VitePress frontmatter parsing) - index.md frontmatter head: og:url, og:title, og:description, twitter:card/title/description, rel=canonical (exact indexed form, no trailing slash) - root page only, pages derive from titleTemplate - Do NOT pass head via createConfig(): @codecora/theme drops opts.head (never merged); theme fix tracked separately - Live site still serves the 2026-07-23 main build; this branch goes to develop first, fast-forward-merge to main to trigger deploy-website.yml Validated: vitepress build clean; dist/index.html carries title, canonical, og:url, og:title, og:description, twitter:*; subpages get ' | ' via titleTemplate. --- docs/.vitepress/config.ts | 12 +++++------- docs/index.md | 22 ++++++++++++++++++++++ 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 1d33bff..d7d2948 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -2,15 +2,13 @@ import { createConfig } from '@codecora/theme/vitepress/config' export default createConfig({ product: 'covecto', - title: 'Covecto', - description: 'Dual-engine image vectorization — pixel-exact for icons, smooth curves for art.', + title: 'Covecto: Image to SVG Vectorizer CLI | CodeCora', + description: 'Covecto converts images to SVG with a dual-engine vectorizer CLI: pixel-exact for icons, smooth Bézier curves for art. SVG, PDF, EPS output. Zero dependencies.', accent: 'orange', repo: 'covecto', - head: [ - ['meta', { property: 'og:title', content: 'Covecto — Image to SVG Vectorization' }], - ['meta', { property: 'og:description', content: 'Dual-engine image vectorizer: pixel-exact for icons, Bézier splines for art. CLI + HTTP API.' }], - ['meta', { name: 'twitter:card', content: 'summary_large_image' }], - ], + // NOTE: do NOT pass `head` here — @codecora/theme createConfig() drops + // opts.head (never merged into its hardcoded head array). OG/Twitter meta + // lives in docs/index.md frontmatter instead; theme fix tracked separately. ignoreDeadLinks: true, sidebar: [ { diff --git a/docs/index.md b/docs/index.md index 5c10057..b8164cc 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,5 +1,27 @@ --- layout: home +head: + - - meta + - property: og:url + content: 'https://codecora.dev/covecto/docs' + - - meta + - property: og:title + content: 'Covecto: Image to SVG Vectorizer CLI | CodeCora' + - - meta + - property: og:description + content: 'Covecto converts images to SVG with a dual-engine vectorizer CLI: pixel-exact for icons, smooth Bézier curves for art. SVG, PDF, EPS output. Zero dependencies.' + - - meta + - name: twitter:card + content: 'summary_large_image' + - - meta + - name: twitter:title + content: 'Covecto: Image to SVG Vectorizer CLI | CodeCora' + - - meta + - name: twitter:description + content: 'Covecto converts images to SVG with a dual-engine vectorizer CLI: pixel-exact for icons, smooth Bézier curves for art. SVG, PDF, EPS output. Zero dependencies.' + - - link + - rel: canonical + href: 'https://codecora.dev/covecto/docs' hero: name: covecto