docs(site): consolidate top-level nav pillars and rehome technology-stack

This consolidates the docs site nav into 5 pillars and aligns the
technology-stack page URL with its new home inside the develop pillar.

Pillar restructure (docs/.vitepress/config.mts + locales):
  * architecture absorbs the previous Overview pillar — its pages now
    live under a '项目总览' group, with the existing architecture
    detail groups following.
  * AI is extracted out of Develop into a top-level pillar between
    Drivers and Foundations. The previously orphaned
    ai/spring-ai-deep-dive page is now reachable from the sidebar.
  * Operations is merged into Develop. The Develop sidebar runs 6
    groups ordered by reader workflow:
    快速开始 → 部署与运维 → 开发 → 前端 → 自动化 → 运营.

File move:
  * introduction/technology-stack.md -> development/technology-stack.md
    (zh + en) so the page URL matches its sidebar home.

The zh / en locale files keep identical key sets (141 keys, no diff).
This commit is contained in:
pnoker
2026-07-20 22:31:28 +08:00
parent ef70a279c2
commit 261af5721c
7 changed files with 48 additions and 48 deletions
+32 -34
View File
@@ -33,15 +33,17 @@ type Pillar = {
groups: ReadonlyArray<Group>
}
// Pillar order: 总览 → 架构 → 驱动 → 基础 → 开发 → 运维 (after nav 首页)
// Pillar order: 架构 → 驱动 → AI → 基础 → 开发 (after nav 首页)
const PILLARS: ReadonlyArray<Pillar> = [
{ // ①
navKey: 'pillar.overview', landing: 'introduction',
paths: ['introduction', 'quickstart'], activeMatch: '^/(zh|en)/(introduction|quickstart)/',
navKey: 'pillar.architecture', landing: 'architecture',
paths: ['architecture', 'modules', 'introduction'],
activeMatch: '^/(zh|en)/(architecture|modules|introduction)/',
groups: [
{key: '', items: [['architecture']]},
{
key: '',
items: [['introduction'], ['introduction/concepts'], ['introduction/paths'], ['introduction/technology-stack']]
key: 'group.project-overview',
items: [['introduction'], ['introduction/concepts'], ['introduction/paths'], ['introduction/concepts/tenant']]
},
{
key: 'group.objects-data',
@@ -49,26 +51,18 @@ const PILLARS: ReadonlyArray<Pillar> = [
},
{
key: 'group.capabilities-boundaries',
items: [['introduction/concepts/command'], ['introduction/concepts/event'], ['introduction/concepts/attribute-config'], ['introduction/concepts/tenant']]
items: [['introduction/concepts/command'], ['introduction/concepts/event'], ['introduction/concepts/attribute-config']]
},
{key: 'group.quickstart', items: [['quickstart'], ['quickstart/environment'], ['quickstart/first-device']]},
{key: 'group.appendix', items: [['introduction/glossary'], ['introduction/license']]}
]
},
{ // ②
navKey: 'pillar.architecture', landing: 'architecture',
paths: ['architecture', 'modules'], activeMatch: '^/(zh|en)/(architecture|modules)/',
groups: [
{key: '', items: [['architecture']]},
{key: 'group.services-collab', items: [['architecture/services'], ['architecture/facade-modes']]},
{
key: 'group.pipelines-model',
items: [['architecture/data-plane'], ['architecture/command-plane'], ['architecture/auth-rbac'], ['architecture/domain-model']]
},
{key: 'group.modules', items: [['architecture/modules'], ['modules']]}
{key: 'group.modules', items: [['architecture/modules'], ['modules']]},
{key: 'group.appendix', items: [['introduction/glossary'], ['introduction/license']]}
]
},
{ // ③
{ // ②
navKey: 'pillar.drivers', landing: 'drivers',
paths: ['drivers', 'operation/device-onboarding'],
activeMatch: '^/(zh|en)/(drivers/|operation/device-onboarding)',
@@ -95,6 +89,16 @@ const PILLARS: ReadonlyArray<Pillar> = [
{key: 'group.appendix-drivers', items: [['drivers/matrix']]}
]
},
{ // ③
navKey: 'pillar.ai',
landing: 'ai',
paths: ['ai'],
activeMatch: '^/(zh|en)/ai/',
groups: [
{key: '', items: [['ai']]},
{key: 'group.ai-integration', items: [['ai/agentic'], ['ai/mcp'], ['ai/spring-ai-deep-dive']]}
]
},
{ // ④
navKey: 'pillar.foundations', landing: 'foundations',
paths: ['foundations'], activeMatch: '^/(zh|en)/foundations/',
@@ -110,27 +114,21 @@ const PILLARS: ReadonlyArray<Pillar> = [
{ // ⑤
navKey: 'pillar.develop',
landing: 'development',
paths: ['development', 'frontend', 'ai', 'automation'],
activeMatch: '^/(zh|en)/(development|frontend|ai|automation)/',
paths: ['development', 'frontend', 'automation', 'quickstart', 'operation', 'guide'],
activeMatch: '^/(zh|en)/(development|frontend|automation|quickstart|operation|guide)/',
groups: [
{
key: 'group.development',
items: [['development'], ['development/driver-authoring'], ['development/api-documentation'], ['development/testing'], ['development/changelog']]
},
{key: 'group.ai-integration', items: [['ai'], ['ai/agentic'], ['ai/mcp']]},
{key: 'group.frontend', items: [['frontend'], ['frontend/test-debugging']]},
{key: 'group.automation', items: [['automation/cli']]}
]
},
{ // ⑥
navKey: 'pillar.operations', landing: 'operation',
paths: ['operation', 'guide'], activeMatch: '^/(zh|en)/(operation|guide)/',
groups: [
{key: 'group.operations', items: [['operation'], ['operation/data-commands'], ['operation/alarms']]},
{key: 'group.quickstart', items: [['quickstart'], ['quickstart/environment'], ['quickstart/first-device']]},
{
key: 'group.deploy-ops',
items: [['guide/usage'], ['guide/observability'], ['guide/logging'], ['guide/troubleshooting']]
}
},
{
key: 'group.development',
items: [['development'], ['development/driver-authoring'], ['development/api-documentation'], ['development/technology-stack'], ['development/testing'], ['development/changelog']]
},
{key: 'group.frontend', items: [['frontend'], ['frontend/test-debugging']]},
{key: 'group.automation', items: [['automation/cli']]},
{key: 'group.operations', items: [['operation'], ['operation/data-commands'], ['operation/alarms']]}
]
}
]
+1 -1
View File
@@ -80,7 +80,7 @@ For how each hop works and why it's designed that way, see [Architecture](/en/ar
- **Frontend**: Vue 3 · TypeScript 6 · Vite 8 · Element Plus · AntV G2/G6 (source in `dc3-web/` directory of this repo;
the standalone `iot-dc3-web` repo is archived)
See [Technology Stack](./introduction/technology-stack) for the full breakdown.
See [Technology Stack](./development/technology-stack) for the full breakdown.
## License
+7 -6
View File
@@ -1,15 +1,13 @@
{
"pillar.overview": "Overview",
"pillar.ai": "AI",
"pillar.architecture": "Architecture",
"pillar.drivers": "Drivers",
"pillar.foundations": "Foundations",
"pillar.develop": "Develop",
"pillar.operations": "Operations",
"community": "Community",
"introduction": "Overview",
"introduction": "Platform Positioning",
"introduction/concepts": "Core Concepts",
"introduction/paths": "Choose Your Path",
"introduction/technology-stack": "Technology Stack",
"introduction/concepts/profile": "Profile <span class=\"dc3-sb-badge VPBadge tip\">Thing Model+</span>",
"introduction/concepts/device": "Device",
"introduction/concepts/driver": "Driver",
@@ -33,7 +31,7 @@
"foundations/data-pipeline": "Time-Series & Streaming",
"foundations/aiot": "Data Intelligence & AIoT",
"foundations/security": "IoT Security",
"architecture": "Overview",
"architecture": "Architecture",
"architecture/services": "Services & Topology",
"architecture/facade-modes": "Facade Modes",
"architecture/data-plane": "Data Plane",
@@ -85,6 +83,7 @@
"development/api-documentation": "API Documentation",
"development/testing": "Testing",
"development/changelog": "Changelog",
"ai/spring-ai-deep-dive": "Why Spring AI",
"ai": "AI Overview",
"ai/agentic": "Agentic Center",
"ai/mcp": "AI Agent / MCP",
@@ -121,6 +120,7 @@
"group.ai-integration": "AI Integration",
"group.automation": "Automation",
"group.frontend": "Frontend",
"group.project-overview": "Project Overview",
"ui.editLinkText": "Edit this page on GitHub",
"ui.outlineLabel": "On this page",
"ui.lastUpdatedText": "Last updated",
@@ -138,5 +138,6 @@
"ui.searchSelect": "Select",
"ui.searchNavigate": "Switch",
"ui.searchClose": "Close",
"ui.footerMessage": "Released under the AGPL-3.0 License"
"ui.footerMessage": "Released under the AGPL-3.0 License",
"development/technology-stack": "Technology Stack"
}
+7 -6
View File
@@ -1,15 +1,13 @@
{
"pillar.overview": "总览",
"pillar.ai": "AI",
"pillar.architecture": "架构",
"pillar.drivers": "驱动",
"pillar.foundations": "基础",
"pillar.develop": "开发",
"pillar.operations": "运维",
"community": "社区",
"introduction": "总览",
"introduction": "平台定位",
"introduction/concepts": "核心概念",
"introduction/paths": "按角色选择路径",
"introduction/technology-stack": "技术栈",
"introduction/concepts/profile": "模板 <span class=\"dc3-sb-badge VPBadge tip\">物模型+</span>",
"introduction/concepts/device": "设备",
"introduction/concepts/driver": "驱动",
@@ -33,7 +31,7 @@
"foundations/data-pipeline": "时序数据与流处理",
"foundations/aiot": "数据智能与 AIoT",
"foundations/security": "物联网安全",
"architecture": "总览",
"architecture": "架构",
"architecture/services": "服务与拓扑",
"architecture/facade-modes": "Facade 模式",
"architecture/data-plane": "数据平面",
@@ -85,6 +83,7 @@
"development/api-documentation": "API 文档",
"development/testing": "测试",
"development/changelog": "变更日志",
"ai/spring-ai-deep-dive": "为什么选 Spring AI",
"ai": "AI 概览",
"ai/agentic": "Agentic 中心",
"ai/mcp": "AI Agent / MCP",
@@ -121,6 +120,7 @@
"group.ai-integration": "AI 集成",
"group.automation": "自动化",
"group.frontend": "前端",
"group.project-overview": "项目总览",
"ui.editLinkText": "在 GitHub 上编辑此页",
"ui.outlineLabel": "页面导航",
"ui.lastUpdatedText": "最后更新于",
@@ -138,5 +138,6 @@
"ui.searchSelect": "选择",
"ui.searchNavigate": "切换",
"ui.searchClose": "关闭",
"ui.footerMessage": "基于 AGPL-3.0 协议发布"
"ui.footerMessage": "基于 AGPL-3.0 协议发布",
"development/technology-stack": "技术栈"
}
+1 -1
View File
@@ -77,7 +77,7 @@ RabbitMQ 异步解耦。
- **前端**:Vue 3 · TypeScript 6 · Vite 8 · Element Plus · AntV G2/G6(源码在本仓库 `dc3-web/` 目录,原独立仓库
`iot-dc3-web` 已归档)
完整说明见 [技术栈](./introduction/technology-stack)。
完整说明见 [技术栈](./development/technology-stack)。
## 开源协议