本地开发

仓库结构

仓库根目录是文档站点,也是本地主题 Module 的使用方。

banyan/
├── hugo.toml, go.mod           #文档站点配置
├── content/docs/              #使用指南和开发资料
├── content/changelog/         #主题和 Skill 变更记录
├── data/                      #站点数据
├── module/                    #发布的 Hugo Module 和默认文件
├── .agents/skills/swaw-banyan/ #本地工具和检查任务
└── tests/                     #主题和工具源码测试

根 go.mod 使用 replace ... => ./module,因此预览不需要已发布的 Module。 站点定制留在根目录,可复用主题行为放入 module/。

预览

克隆仓库后进入根目录。下文 swban 代表 .\.agents\skills\swaw-banyan\swban.cmd,使用时按路径调用。 命令行目前支持 Windows x64。 直接执行预览命令;入口会复用兼容工具,并按需下载 JS 运行时、Git、Go 和 Hugo。

swban base/hugo server -D --disableFastRender --port 13241  #预览站点

打开 http://127.0.0.1:13241/。Hugo 监听本地 Module,模板和资源变化会触发重建。 开发构建默认不压缩;若站点在开发环境也启用压缩,可用 --minify=false 关闭。 不需要在站点安装 npm 包。工具选择和依赖位置见 Skill 使用说明。

构建与检查

下面使用的 <build> 应为系统临时目录,完成检查后清理。 缓存和资源也放在临时目录;可通过 HUGO_CACHEDIR 和 HUGO_RESOURCEDIR 设置。

swban base/hugo --minify --noBuildLock --destination <build>  #生产构建
swban check/delivery <build>                                  #检查交付配置与发布路径
swban check/csp <build>                                       #检查 CSP 和脚本完整性
swban check/sri <build>                                       #检查资源 integrity
swban check/html/metadata <build>                             #检查页面元数据
swban check/html/styles <build>                               #检查样式契约
swban check/llms <build>                                      #检查 Agent 索引
swban report/size/html <build> --top 5                        #报告最大 HTML 页面
swban report/size/assets <build>                              #报告资源体积

按改动选择检查。检查违反契约时返回非零退出码;体积报告独立输出测量值。 产物任务默认读取 public/,第一个参数可指定其他目录。 安装或调整主题、工具后,运行 swban doctor;普通任务不检查版本配对。 内容字段和响应式图片检查读取 Hugo 解析后的配置。 用 swban help 查找任务,用 swban <command> --help 查看参数。

浏览器检查需要先运行 swban base/browser/ensure,见浏览器检查。 源码测试和故障 fixture 见 tests/README.md。 消费站点的业务文案、账号和专用路由预期留在各站点测试中。

同步与部署准备

swban sync/ext                        #同步全部外部资源
swban sync/ext wsl-distribution-info  #按声明 id 同步外部资源
swban deploy/edgeone/sync <build>     #复制生成配置到站点根目录

外部资源由站点的 data/external-resources.yaml 声明;演示站点默认为空列表。 同步任务自带依赖,不需要站点执行 npm install。 EdgeOne 同步默认读取 public/,只复制配置,不构建或上传。 Skill 尚未提供上传命令。部署方式见 EdgeOne 说明。

文档站点的部署地址为 https://banyan.swaw.com/。 构建部署产物时使用该 baseURL,其他站点使用自己的地址。