docs: add og:title and fix punctuation in docs#58
Conversation
add redis and meilisearch env config examples, update required services list, add notes about remote docker compose and env customization
Standardized OG title metadata by adding the 'Project CVSA' prefix across all docs, fixed trailing punctuation on select pages, and improved SEO presentation and formatting consistency.
revise the notes about manual env config and variable consistency requirements
|
Warning Rate limit exceeded
You’ve run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Repository UI (base), Organization UI (inherited) Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughDocumentation pages receive standardized Open Graph metadata ( ChangesDocumentation metadata and setup
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 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 |
There was a problem hiding this comment.
Actionable comments posted: 5
🧹 Nitpick comments (1)
apps/docs/content/internal/developers/guide.md (1)
60-60: ⚡ Quick winClarify env key names instead of literal values.
Line 60 mixes variable name (
MEILI_MASTER_KEY) with literal values (cvsa,password), which is ambiguous. Please name the exact env keys to keep in sync (e.g., DB user/password/db name keys in.env.docker).🤖 Prompt for 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. In `@apps/docs/content/internal/developers/guide.md` at line 60, The sentence currently mixes an env variable name (MEILI_MASTER_KEY) with literal credentials (cvsa, password); update the text to reference the actual environment variable keys that must match `.env.docker` (e.g., DB_USER, DB_PASSWORD, DB_NAME or whatever keys are used there) and state that MEILI_MASTER_KEY and those specific env keys in `.env.docker` must be kept in sync, so readers know which variables to change rather than literal values.
🤖 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 `@apps/docs/content/internal/developers/crawler/overview.md`:
- Line 4: Update the social preview meta so it follows the new global prefix
convention: replace the existing line "og:title: 新爬虫架构概览" with the prefixed
title used across pages (e.g. "og:title: Project CVSA - 新爬虫架构概览") so the
og:title meta matches other updated pages; modify the "og:title" line in this
document accordingly.
In `@apps/docs/content/internal/developers/guide.md`:
- Line 4: The og:title meta value currently contains a duplicated word ("开发") —
update the og:title entry (the "og:title" meta line) to remove the extra "开发" so
it reads "Project CVSA 开发者指南" instead of "Project CVSA 开发开发者指南".
- Around line 64-65: 文本中对服务数量的描述不一致:在“你需要准备一个 PostgreSQL 18 、Redis 7 以及
MeiliSearch 1.40
实例来辅助开发和调试。”之后的句子使用了“这两个容器”,会造成歧义;请将“这两个容器”改为“这三个容器”或改为不带数字的表述(例如“这些容器”),以保持与前句中列举的服务(PostgreSQL
18、Redis 7、MeiliSearch 1.40)一致并消除歧义。
In `@apps/docs/content/internal/legacy/crawling-lifecycle.md`:
- Line 4: Update the og:title metadata value to match the standardized "Project
CVSA …" pattern by replacing the current line `og:title: 一次完整爬取的生命周期` with the
unified format (for example `og:title: Project CVSA — 一次完整爬取的生命周期`), editing the
`og:title` metadata entry in the markdown header so social preview titles are
consistent.
In `@apps/docs/content/not-found.md`:
- Line 4: The frontmatter contains an empty og:image value which is likely
accidental; either remove the empty og:image key, replace it with a valid
absolute image URL (a publicly accessible Open Graph image) or, if you intend to
keep a placeholder, add a clear comment or placeholder value (e.g., a TODO or
placeholder URL) so the intent is explicit; update the og:image entry in the
not-found.md frontmatter accordingly and ensure the URL is reachable and correct
when adding an image.
---
Nitpick comments:
In `@apps/docs/content/internal/developers/guide.md`:
- Line 60: The sentence currently mixes an env variable name (MEILI_MASTER_KEY)
with literal credentials (cvsa, password); update the text to reference the
actual environment variable keys that must match `.env.docker` (e.g., DB_USER,
DB_PASSWORD, DB_NAME or whatever keys are used there) and state that
MEILI_MASTER_KEY and those specific env keys in `.env.docker` must be kept in
sync, so readers know which variables to change rather than literal values.
🪄 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: Repository UI (base), Organization UI (inherited)
Review profile: CHILL
Plan: Pro
Run ID: 8a393ab0-99ed-43da-8019-664ff5ab9580
⛔ Files ignored due to path filters (1)
bun.lockis excluded by!**/*.lock
📒 Files selected for processing (21)
apps/docs/content/internal/developers/architecture.mdapps/docs/content/internal/developers/crawler/meta.jsonapps/docs/content/internal/developers/crawler/overview.mdapps/docs/content/internal/developers/guide.mdapps/docs/content/internal/developers/meta.jsonapps/docs/content/internal/developers/style-guide.mdapps/docs/content/internal/developers/workflow.mdapps/docs/content/internal/index.mdapps/docs/content/internal/legacy/architecture-overview.mdapps/docs/content/internal/legacy/crawling-lifecycle.mdapps/docs/content/internal/legacy/database-schema-reference.mdapps/docs/content/internal/legacy/message-queue-reference.mdapps/docs/content/internal/legacy/meta.jsonapps/docs/content/internal/legacy/network-proxy-architecture.mdapps/docs/content/internal/legacy/snapshot-execution.mdapps/docs/content/internal/legacy/snapshot-scheduling.mdapps/docs/content/internal/legacy/song-collection-pipeline.mdapps/docs/content/internal/legacy/video-discovery-pipeline.mdapps/docs/content/internal/meta.jsonapps/docs/content/not-found.en.mdapps/docs/content/not-found.md
| --- | ||
| title: 新爬虫架构概览 | ||
| description: CVSA 2.0 爬虫系统的总体设计、核心设计目标与节点角色定义 | ||
| og:title: 新爬虫架构概览 |
There was a problem hiding this comment.
Align og:title with the new global prefix convention.
Line 4 uses 新爬虫架构概览, while other updated pages use Project CVSA .... This creates inconsistent social preview titles.
🤖 Prompt for 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.
In `@apps/docs/content/internal/developers/crawler/overview.md` at line 4, Update
the social preview meta so it follows the new global prefix convention: replace
the existing line "og:title: 新爬虫架构概览" with the prefixed title used across pages
(e.g. "og:title: Project CVSA - 新爬虫架构概览") so the og:title meta matches other
updated pages; modify the "og:title" line in this document accordingly.
| --- | ||
| title: 开发者指南 | ||
| description: 了解如何参与档案馆的开发工作。 | ||
| og:title: Project CVSA 开发开发者指南 |
There was a problem hiding this comment.
Fix duplicated wording in og:title.
Line 4 currently has Project CVSA 开发开发者指南; 开发 is duplicated and will surface in social previews.
🤖 Prompt for 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.
In `@apps/docs/content/internal/developers/guide.md` at line 4, The og:title meta
value currently contains a duplicated word ("开发") — update the og:title entry
(the "og:title" meta line) to remove the extra "开发" so it reads "Project CVSA
开发者指南" instead of "Project CVSA 开发开发者指南".
| title: 一次完整爬取的生命周期 | ||
| description: 从视频发现到成就追踪的全流程示例,展示爬虫系统如何处理一个新视频的完整生命周期 | ||
| description: 从视频发现到成就追踪的全流程示例,展示爬虫系统如何处理一个新视频的完整生命周期。 | ||
| og:title: 一次完整爬取的生命周期 |
There was a problem hiding this comment.
Unify og:title format with the rest of docs metadata.
Line 4 uses a different pattern from the standardized Project CVSA … format used in this PR cohort. Please align it to keep social preview titles consistent.
Suggested fix
-og:title: 一次完整爬取的生命周期
+og:title: Project CVSA 一次完整爬取的生命周期📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| og:title: 一次完整爬取的生命周期 | |
| og:title: Project CVSA 一次完整爬取的生命周期 |
🤖 Prompt for 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.
In `@apps/docs/content/internal/legacy/crawling-lifecycle.md` at line 4, Update
the og:title metadata value to match the standardized "Project CVSA …" pattern
by replacing the current line `og:title: 一次完整爬取的生命周期` with the unified format
(for example `og:title: Project CVSA — 一次完整爬取的生命周期`), editing the `og:title`
metadata entry in the markdown header so social preview titles are consistent.
1. remove empty og:image field from not-found page 2. correct the count of containers to 3 instead of 2 in dev guide
Enhance documentation site SEO configuration: add robots.txt, refine site manifest, and generate a complete sitemap.
There was a problem hiding this comment.
Why does it appear here instead of being generated at build time?
- Add robots.txt and sitemap generation script for search engine discoverability - Replace hardcoded <title> with Next.js Metadata API on landing page - Add Open Graph and Twitter Card metadata to landing and docs pages - Add canonical URLs and JSON-LD structured data - Add sr-only description text on landing page for search engine indexing - Remove client-side document.title setting (now handled by Metadata API) - Improve 404 page with metadata, noindex directive, and homepage link - Update build script to generate sitemap.xml after static export
add the full git commit message specification rules file to the project
add the full git commit message specification rules file to the project
…aibeto-26-SEO_extend_2
- Add complete Next.js Metadata configurations to landing page layout components, including titles, descriptions, canonical URLs, multilingual adaptation, Open Graph and Twitter Card information. - Remove hardcoded title tags in HTML templates and adopt unified metadata configurations instead. - Revise the main text and footnote notes in the Git commit specification document to use English description requirements.
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 @.trae/rules/git-commit-message.md:
- Around line 10-16: Update the commit message template placeholders from
Chinese to English: replace occurrences of "<类型>(<作用域>): <描述>" with
"<type>(<scope>): <description>", change "[正文(英文描述)]" to "[body]" and
"[脚注(英文描述)]" to "[footer]", and remove the "(英文描述)" annotations so the template
uses consistent English placeholders (look for the template block containing
those placeholder tokens).
In `@apps/docs/app/`(docs)/[lang]/[[...slug]]/page.tsx:
- Around line 86-95: The canonical/alternate URL construction uses url =
`${baseUrl}/${lang}/${currentPage}` and yields an extra trailing segment when
currentPage is empty; change the URL assembly to omit the "/{currentPage}"
portion for root pages (e.g., compute a normalized segment like currentPage ?
`/${currentPage}` : '' and use `${baseUrl}/${lang}${normalizedSegment}`) and
apply the same normalization for alternates.languages entries so root docs use
`${baseUrl}/en` and `${baseUrl}/zh` (no extra trailing segment).
🪄 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: Repository UI (base), Organization UI (inherited)
Review profile: CHILL
Plan: Pro
Run ID: c19dfd30-5fe5-405e-b603-a6aa27f65681
📒 Files selected for processing (9)
.trae/rules/git-commit-message.mdapps/docs/app/(docs)/[lang]/[[...slug]]/page.tsxapps/docs/app/(landing)/layout.tsxapps/docs/app/not-found.tsxapps/docs/content/internal/developers/guide.mdapps/docs/content/not-found.mdapps/docs/public/robots.txtapps/docs/public/site.webmanifestapps/docs/public/sitemap.xml
✅ Files skipped from review due to trivial changes (3)
- apps/docs/public/robots.txt
- apps/docs/public/sitemap.xml
- apps/docs/content/not-found.md
🚧 Files skipped from review as they are similar to previous changes (1)
- apps/docs/content/internal/developers/guide.md
| ```text | ||
| <类型>(<作用域>): <描述> | ||
|
|
||
| [正文(英文描述)] | ||
|
|
||
| [脚注(英文描述)] | ||
| ``` |
There was a problem hiding this comment.
Template placeholders should use English to match the requirement.
The template on line 11 uses Chinese placeholders (<类型>(<作用域>): <描述>), but line 8 requires all commit messages to be in English. This inconsistency could confuse developers about what language to use.
Consider updating the template to use English placeholders for clarity:
```text
-<类型>(<作用域>): <描述>
+<type>(<scope>): <description>
-[正文(英文描述)]
+[body]
-[脚注(英文描述)]
+[footer]
The "(英文描述)" annotations on lines 13 and 15 would also become unnecessary with this change.
<details>
<summary>🤖 Prompt for AI Agents</summary>
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.trae/rules/git-commit-message.md around lines 10 - 16, Update the commit
message template placeholders from Chinese to English: replace occurrences of
"<类型>(<作用域>): <描述>" with "(): ", change "[正文(英文描述)]"
to "[body]" and "[脚注(英文描述)]" to "[footer]", and remove the "(英文描述)" annotations
so the template uses consistent English placeholders (look for the template
block containing those placeholder tokens).
</details>
<!-- fingerprinting:phantom:triton:puma -->
<!-- This is an auto-generated comment by CodeRabbit -->
| const url = `${baseUrl}/${lang}/${currentPage}`; | ||
| return { | ||
| title: page.data.title, | ||
| description: page.data.description, | ||
| alternates: { | ||
| canonical: url, | ||
| languages: { | ||
| zh: `${baseUrl}/zh/${currentPage}`, | ||
| en: `${baseUrl}/en/${currentPage}`, | ||
| "x-default": `${baseUrl}/en/${currentPage}`, |
There was a problem hiding this comment.
Normalize root-page canonical/alternate URLs.
At Line 86, when slug is empty, URLs become .../en/ and .../zh/. Keeping root docs URLs normalized (no extra trailing segment) avoids inconsistent canonical signals.
Suggested fix
- const currentPage = cleanSlug.join("/");
- const url = `${baseUrl}/${lang}/${currentPage}`;
+ const currentPage = cleanSlug.join("/");
+ const slugPath = currentPage ? `/${currentPage}` : "";
+ const url = `${baseUrl}/${lang}${slugPath}`;
return {
@@
alternates: {
canonical: url,
languages: {
- zh: `${baseUrl}/zh/${currentPage}`,
- en: `${baseUrl}/en/${currentPage}`,
- "x-default": `${baseUrl}/en/${currentPage}`,
+ zh: `${baseUrl}/zh${slugPath}`,
+ en: `${baseUrl}/en${slugPath}`,
+ "x-default": `${baseUrl}/en${slugPath}`,
},
},🤖 Prompt for 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.
In `@apps/docs/app/`(docs)/[lang]/[[...slug]]/page.tsx around lines 86 - 95, The
canonical/alternate URL construction uses url =
`${baseUrl}/${lang}/${currentPage}` and yields an extra trailing segment when
currentPage is empty; change the URL assembly to omit the "/{currentPage}"
portion for root pages (e.g., compute a normalized segment like currentPage ?
`/${currentPage}` : '' and use `${baseUrl}/${lang}${normalizedSegment}`) and
apply the same normalization for alternates.languages entries so root docs use
`${baseUrl}/en` and `${baseUrl}/zh` (no extra trailing segment).
replace static sitemap file with dynamic Next.js sitemap generation, remove old sitemap.xml
Changes
og:titlefields in many Markdown and JSON front-matter files under apps/docs/content/ (internal, legacy, crawler, workflow, style-guide, index, etc.) to standardize social sharing titles (pattern: "Project CVSA {page-description}").meta.jsonfiles (developers, developers/crawler, internal, legacy) to includeog:title.MEILI_API_URL,REDIS_URL, and notes about keepingMEILI_MASTER_KEY,cvsa, andpasswordconsistent with.env.docker).docker-compose-remote.ymland copying.env.docker).metadataexport for the docs 404 page (apps/docs/app/not-found.tsx) including noindex via robots and updated localized content/layout.og:titleto the not-found Markdown pages (not-found.md,not-found.en.md). (A prior fix removed an emptyog:imageentry.)robots.txt(apps/docs/public/robots.txt).sitemap.xml(apps/docs/public/sitemap.xml) and updated build script to generate sitemap after static export.site.webmanifest(apps/docs/public/site.webmanifest): setnameandshort_name.generateMetadatain the page route (apps/docs/app/(docs)/[lang]/[[...slug]]/page.tsx) to include canonical/alternates, Open Graph, and Twitter card fields..trae/rules/git-commit-message.md) to enforce commit format and allowed types.