Skip to content

Commit 811e3e9

Browse files
RDoc-3729 Convert all custom frontmatter to snake_case and fix tag naming
# Conflicts: # src/theme/DocItem/Metadata/index.tsx
1 parent 17130b0 commit 811e3e9

97 files changed

Lines changed: 681 additions & 407 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CLAUDE.md

Lines changed: 107 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,11 +135,94 @@ Each folder contains `_category_.json`:
135135

136136
---
137137

138+
## Frontmatter Naming Convention
139+
**CRITICAL RULE**: All custom frontmatter fields MUST use `snake_case`. Never use camelCase for custom frontmatter.
140+
- ✅ Correct: `published_at`, `proficiency_level`, `external_url`, `img_alt`, `repository_url`, `license_url`
141+
- ❌ Wrong: `publishedAt`, `proficiencyLevel`, `externalUrl`, `imgAlt`, `repositoryUrl`, `licenseUrl`
142+
- Standard Docusaurus fields (e.g., `title`, `description`, `slug`) remain as-is.
143+
- Tag values in guides and samples MUST use `kebab-case` (e.g., `vector-search`, `azure-storage-queues-etl`).
144+
145+
---
146+
138147
## Guides
139148
- Tags defined in `guides/tags.yml` (~40 predefined tags — do not invent new ones without adding there first).
140-
- Guide-specific frontmatter: `tags`, `description`, `icon`, `image`, `publishedAt` (ISO date), `externalUrl`.
149+
- Guide-specific frontmatter: `tags`, `description`, `icon`, `image`, `published_at` (ISO date), `external_url`, `proficiency_level`, `author`.
141150
- Indexed and sorted by `src/plugins/recent-guides-plugin.ts`.
142151

152+
### Guides Frontmatter Example
153+
```yaml
154+
---
155+
title: "Guide Title"
156+
published_at: 2026-04-02
157+
author: "Author Name"
158+
tags: [ai, vector-search, getting-started]
159+
description: "Short description shown in cards."
160+
image: "/img/guides-example.webp"
161+
proficiency_level: "Beginner"
162+
---
163+
```
164+
165+
For external guides (linking to blog posts):
166+
```yaml
167+
---
168+
title: "External Article Title"
169+
published_at: 2026-04-02
170+
tags: [integration]
171+
description: "Short description."
172+
external_url: "https://ravendb.net/articles/example"
173+
image: "https://ravendb.net/path/to/image.jpg"
174+
---
175+
```
176+
177+
---
178+
179+
## Samples
180+
- Production-ready code samples demonstrating RavenDB features and architecture patterns.
181+
- Located in `samples/` directory.
182+
- Three-category tag system: Challenges & Solutions, Features, Tech Stack.
183+
- Tags defined in `samples/tags/` YAML files — do not invent new ones without adding there first.
184+
- Indexed by `src/plugins/recent-samples-plugin.ts`.
185+
- Hub page at `/samples` with filtering by tags.
186+
187+
### Sample Tag Categories
188+
1. **Challenges & Solutions** (`samples/tags/challenges-solutions.yml`) - Business problems the sample solves
189+
- Examples: `semantic-search`, `integration-patterns`, `cloud-tax`, `gen-ai-data-enrichment`
190+
191+
2. **Features** (`samples/tags/feature.yml`) - RavenDB features demonstrated
192+
- Examples: `vector-search`, `document-refresh`, `include`, `azure-storage-queues-etl`
193+
194+
3. **Tech Stack** (`samples/tags/tech-stack.yml`) - Technologies used
195+
- Examples: `csharp`, `aspire`, `azure-functions`, `nodejs`, `nextjs`
196+
197+
### Sample Frontmatter Example
198+
```yaml
199+
---
200+
title: "Sample Application Name"
201+
description: "Brief description for sample cards."
202+
challenges_solutions_tags: [semantic-search, integration-patterns]
203+
feature_tags: [vector-search, document-refresh, include]
204+
tech_stack_tags: [csharp, aspire, azure-functions]
205+
image: "/img/samples/my-sample/cover.webp"
206+
img_alt: "Screenshot of the application"
207+
category: "Ecommerce"
208+
license: "MIT License"
209+
license_url: "https://opensource.org/licenses/MIT"
210+
repository_url: "https://github.com/ravendb/sample-repo"
211+
languages: ["C#"]
212+
gallery:
213+
- src: "/img/samples/my-sample/screenshot-1.webp"
214+
alt: "Main interface"
215+
- src: "/img/samples/my-sample/screenshot-2.webp"
216+
alt: "Admin dashboard"
217+
---
218+
```
219+
220+
**Required fields**: `title`, `description`, `challenges_solutions_tags`, `feature_tags`, `tech_stack_tags`
221+
222+
**Optional fields**: `image`, `img_alt`, `category`, `license`, `license_url`, `repository_url`, `languages`, `gallery`
223+
224+
**SEO**: `repository_url` and `languages` feed `SoftwareSourceCode` JSON-LD schema for better search visibility.
225+
143226
---
144227

145228
## Icon System
@@ -377,11 +460,31 @@ Each folder contains `_category_.json`:
377460
### `cloud/` — RavenDB Cloud service documentation (~24 files)
378461
Account management, instance configuration, security (TLS, MFA, certificates), pricing/billing, scaling, backup/restore, migration, AWS/Azure Marketplace setup, and the cloud portal UI (home, products, billing, backups, support tabs).
379462

380-
### `guides/` — Practical how-to guides (~63 files, flat structure)
381-
Community guides covering: connecting specific frameworks (ASP.NET Core, Next.js, SvelteKit, FastAPI), AI/ML integration, DevOps (Docker, Kubernetes/EKS, Helm, Ansible), observability (Datadog, Grafana/OpenTelemetry), data pipelines (Elasticsearch, Azure Queue, OLAP ETL), testing (unit test drivers for .NET/Java/Python), and troubleshooting specific problems. Tags defined in `guides/tags.yml`.
463+
### `guides/` — Practical how-to guides (~64 files, flat structure)
464+
Community guides covering: connecting specific frameworks (ASP.NET Core, Next.js, SvelteKit, FastAPI), AI/ML integration, DevOps (Docker, Kubernetes/EKS, Helm, Ansible), observability (Datadog, Grafana/OpenTelemetry), data pipelines (Elasticsearch, Azure Queue, OLAP ETL), testing (unit test drivers for .NET/Java/Python), and troubleshooting specific problems.
465+
466+
**Frontmatter**: `title`, `published_at`, `author`, `tags`, `description`, `icon`, `image`, `proficiency_level`, `external_url` (for external guides).
467+
468+
**Tags**: Defined in `guides/tags.yml` (~40 predefined tags — do not invent new ones without adding there first). All tag values use kebab-case.
469+
470+
**Indexed by**: `src/plugins/recent-guides-plugin.ts`
471+
472+
### `samples/` — Production-ready code samples (~1+ files)
473+
Production-ready code samples, architecture patterns, and starter kits demonstrating RavenDB features and integration scenarios. Hub page at `/samples` with tag-based filtering.
474+
475+
**Frontmatter**: `title`, `description`, `challenges_solutions_tags`, `feature_tags`, `tech_stack_tags`, `image`, `img_alt`, `category`, `license`, `license_url`, `repository_url`, `languages`, `gallery`.
476+
477+
**Tags**: Three categories defined in `samples/tags/`:
478+
- `challenges-solutions.yml` - Business problems solved (e.g., `semantic-search`, `integration-patterns`)
479+
- `feature.yml` - RavenDB features demonstrated (e.g., `vector-search`, `document-refresh`)
480+
- `tech-stack.yml` - Technologies used (e.g., `csharp`, `aspire`, `azure-functions`)
481+
482+
All tag values use kebab-case.
483+
484+
**Indexed by**: `src/plugins/recent-samples-plugin.ts`
382485

383486
### `templates/` — Authoring reference templates (~9 files)
384-
Style guide and live examples for documentation building blocks: ContentFrame/Panel layouts, icon gallery, themed images, tag reference, see-also cross-links, featured/new guide blocks.
487+
Style guide and live examples for documentation building blocks: ContentFrame/Panel layouts, icon gallery, themed images, tag reference, see-also cross-links, featured/new guide blocks, sample authoring templates.
385488

386489
---
387490

eslint.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ module.exports = [
7474
"@typescript-eslint/no-explicit-any": "off",
7575
"@typescript-eslint/prefer-namespace-keyword": "off",
7676

77-
"no-console": "warn",
77+
"no-console": ["warn", { allow: ["warn", "error"] }],
7878
"no-debugger": "error",
7979
"no-alert": "warn",
8080
"no-var": "error",

guides/ai-image-search-with-ravendb.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
title: "AI Image Search with RavenDB"
33
tags: [ai, csharp, demo, use-case]
44
description: "Read about AI Image Search with RavenDB on the RavenDB.net news section"
5-
externalUrl: "https://ravendb.net/articles/ai-image-search-with-ravendb"
6-
publishedAt: 2025-09-09
5+
external_url: "https://ravendb.net/articles/ai-image-search-with-ravendb"
6+
published_at: 2025-09-09
77
icon: "ai"
8-
proficiencyLevel: "Expert"
8+
proficiency_level: "Expert"
99
---
1010

guides/begin-analysis-with-olap-etl.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
title: "Begin Analysis with OLAP ETL"
33
tags: [integration, background-tasks, architecture, use-case]
44
description: "Read about Begin Analysis with OLAP ETL on the RavenDB.net news section"
5-
externalUrl: "https://ravendb.net/articles/begin-analysis-with-olap-etl"
6-
publishedAt: 2025-12-22
5+
external_url: "https://ravendb.net/articles/begin-analysis-with-olap-etl"
6+
published_at: 2025-12-22
77
image: "https://ravendb.net/wp-content/uploads/2025/12/OLAP-article-image.svg"
8-
proficiencyLevel: "Expert"
8+
proficiency_level: "Expert"
99
---
1010

guides/building-a-beer-vending-machine-program-with-ravendb-embedded-server.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
title: "Building a Beer Vending Machine with RavenDB Embedded"
33
tags: [demo, getting-started]
44
description: "Read about Building a Beer Vending Machine with RavenDB Embedded on the RavenDB.net news section"
5-
externalUrl: "https://ravendb.net/articles/building-a-beer-vending-machine-program-with-ravendb-embedded-server"
6-
publishedAt: 2025-12-23
5+
external_url: "https://ravendb.net/articles/building-a-beer-vending-machine-program-with-ravendb-embedded-server"
6+
published_at: 2025-12-23
77
image: "https://ravendb.net/wp-content/uploads/2024/11/article-beer-2.jpg"
8-
proficiencyLevel: "Beginner"
8+
proficiency_level: "Beginner"
99
---
1010

guides/connecting-c-application-to-ravendb-cloud.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
title: "Connecting C# application to RavenDB Cloud"
33
tags: [csharp, getting-started]
44
description: "Read about Connecting C# application to RavenDB Cloud on the RavenDB.net news section"
5-
externalUrl: "https://ravendb.net/articles/connecting-c-application-to-ravendb-cloud"
6-
publishedAt: 2025-02-25
5+
external_url: "https://ravendb.net/articles/connecting-c-application-to-ravendb-cloud"
6+
published_at: 2025-02-25
77
image: "https://ravendb.net/wp-content/uploads/2025/01/connecting-c-application-article-cover.jpg"
8-
proficiencyLevel: "Beginner"
8+
proficiency_level: "Beginner"
99
---

guides/connecting-node-js-application-to-ravendb-cloud.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
title: "Connecting Node.js application to RavenDB Cloud"
33
tags: [nodejs, getting-started]
44
description: "Read about Connecting Node.js application to RavenDB Cloud on the RavenDB.net news section."
5-
externalUrl: "https://ravendb.net/articles/connecting-node-js-application-to-ravendb-cloud"
6-
publishedAt: 2025-02-25
5+
external_url: "https://ravendb.net/articles/connecting-node-js-application-to-ravendb-cloud"
6+
published_at: 2025-02-25
77
image: "https://ravendb.net/wp-content/uploads/2025/01/connecting-nodejs-to-ravendb-article-cover.jpg"
8-
proficiencyLevel: "Beginner"
8+
proficiency_level: "Beginner"
99
---

guides/connecting-node-js-web-application-to-ravendb.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
title: "Connecting Node.JS web application to RavenDB"
33
tags: [nodejs, getting-started]
44
description: "Read about Connecting Node.JS web application to RavenDB on the RavenDB.net news section"
5-
externalUrl: "https://ravendb.net/articles/connecting-node-js-web-application-to-ravendb"
6-
publishedAt: 2025-02-25
5+
external_url: "https://ravendb.net/articles/connecting-node-js-web-application-to-ravendb"
6+
published_at: 2025-02-25
77
image: "https://ravendb.net/wp-content/uploads/2024/12/NodeJS-article-cover.jpg"
8-
proficiencyLevel: "Beginner"
8+
proficiency_level: "Beginner"
99
---

guides/deploying-ravendb-with-helm-chart.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
title: "Deploying RavenDB with Helm Chart"
33
tags: [deployment, kubernetes, docker, containers]
44
description: "Read about Deploying RavenDB with Helm Chart on the RavenDB.net news section"
5-
externalUrl: "https://ravendb.net/articles/deploying-ravendb-with-helm-chart"
6-
publishedAt: 2025-11-18
5+
external_url: "https://ravendb.net/articles/deploying-ravendb-with-helm-chart"
6+
published_at: 2025-11-18
77
image: "https://ravendb.net/wp-content/uploads/2025/05/helm-chart-article-cover.jpg"
8-
proficiencyLevel: "Expert"
8+
proficiency_level: "Expert"
99
---

guides/diacritic-sensitive-search-in-ravendb.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
title: "Diacritic-Sensitive Search in RavenDB"
33
tags: [demo, querying, use-case]
44
description: "Read about Diacritic-Sensitive Search in RavenDB on the RavenDB.net news section"
5-
externalUrl: "https://ravendb.net/articles/diacritic-sensitive-search-in-ravendb"
6-
publishedAt: 2025-05-09
5+
external_url: "https://ravendb.net/articles/diacritic-sensitive-search-in-ravendb"
6+
published_at: 2025-05-09
77
image: "https://ravendb.net/wp-content/uploads/2025/05/diacritic-sensitive-article.jpg"
8-
proficiencyLevel: "Expert"
8+
proficiency_level: "Expert"
99
---
1010

0 commit comments

Comments
 (0)