根据包配置、源码及检查后的类型信息生成可离线阅读的文档网站。
包身份
所有者:豫言。包版本:0.1.0(本轮初始包版本,不代表编译器命令行版本)。
本包为可执行文件类型,不可被其他包依赖;包内模块仍可互相引用。类型典中的入口和文件名见包配置,程序产物为 yy文档网站生成器。
使用
在仓库根目录运行:
node 豫言操作系统/宿主/节点/宿主.cjs yy豫构.wasm 检查 文档网站生成器
node 豫言操作系统/宿主/节点/宿主.cjs yy豫构.wasm 构建 文档网站生成器
依赖及说明路径以 包配置 为准。构建不会自动运行程序;有发布或服务副作用的工具应先阅读其入口源码。
按包生成与发布
在仓库根目录运行,生成器从这里读取共用界面资源并发现包:
node 豫言操作系统/宿主/节点/宿主.cjs yy文档网站生成器.wasm 构建包 库/包配置/包配置。包。豫 /tmp/发布材料/文档
# 外部包放在“外部包目录/所有者/包目录”下;最后一个参数可省略。
node 豫言操作系统/宿主/节点/宿主.cjs yy文档网站生成器.wasm 构建包 /tmp/外部包/张三/例包/例包。包。豫 /tmp/例包发布/文档 /tmp/外部包
输出目录必须不存在或为空。生成器使用与豫构相同的配置解析器、所有者身份、直接依赖规则和包上下文;不会下载或安装依赖,缺失依赖会报错。按包枚举全部源码,排除嵌套包、符号链接、忽略目录及 。测试。豫。源码按路径排序;每个模块及所需依赖通过类型检查后,只为目标包的模块生成页面,不执行包代码。首页展示所有者、包名和版本,包说明页保留双语说明原文(按纯文本显示,不渲染 Markdown)。
包管理服务与生成器通过静态文件交接,没有远程生成 RPC:
- 本地生成
文档/index.html、模块页、包说明页及本地 CSS/JS。 - 发布者将整个
文档/连同源码/、构建/、必要的运行/放入同一个 ZIP,上传到POST /api/releases/zip。 - 服务静态解析包配置、检查必要材料并展开存储,不运行编译器,也不验证文档确由本工具生成。
- 门户通过
docsUrl在独立内容域的沙箱中展示文档。页面采用相对资源链接,兼容版本 URL 前缀;Cookie 和历史记录不可用时,语言切换仍能在当前页面生效。
生成器不创建 ZIP、不上传、不调用账户接口。包名、版本和说明以源码中的包配置为准,发布前应从同一份源码重新生成。当前输出仍依赖仓库中的界面资源,并非可脱离仓库安装的独立发行包。
官网兼容模式与验证
node 豫言操作系统/宿主/节点/宿主.cjs yy文档网站生成器.wasm 构建 应用/豫言编译器/入口。豫 dist/文档 保留入口依赖闭包模式,供本地离线浏览使用。此模式会展示依赖包模块,不适合作为单包发布文档。
node 豫言操作系统/宿主/节点/宿主.cjs yy豫构.wasm 文件 应用/文档站/文档网站生成器/生成。测试。豫 --输出 yy文档生成测试.wasm
node 豫言操作系统/宿主/节点/宿主.cjs yy文档生成测试.wasm
node --test 应用/文档站/库/文档界面/界面测试.mjs
回归测试覆盖完整包枚举、依赖隔离、包身份、双语说明、拒绝混入旧产物以及旧入口模式;文档界面测试覆盖内容沙箱禁止存储时的双语界面。
维护
每个模块还输出同名 .json,包含 names 数组,每项为 name、type、description、source。本地声明的说明优先;明确的直接转导出会回查原定义注释,追踪最多 32 层,每篇源码只解析一次。source 仅在目标属于本次输出模块时填写 source/包内路径,不会泄露本机绝对路径。主站统一浏览器使用这些字段安全渲染文档,与源代码在右侧开关切换,不直接插入上传 HTML。
生成目录包含 模块映射.json,内容为 {source, document} 条目数组;source 是目标包内路径,document 是对应生成页名。包管理器据此实现按文件“文档 / 源代码”切换,不依赖模块编号猜测文件身份。入口兼容模式仍使用其原有显示路径。
修改接口时更新本说明;修改包身份、版本或构建组成时同步更新包配置。说明文件不参与模块导入。
界面资源来自 应用/文档站/库/文档界面/,不依赖官网目录。
文档界面测试使用 jsdom;通过 YY_DOM_MODULE 指定已安装的 jsdom 模块入口后运行上述 Node.js 测试。