docmd 0.7.7 版本引入了多项目支持 —— 允许您从单个代码库编排多个独立的文档站点。伴随着这一架构演进,我们还首次推出了通用 TUI 设计系统。通过全新的独立样式包,该系统全面现代化了我们的终端界面,带来了优质、高信号的开发者体验。

✨ Highlights

🚀 多项目支持

您现在可以从单个 docmd 实例构建和提供多个独立的文档站点。通过根配置,您可以定义多个项目,每个项目都有自己的前缀、独立版本控制和隔离的导航,同时共享统一的主题和部署流水线。

// docmd.config.js (root)
import { defineConfig } from '@docmd/api';

export default defineConfig({
  projects: [
    { prefix: '/',       src: 'docmd-main' },
    { prefix: '/search', src: 'docmd-search' }
  ]
});

每个项目都保持自己的目录结构和配置,允许您在单个域名下管理复杂的文档生态系统(例如核心引擎及其卫星工具),而不会产生版本冲突。

🖥️ 通用 TUI 设计系统

我们彻底重构了 docmd 终端界面,以提供专业的、高信号的体验。新系统告别了“俏皮”的表情符号,转而使用精细的制表符(box-drawing characters)和精心挑选的配色方案,以提供清晰且可操作的反馈。

  • 品牌形象提升:TUI 系统中集中的 ASCII Logo 定义确保了所有 CLI 交互中品牌呈现的一致性。
  • 高信号输出:日志现在采用干净的表格化审美进行结构化处理,优先考虑本地开发和 CI/CD 环境下的可读性。
  • 一致性:无论是在构建站点、运行开发服务器还是使用迁移工具,终端体验都保持完美统一。

📦 独立的 @docmd/tui

为了支持这一新设计系统,我们将终端审美从核心逻辑中解耦,放入了专门的 @docmd/tui 包中。

这一架构转变消除了循环依赖,并允许插件作者使用与核心引擎相同的专业 UI 组件。通过集中我们的“终端用户界面”(TUI)逻辑,我们确保了每一条输出——从核心构建日志到第三方插件警告——都遵循相同的高级设计语言。

🚫 无表情符号的专业审美

为了履行我们提供优质开发者体验的承诺,0.7.7 版本转向了无表情符号标准。我们用成熟的制表符审美取代了旧有的基于表情符号的状态标记。这一改变确保了 docmd 的外观和感官更像是一个生产级工具,提供了一个能无缝集成到专业 IDE 和终端模拟器中的更简洁的界面。

🔍 智能配置校验

配置错误不再泄露 Node.js 堆栈跟踪(stack traces)。我们使用标准化的 TUI 组件增强了实时配置反馈,以提供简洁、易读的错误消息。

校验器现在可以检测多项目根配置,并为缺失属性或错别字提供具体指导。当发生配置错误时,docmd 现在会呈现一个清晰的“错误报告”,包含准确的行引用和修复建议,确保您花更少的时间调试,花更多的时间写作。

⚡ 多项目开发服务器

docmd dev 命令已升级以支持多项目编排。它会构建所有项目并从单个端口提供服务,具备智能文件监控功能,可针对正在编辑的特定项目触发定向重建。

────────────────────────────────────────
  多项目开发服务器 (MULTI-PROJECT DEV SERVER)

  本地:    http://127.0.0.1:3000
  网络:    http://192.168.1.5:3000

  项目:    /       → docmd-main/
  项目:    /search  → docmd-search/
────────────────────────────────────────

🛠️ 内部重构

此版本包含了为支持新 TUI 和多项目功能而进行的重大架构强化:

  • 依赖架构:优化了包依赖关系,确保严格的有向无环流,防止引擎层和 UI 层之间出现循环导入。
  • 日志重构:完全废弃了旧的日志工具,转而使用集中的 TUI 系统。
  • 项目编排:多项目处理器位于一个独立的模块中,安全地管理目录上下文(chdir)并将独立输出合并到统一的站点结构中,而无需修改现有的构建流水线。

📝 完整更新日志

🚀 特性与增强

  • 多项目引擎:支持根配置中的 projects[],具备共享资产和独立版本控制。
  • 通用 TUI:使用制表符和专业样式重构了终端界面。
  • 独立 TUI 包:全新的 @docmd/tui 库,用于在整个 Monorepo 中实现统一的 CLI 审美。
  • 品牌提升:为所有 CLI 入口点引入了集中的 ASCII Logo。
  • 配置校验:通过易读的错误报告增强了实时反馈,且无堆栈跟踪。
  • 依赖优化:在所有内部包中严格执行无环依赖流。

🧹 清理与移除

  • 无表情符号标准:移除了所有旧有的基于表情符号的终端输出。
  • 冗余日志:取消了零散的 chalkconsole.log 调用,转而使用 TUI 日志记录器。
  • 旧版工具:移除了已弃用的内部日志辅助工具。

Migration Guide

针对现有项目

现有的单项目设置无需更改。 引擎将默认继续支持标准的单项目工作流。

采用多项目支持

要过渡到多项目设置:

  1. 将现有的文档源移动到子目录中。
  2. 创建根 docmd.config.js 并使用 projects 数组定义您的项目。
  3. 从子配置中移除冗余的 srcout 路径,因为根编排器现在负责管理这些。

针对插件作者

我们建议将任何自定义的 console.logchalk 语句迁移到新的 @docmd/tui 包,以确保您的插件输出与核心 docmd 审美相匹配。