diff --git a/.cursor/rules/website/main.mdc b/.cursor/rules/website/main.mdc new file mode 100644 index 0000000000..5a32f49a08 --- /dev/null +++ b/.cursor/rules/website/main.mdc @@ -0,0 +1,40 @@ +--- +description: documentation website - source code and content +globs: docs/website/** +alwaysApply: false +--- + +# Documentation Website + +## Language + +All generated text MUST be written in English. + +## Project Context + +QVAC is an OSS ecosystem for developers building local AI applications and systems. + +`docs/website` is the developer portal for QVAC project. + +The goal of this context (chat) is to improve this website. This includes: the website source code AND all the resources we provide for our developer-users to be capable of using QVAC — references, tutorials, learning materials, code examples, templates, starter kits, etc. + +## Repository Layout + +`docs/website/` contains website source code and WITHIN it, `docs/website/content/` contains all content (resources) in MDX files. + +## Tech Stack + +- **Framework:** Next.js + Fumadocs +- **Output:** 100% static site. At build time, all HTML pages are generated into `docs/website/out/` and then served from a CDN. There is no server-side runtime. + +## Scope of Work + +The goal of this context is one of the following or both: + +1. Improve website source code: changes to components, configuration, styling, or build pipeline under `docs/website/` +2. Generate new content: create or update pages under `docs/website/content/` + +## Environments + +- Production: https://docs.qvac.tether.io +- Staging: https://docs.qvac.tether.su \ No newline at end of file diff --git a/docs/website/.env.example b/docs/website/.env.example index 1460e411e1..6a93028d48 100644 --- a/docs/website/.env.example +++ b/docs/website/.env.example @@ -1,9 +1,6 @@ # Production docs (Sevalla): set at build time on the app that serves https://docs.qvac.tether.io # so static HTML declares index,follow. Omit on preview/staging/PR builds. -# DOCS_ALLOW_INDEXING=1 - -# Force noindex in static HTML even when DOCS_ALLOW_INDEXING is set (emergency / wrong environment). -# DOCS_FORCE_NOINDEX=1 +# DOCS_ALLOW_INDEXING=true # Inkeep API Key for search and chat functionality NEXT_PUBLIC_INKEEP_API_KEY=your_inkeep_api_key_here diff --git a/docs/website/content/docs/about-qvac/flagship-apps.mdx b/docs/website/content/docs/about-qvac/flagship-apps.mdx index 9e160aca73..e8bf51d4d2 100644 --- a/docs/website/content/docs/about-qvac/flagship-apps.mdx +++ b/docs/website/content/docs/about-qvac/flagship-apps.mdx @@ -2,6 +2,7 @@ title: Flagship applications description: Desktop and mobile apps to empower users and showcase QVAC capabilities. ogImage: /og-flagship-apps.png +schemaType: TechArticle --- ## Overview diff --git a/docs/website/content/docs/about-qvac/how-it-works.mdx b/docs/website/content/docs/about-qvac/how-it-works.mdx index 1fb2b2fb71..3b00bb0cf6 100644 --- a/docs/website/content/docs/about-qvac/how-it-works.mdx +++ b/docs/website/content/docs/about-qvac/how-it-works.mdx @@ -1,6 +1,7 @@ --- title: How it works description: Understand what happens under the hood when you use QVAC SDK in your application. +schemaType: TechArticle --- ## Overview diff --git a/docs/website/content/docs/about-qvac/public-launch.mdx b/docs/website/content/docs/about-qvac/public-launch.mdx index a18b2e20ea..b3340e22c1 100644 --- a/docs/website/content/docs/about-qvac/public-launch.mdx +++ b/docs/website/content/docs/about-qvac/public-launch.mdx @@ -1,6 +1,7 @@ --- title: Public launch description: Tether's public launch of QVAC at Plan B Forum Lugano (October 2025) — keynotes from Paolo Ardoino, Subash, and Marco Chiappetta. +schemaType: TechArticle --- Tether publicly launched QVAC in October 2025 at the Plan B Forum in Lugano. During the forum, Tether CEO Paolo Ardoino presented QVAC's future vision in his keynote, _Fiat Lux_: diff --git a/docs/website/content/docs/about-qvac/vision.mdx b/docs/website/content/docs/about-qvac/vision.mdx index 128e5fe48e..5d6b11fadd 100644 --- a/docs/website/content/docs/about-qvac/vision.mdx +++ b/docs/website/content/docs/about-qvac/vision.mdx @@ -2,6 +2,7 @@ title: Our vision description: "Tether's vision for QVAC — the Infinite Stable Intelligence Platform — local-first AI at the edge, the foundational layer for the decentralized mind." ogImage: /og-vision.png +schemaType: TechArticle --- ## The world is waking up diff --git a/docs/website/content/docs/about-qvac/welcome.mdx b/docs/website/content/docs/about-qvac/welcome.mdx index d7be799038..4bf4398d25 100644 --- a/docs/website/content/docs/about-qvac/welcome.mdx +++ b/docs/website/content/docs/about-qvac/welcome.mdx @@ -2,6 +2,7 @@ title: Welcome description: Learn what QVAC is, why Tether built it, and what makes it different. ogImage: /og-welcome.png +schemaType: TechArticle --- ## What is QVAC? diff --git a/docs/website/content/docs/addons/diffusion-cpp/index.mdx b/docs/website/content/docs/addons/diffusion-cpp/index.mdx index 7fa51e1a07..8340902d49 100644 --- a/docs/website/content/docs/addons/diffusion-cpp/index.mdx +++ b/docs/website/content/docs/addons/diffusion-cpp/index.mdx @@ -2,6 +2,7 @@ title: "@qvac/diffusion-cpp" titleStyle: code description: Text-to-image generation from text prompts. +schemaType: APIReference --- ## Overview diff --git a/docs/website/content/docs/addons/embed-llamacpp/index.mdx b/docs/website/content/docs/addons/embed-llamacpp/index.mdx index 862c245ef6..db5cfdf546 100644 --- a/docs/website/content/docs/addons/embed-llamacpp/index.mdx +++ b/docs/website/content/docs/addons/embed-llamacpp/index.mdx @@ -2,6 +2,7 @@ title: "@qvac/embed-llamacpp" titleStyle: code description: Vector embedding generation for semantic search, clustering, and retrieval that seamlessly supports retrieval-augmented generation workflow. +schemaType: APIReference --- ## Overview diff --git a/docs/website/content/docs/addons/index.mdx b/docs/website/content/docs/addons/index.mdx index 8cdb9e3194..8e27c12790 100644 --- a/docs/website/content/docs/addons/index.mdx +++ b/docs/website/content/docs/addons/index.mdx @@ -2,6 +2,7 @@ title: Addons description: Reference for the QVAC components that provide AI capabilities. ogImage: /og-addons.png +schemaType: APIReference --- ## Overview diff --git a/docs/website/content/docs/addons/llm-llamacpp/index.mdx b/docs/website/content/docs/addons/llm-llamacpp/index.mdx index 1aeb13a468..74fb23f17a 100644 --- a/docs/website/content/docs/addons/llm-llamacpp/index.mdx +++ b/docs/website/content/docs/addons/llm-llamacpp/index.mdx @@ -2,6 +2,7 @@ title: "@qvac/llm-llamacpp" titleStyle: code description: LLM inference for text generation and chat with support to images, and other media within a single conversation context. +schemaType: APIReference --- ## Overview diff --git a/docs/website/content/docs/addons/ocr-onnx/index.mdx b/docs/website/content/docs/addons/ocr-onnx/index.mdx index f080d3c9c9..4d16e80e1e 100644 --- a/docs/website/content/docs/addons/ocr-onnx/index.mdx +++ b/docs/website/content/docs/addons/ocr-onnx/index.mdx @@ -2,6 +2,7 @@ title: "@qvac/ocr-onnx" titleStyle: code description: Optical character recognition (OCR) for extracting text from images. +schemaType: APIReference --- ## Overview diff --git a/docs/website/content/docs/addons/transcription-parakeet/index.mdx b/docs/website/content/docs/addons/transcription-parakeet/index.mdx index 2c19d7ba9c..70ce5442cc 100644 --- a/docs/website/content/docs/addons/transcription-parakeet/index.mdx +++ b/docs/website/content/docs/addons/transcription-parakeet/index.mdx @@ -2,6 +2,7 @@ title: "@qvac/transcription-parakeet" titleStyle: code description: Automatic speech recognition (ASR) for speech-to-text with speaker diarization. +schemaType: APIReference --- ## Overview diff --git a/docs/website/content/docs/addons/transcription-whispercpp/index.mdx b/docs/website/content/docs/addons/transcription-whispercpp/index.mdx index e1794640ad..86bb28ec73 100644 --- a/docs/website/content/docs/addons/transcription-whispercpp/index.mdx +++ b/docs/website/content/docs/addons/transcription-whispercpp/index.mdx @@ -2,6 +2,7 @@ title: "@qvac/transcription-whispercpp" titleStyle: code description: Automatic speech recognition (ASR) for speech-to-text. +schemaType: APIReference --- ## Overview diff --git a/docs/website/content/docs/addons/translation-nmtcpp/index.mdx b/docs/website/content/docs/addons/translation-nmtcpp/index.mdx index 8a4c296407..44214d24e2 100644 --- a/docs/website/content/docs/addons/translation-nmtcpp/index.mdx +++ b/docs/website/content/docs/addons/translation-nmtcpp/index.mdx @@ -2,6 +2,7 @@ title: "@qvac/translation-nmtcpp" titleStyle: code description: Text-to-text neural machine translation (NMT). +schemaType: APIReference --- > **Migration Note (v1.0.0+):** Opus/Marian model support has been removed. Only IndicTrans2 and Bergamot backends are supported. If you were using Opus models, migrate to Bergamot for European language pairs. diff --git a/docs/website/content/docs/addons/tts-onnx/index.mdx b/docs/website/content/docs/addons/tts-onnx/index.mdx index e3cde5488f..6e4aa38447 100644 --- a/docs/website/content/docs/addons/tts-onnx/index.mdx +++ b/docs/website/content/docs/addons/tts-onnx/index.mdx @@ -2,6 +2,7 @@ title: "@qvac/tts-onnx" titleStyle: code description: Speech synthesis for text-to-speech (TTS). +schemaType: APIReference --- ## Overview diff --git a/docs/website/content/docs/cli.mdx b/docs/website/content/docs/cli.mdx index 9bb9a92917..e70e04a1eb 100644 --- a/docs/website/content/docs/cli.mdx +++ b/docs/website/content/docs/cli.mdx @@ -2,6 +2,7 @@ title: CLI description: QVAC CLI provides tools and an HTTP server that exposes an OpenAI-compatible API. ogImage: /og-cli.png +schemaType: TechArticle --- ## Overview diff --git a/docs/website/content/docs/http-server.mdx b/docs/website/content/docs/http-server.mdx index 1e69547d64..7b81e14995 100644 --- a/docs/website/content/docs/http-server.mdx +++ b/docs/website/content/docs/http-server.mdx @@ -1,6 +1,7 @@ --- title: HTTP server description: Run a local HTTP server that exposes an OpenAI-compatible API. +schemaType: TechArticle --- ## Overview diff --git a/docs/website/content/docs/sdk/api/index.mdx b/docs/website/content/docs/sdk/api/index.mdx index 613e86dfe5..9351408b89 100644 --- a/docs/website/content/docs/sdk/api/index.mdx +++ b/docs/website/content/docs/sdk/api/index.mdx @@ -1,6 +1,7 @@ --- title: API Summary — v0.9.1 (latest) description: One-page reference of all public functions and objects exported by @qvac/sdk +schemaType: APIReference --- > Auto-generated from `.d.ts` declarations and TSDoc comments. diff --git a/docs/website/content/docs/sdk/api/v0.7.0.mdx b/docs/website/content/docs/sdk/api/v0.7.0.mdx index dbbd9814a1..346126e3d9 100644 --- a/docs/website/content/docs/sdk/api/v0.7.0.mdx +++ b/docs/website/content/docs/sdk/api/v0.7.0.mdx @@ -1,6 +1,7 @@ --- title: API Summary — v0.7.0 description: One-page reference of all public functions and objects exported by @qvac/sdk +schemaType: APIReference --- > Auto-generated from `.d.ts` declarations and TSDoc comments. diff --git a/docs/website/content/docs/sdk/api/v0.8.0.mdx b/docs/website/content/docs/sdk/api/v0.8.0.mdx index b46b6c493f..cd209bd341 100644 --- a/docs/website/content/docs/sdk/api/v0.8.0.mdx +++ b/docs/website/content/docs/sdk/api/v0.8.0.mdx @@ -1,6 +1,7 @@ --- title: API Summary — v0.8.0 description: One-page reference of all public functions and objects exported by @qvac/sdk +schemaType: APIReference --- > Auto-generated from `.d.ts` declarations and TSDoc comments. diff --git a/docs/website/content/docs/sdk/examples/ai-tasks/completion.mdx b/docs/website/content/docs/sdk/examples/ai-tasks/completion.mdx index f8bc813b30..c36e95674a 100644 --- a/docs/website/content/docs/sdk/examples/ai-tasks/completion.mdx +++ b/docs/website/content/docs/sdk/examples/ai-tasks/completion.mdx @@ -1,6 +1,7 @@ --- title: Completion description: LLM inference for text generation and chat — i.e., use a large language model to generate text output based on input prompts and context. +schemaType: HowTo --- ## Overview diff --git a/docs/website/content/docs/sdk/examples/ai-tasks/fine-tuning.mdx b/docs/website/content/docs/sdk/examples/ai-tasks/fine-tuning.mdx index 8eff74b798..1f4a8a0384 100644 --- a/docs/website/content/docs/sdk/examples/ai-tasks/fine-tuning.mdx +++ b/docs/website/content/docs/sdk/examples/ai-tasks/fine-tuning.mdx @@ -1,6 +1,7 @@ --- title: Fine-tuning description: Adapting LLMs to domain-specific tasks via LoRA — i.e., train small adapter weights on custom datasets to specialize model behavior. +schemaType: HowTo --- ## Overview diff --git a/docs/website/content/docs/sdk/examples/ai-tasks/image-generation.mdx b/docs/website/content/docs/sdk/examples/ai-tasks/image-generation.mdx index 34bb66324b..0a542e9801 100644 --- a/docs/website/content/docs/sdk/examples/ai-tasks/image-generation.mdx +++ b/docs/website/content/docs/sdk/examples/ai-tasks/image-generation.mdx @@ -1,6 +1,7 @@ --- title: Image generation description: Text-to-image and image-to-image generation using Stable Diffusion. +schemaType: HowTo --- ## Overview diff --git a/docs/website/content/docs/sdk/examples/ai-tasks/multimodal.mdx b/docs/website/content/docs/sdk/examples/ai-tasks/multimodal.mdx index c4b730ff67..d269cebdf4 100644 --- a/docs/website/content/docs/sdk/examples/ai-tasks/multimodal.mdx +++ b/docs/website/content/docs/sdk/examples/ai-tasks/multimodal.mdx @@ -1,6 +1,7 @@ --- title: Multimodal description: LLM inference over text, images, and other media within a single conversation context. +schemaType: HowTo --- ## Overview diff --git a/docs/website/content/docs/sdk/examples/ai-tasks/ocr.mdx b/docs/website/content/docs/sdk/examples/ai-tasks/ocr.mdx index f3c15a0ce9..ac6bba39f8 100644 --- a/docs/website/content/docs/sdk/examples/ai-tasks/ocr.mdx +++ b/docs/website/content/docs/sdk/examples/ai-tasks/ocr.mdx @@ -1,6 +1,7 @@ --- title: OCR description: Optical character recognition (OCR) for extracting text from images. +schemaType: HowTo --- ## Overview diff --git a/docs/website/content/docs/sdk/examples/ai-tasks/rag.mdx b/docs/website/content/docs/sdk/examples/ai-tasks/rag.mdx index c3c0fa16f5..169c9556d5 100644 --- a/docs/website/content/docs/sdk/examples/ai-tasks/rag.mdx +++ b/docs/website/content/docs/sdk/examples/ai-tasks/rag.mdx @@ -1,6 +1,7 @@ --- title: RAG description: Out-of-the-box retrieval-augmented generation workflow. +schemaType: HowTo --- ## Overview diff --git a/docs/website/content/docs/sdk/examples/ai-tasks/text-embeddings.mdx b/docs/website/content/docs/sdk/examples/ai-tasks/text-embeddings.mdx index 63d0a74c2e..e4ab1888ed 100644 --- a/docs/website/content/docs/sdk/examples/ai-tasks/text-embeddings.mdx +++ b/docs/website/content/docs/sdk/examples/ai-tasks/text-embeddings.mdx @@ -1,6 +1,7 @@ --- title: Text embeddings description: Vector embedding generation for semantic search, clustering, and retrieval. +schemaType: HowTo --- ## Overview diff --git a/docs/website/content/docs/sdk/examples/ai-tasks/text-to-speech.mdx b/docs/website/content/docs/sdk/examples/ai-tasks/text-to-speech.mdx index f4ab926cc3..bae3e504b5 100644 --- a/docs/website/content/docs/sdk/examples/ai-tasks/text-to-speech.mdx +++ b/docs/website/content/docs/sdk/examples/ai-tasks/text-to-speech.mdx @@ -1,6 +1,7 @@ --- title: Text-to-Speech description: Speech synthesis for text-to-speech (TTS) — i.e., generate audio using custom voices from written input. +schemaType: HowTo --- ## Overview diff --git a/docs/website/content/docs/sdk/examples/ai-tasks/transcription.mdx b/docs/website/content/docs/sdk/examples/ai-tasks/transcription.mdx index 8630da004a..4ed3f360c5 100644 --- a/docs/website/content/docs/sdk/examples/ai-tasks/transcription.mdx +++ b/docs/website/content/docs/sdk/examples/ai-tasks/transcription.mdx @@ -1,6 +1,7 @@ --- title: Transcription description: Automatic speech recognition (ASR) for speech-to-text — i.e., generate text transcriptions from audio input. +schemaType: HowTo --- ## Overview diff --git a/docs/website/content/docs/sdk/examples/ai-tasks/translation.mdx b/docs/website/content/docs/sdk/examples/ai-tasks/translation.mdx index bb86631775..b894e746bc 100644 --- a/docs/website/content/docs/sdk/examples/ai-tasks/translation.mdx +++ b/docs/website/content/docs/sdk/examples/ai-tasks/translation.mdx @@ -1,6 +1,7 @@ --- title: Translation description: Text-to-text neural machine translation (NMT) — i.e., translate text between different languages. +schemaType: HowTo --- ## Overview diff --git a/docs/website/content/docs/sdk/examples/p2p/blind-relays.mdx b/docs/website/content/docs/sdk/examples/p2p/blind-relays.mdx index 8d9f42184f..4c1f15f2bc 100644 --- a/docs/website/content/docs/sdk/examples/p2p/blind-relays.mdx +++ b/docs/website/content/docs/sdk/examples/p2p/blind-relays.mdx @@ -1,6 +1,7 @@ --- title: Blind relays description: Establish peer connections through NAT/firewalls by routing traffic via relay nodes. +schemaType: HowTo --- ## Overview diff --git a/docs/website/content/docs/sdk/examples/p2p/delegated-inference.mdx b/docs/website/content/docs/sdk/examples/p2p/delegated-inference.mdx index a4e8b4a196..a476dfdd28 100644 --- a/docs/website/content/docs/sdk/examples/p2p/delegated-inference.mdx +++ b/docs/website/content/docs/sdk/examples/p2p/delegated-inference.mdx @@ -1,6 +1,7 @@ --- title: Delegated inference description: Perform peer-to-peer inference delegation out-of-the-box via Holepunch stack, enabling resource sharing. +schemaType: HowTo --- ## Overview diff --git a/docs/website/content/docs/sdk/examples/utilities/download-lifecycle.mdx b/docs/website/content/docs/sdk/examples/utilities/download-lifecycle.mdx index 49d8987470..de4f0cd237 100644 --- a/docs/website/content/docs/sdk/examples/utilities/download-lifecycle.mdx +++ b/docs/website/content/docs/sdk/examples/utilities/download-lifecycle.mdx @@ -1,6 +1,7 @@ --- title: Download lifecycle description: Pause and resume model downloads. +schemaType: HowTo --- ## Overview diff --git a/docs/website/content/docs/sdk/examples/utilities/logging.mdx b/docs/website/content/docs/sdk/examples/utilities/logging.mdx index be8bd18063..fd794e6cb4 100644 --- a/docs/website/content/docs/sdk/examples/utilities/logging.mdx +++ b/docs/website/content/docs/sdk/examples/utilities/logging.mdx @@ -1,6 +1,7 @@ --- title: Logging description: Visibility into what's happening during loading, inference, and other operations. +schemaType: HowTo --- ## Overview diff --git a/docs/website/content/docs/sdk/examples/utilities/plugin-system.mdx b/docs/website/content/docs/sdk/examples/utilities/plugin-system.mdx index 604d81b727..47dcd659b7 100644 --- a/docs/website/content/docs/sdk/examples/utilities/plugin-system.mdx +++ b/docs/website/content/docs/sdk/examples/utilities/plugin-system.mdx @@ -1,6 +1,7 @@ --- title: Plugin system description: Enable and disable built-in AI capabilities, and add new ones via custom plugins. +schemaType: HowTo --- ## Overview diff --git a/docs/website/content/docs/sdk/examples/utilities/profiler.mdx b/docs/website/content/docs/sdk/examples/utilities/profiler.mdx index ffd47054ca..491b762fa7 100644 --- a/docs/website/content/docs/sdk/examples/utilities/profiler.mdx +++ b/docs/website/content/docs/sdk/examples/utilities/profiler.mdx @@ -1,6 +1,7 @@ --- title: Profiler description: Measure and export timing metrics across model loading, inference, and P2P delegation. +schemaType: HowTo --- ## Overview diff --git a/docs/website/content/docs/sdk/examples/utilities/runtime-lifecycle.mdx b/docs/website/content/docs/sdk/examples/utilities/runtime-lifecycle.mdx index 590f576d31..e6ce53055e 100644 --- a/docs/website/content/docs/sdk/examples/utilities/runtime-lifecycle.mdx +++ b/docs/website/content/docs/sdk/examples/utilities/runtime-lifecycle.mdx @@ -1,6 +1,7 @@ --- title: Runtime lifecycle description: Suspend and resume the SDK runtime (e.g., when the host app moves to background) and query lifecycle state. +schemaType: HowTo --- ## Overview diff --git a/docs/website/content/docs/sdk/examples/utilities/sharded-models.mdx b/docs/website/content/docs/sdk/examples/utilities/sharded-models.mdx index c8035dbf8f..d09ad9de4d 100644 --- a/docs/website/content/docs/sdk/examples/utilities/sharded-models.mdx +++ b/docs/website/content/docs/sdk/examples/utilities/sharded-models.mdx @@ -1,6 +1,7 @@ --- title: Sharded models description: Download a model that is sharded into multiple parts. +schemaType: HowTo --- ## Overview diff --git a/docs/website/content/docs/sdk/examples/utilities/write-custom-plugin.mdx b/docs/website/content/docs/sdk/examples/utilities/write-custom-plugin.mdx index de31fb386f..6dace377d5 100644 --- a/docs/website/content/docs/sdk/examples/utilities/write-custom-plugin.mdx +++ b/docs/website/content/docs/sdk/examples/utilities/write-custom-plugin.mdx @@ -1,6 +1,7 @@ --- title: Write a custom plugin description: Guidelines to ship your custom plugin as a single npm package. +schemaType: HowTo --- import { File, Folder, Files } from "fumadocs-ui/components/files"; diff --git a/docs/website/content/docs/sdk/getting-started/configuration.mdx b/docs/website/content/docs/sdk/getting-started/configuration.mdx index 439f9c9e72..32e435ce62 100644 --- a/docs/website/content/docs/sdk/getting-started/configuration.mdx +++ b/docs/website/content/docs/sdk/getting-started/configuration.mdx @@ -1,6 +1,7 @@ --- title: Configuration description: Use qvac.config.* to configure QVAC's overall behavior. +schemaType: HowTo --- ## Overview diff --git a/docs/website/content/docs/sdk/getting-started/index.mdx b/docs/website/content/docs/sdk/getting-started/index.mdx index 907250aef7..c40d70f2d5 100644 --- a/docs/website/content/docs/sdk/getting-started/index.mdx +++ b/docs/website/content/docs/sdk/getting-started/index.mdx @@ -2,6 +2,7 @@ title: SDK description: Use the JS/TS SDK to build local and P2P AI applications and systems. ogImage: /og-sdk-main.png +schemaType: TechArticle --- ## Overview diff --git a/docs/website/content/docs/sdk/getting-started/installation.mdx b/docs/website/content/docs/sdk/getting-started/installation.mdx index defd19922c..0ab68ea0b2 100644 --- a/docs/website/content/docs/sdk/getting-started/installation.mdx +++ b/docs/website/content/docs/sdk/getting-started/installation.mdx @@ -2,6 +2,7 @@ title: Installation description: Supported environments and how to install the SDK for each one. ogImage: /og-sdk-installation.png +schemaType: HowTo --- ## Supported environments diff --git a/docs/website/content/docs/sdk/getting-started/quickstart.mdx b/docs/website/content/docs/sdk/getting-started/quickstart.mdx index 860fd07a33..91545d0089 100644 --- a/docs/website/content/docs/sdk/getting-started/quickstart.mdx +++ b/docs/website/content/docs/sdk/getting-started/quickstart.mdx @@ -2,6 +2,7 @@ title: Quickstart description: Run your first example using the JS/TS SDK. At the end, you'll find instructions to run any example in this documentation. ogImage: /og-sdk-quickstart.png +schemaType: HowTo --- ## Requirements diff --git a/docs/website/content/docs/sdk/release-notes/index.mdx b/docs/website/content/docs/sdk/release-notes/index.mdx index 45b953e038..9a1c3c796d 100644 --- a/docs/website/content/docs/sdk/release-notes/index.mdx +++ b/docs/website/content/docs/sdk/release-notes/index.mdx @@ -1,6 +1,7 @@ --- title: SDK Release Notes — v0.9.1 description: QVAC SDK release notes +schemaType: TechArticle --- 📦 **NPM:** https://www.npmjs.com/package/@qvac/sdk/v/0.9.1 diff --git a/docs/website/content/docs/sdk/release-notes/v0.7.0.mdx b/docs/website/content/docs/sdk/release-notes/v0.7.0.mdx index 7db97e2df3..1019f70795 100644 --- a/docs/website/content/docs/sdk/release-notes/v0.7.0.mdx +++ b/docs/website/content/docs/sdk/release-notes/v0.7.0.mdx @@ -1,6 +1,7 @@ --- title: SDK Release Notes — v0.7.0 description: QVAC SDK release notes +schemaType: TechArticle --- 📦 **NPM:** https://www.npmjs.com/package/@qvac/sdk/v/0.7.0 diff --git a/docs/website/content/docs/sdk/release-notes/v0.8.0.mdx b/docs/website/content/docs/sdk/release-notes/v0.8.0.mdx index 9a6b376ba1..bf66afe875 100644 --- a/docs/website/content/docs/sdk/release-notes/v0.8.0.mdx +++ b/docs/website/content/docs/sdk/release-notes/v0.8.0.mdx @@ -1,6 +1,7 @@ --- title: SDK Release Notes — v0.8.0 description: QVAC SDK release notes +schemaType: TechArticle --- 📦 **NPM:** https://www.npmjs.com/package/@qvac/sdk/v/0.8.0 diff --git a/docs/website/content/docs/sdk/release-notes/v0.9.0.mdx b/docs/website/content/docs/sdk/release-notes/v0.9.0.mdx index 8c3512658b..15b553769a 100644 --- a/docs/website/content/docs/sdk/release-notes/v0.9.0.mdx +++ b/docs/website/content/docs/sdk/release-notes/v0.9.0.mdx @@ -1,6 +1,7 @@ --- title: SDK Release Notes — v0.9.0 description: QVAC SDK release notes +schemaType: TechArticle --- 📦 **NPM:** https://www.npmjs.com/package/@qvac/sdk/v/0.9.0 diff --git a/docs/website/content/docs/sdk/tutorials/electron.mdx b/docs/website/content/docs/sdk/tutorials/electron.mdx index c6cae6aac5..b67e0f59f4 100644 --- a/docs/website/content/docs/sdk/tutorials/electron.mdx +++ b/docs/website/content/docs/sdk/tutorials/electron.mdx @@ -1,6 +1,7 @@ --- title: Build an Electron app description: Hands-on tutorial on using QVAC SDK with Electron. +schemaType: LearningResource --- ## What we'll build diff --git a/docs/website/content/docs/sdk/tutorials/expo.mdx b/docs/website/content/docs/sdk/tutorials/expo.mdx index 71af2312d2..4e70c1479a 100644 --- a/docs/website/content/docs/sdk/tutorials/expo.mdx +++ b/docs/website/content/docs/sdk/tutorials/expo.mdx @@ -1,6 +1,7 @@ --- title: Build an Expo app description: Hands-on tutorial on using QVAC SDK with Expo. +schemaType: LearningResource --- ## What we'll build diff --git a/docs/website/content/docs/system-requirements.mdx b/docs/website/content/docs/system-requirements.mdx index 58e044f871..411af6c58d 100644 --- a/docs/website/content/docs/system-requirements.mdx +++ b/docs/website/content/docs/system-requirements.mdx @@ -1,6 +1,7 @@ --- title: System requirements description: Host requirements for running QVAC SDK and CLI, validated by `qvac doctor`. +schemaType: TechArticle --- ## Overview diff --git a/docs/website/source.config.ts b/docs/website/source.config.ts index 3779843bf6..72ad2b6fbd 100644 --- a/docs/website/source.config.ts +++ b/docs/website/source.config.ts @@ -4,12 +4,14 @@ import { frontmatterSchema, metaSchema, } from 'fumadocs-mdx/config'; +import lastModified from 'fumadocs-mdx/plugins/last-modified'; import { remarkMdxMermaid } from 'fumadocs-core/mdx-plugins'; import { z } from "zod"; import { resolve } from 'path'; import rehypeKatex from 'rehype-katex'; import remarkMath from 'remark-math'; import codeImport from 'remark-code-import'; +import { SCHEMA_TYPES } from './src/lib/docs-json-ld'; const monorepoRoot = resolve(process.cwd(), '../..'); @@ -21,6 +23,7 @@ export const docs = defineDocs({ titleStyle: z.enum(["code", "text"]).optional(), version: z.string().optional(), ogImage: z.string().optional(), + schemaType: z.enum(SCHEMA_TYPES).optional(), }), postprocess: { includeProcessedMarkdown: true, @@ -32,6 +35,9 @@ export const docs = defineDocs({ }); export default defineConfig({ + // Injects `page.data.lastModified: Date` from `git log -1` per MDX file at build time. + // Consumed by `app/sitemap.ts` to emit `` entries. + plugins: [lastModified()], mdxOptions: { remarkPlugins: [ remarkMath, diff --git a/docs/website/src/app/(docs)/[[...slug]]/page.tsx b/docs/website/src/app/(docs)/[[...slug]]/page.tsx index 628e857272..f9012c063e 100644 --- a/docs/website/src/app/(docs)/[[...slug]]/page.tsx +++ b/docs/website/src/app/(docs)/[[...slug]]/page.tsx @@ -14,8 +14,9 @@ import { cloneElement, isValidElement } from "react"; import { LLMCopyButton, ViewOptions, VersionSelector } from '@/components/page-actions'; import { buildCanonicalDocsUrl, - inferDiataxisOpenGraph, + isArchivedVersionSlug, } from '@/lib/docs-open-graph'; +import { buildDocsJsonLd } from '@/lib/docs-json-ld'; import { QVAC_DOC_OG_HEIGHT, QVAC_DOC_OG_WIDTH } from '@/lib/qvac-doc-og'; function TitleText({ @@ -57,9 +58,20 @@ export default async function Page(props: PageProps<'/[[...slug]]'>) { // Filter ToC to include H2 through H5 (depth 2, 3, 4, and 5) const filteredToc = page.data.toc?.filter(item => item.depth >= 2 && item.depth <= 5) || []; - + + const isHomePage = !params.slug || params.slug.length === 0; + const jsonLdBlocks = buildDocsJsonLd(page, params.slug ?? [], isHomePage); + return ( - + <> + {jsonLdBlocks?.map((block, i) => ( +