语言
亦有
English
JekyllNet 现在已经具备更完整的命令行工作流。对一个静态站点生成器而言,这很重要,因为只有本地迭代、预览、打包和 CI 能顺畅衔接,整个工具链才真正可用。
核心命令
dotnet run --project .\JekyllNet.Cli -- build --source .\sample-site
dotnet run --project .\JekyllNet.Cli -- watch --source .\docs
dotnet run --project .\JekyllNet.Cli -- serve --source .\docs --port 5055
build是确定性的生成步骤。watch适合内容和模板的持续迭代。serve适合提供稳定的本地 HTTP 预览地址。
结构化日志输出
最近的改进让 CLI 输出更易读:
- Emoji 状态标识:
✅表示成功,❌表示错误,🚀表示启动,👀表示监听,📝表示变更 - 智能时间格式:短耗时显示
ms,秒级显示s,更长耗时显示mm:ss - 多行布局:关键信息更容易快速扫读
输出示例:
✅ Build complete: D:\projects\my-site (elapsed 00:00:02.542)
👀 Watching for changes in D:\projects\my-site
📝 Change detected: _posts\2024-01-01-post.md
✅ Rebuild complete (elapsed 00:00:01.234)
工具链与分发
仓库现在还包含:
- CLI 的
dotnet tool打包元数据 - 可复用的 GitHub Action 构建入口
- 用于 CI、GitHub Pages、NuGet 发布和 release artifacts 的 GitHub Actions 工作流
- winget 打包模板
- README 中的安装与升级说明
可复用 GitHub Action
现在,其他仓库可以直接使用独立的 JekyllNet/action 构建 action,而不必重复手写相同的 workflow 步骤。
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: JekyllNet/action@v2.5
with:
source: ./docs
destination: ./artifacts/docs-site
upload-artifact: "true"
artifact-name: docs-site
该 action 现在发布 v2.5 标签,并默认安装 JekyllNet 0.2.5。
最常用的输入包括 source、destination、drafts、future、unpublished、posts-per-page、dotnet-configuration,以及可选的 artifact 上传控制项。
NuGet 发布工作流
仓库中还包含 .github/workflows/publish-dotnet-tool.yml,用于将 CLI 作为 JekyllNet 全局工具包同时发布到 NuGet.org 和 GitHub Packages。
该工作流:
- 在
v*tag 上触发 - 也支持手动触发,并显式传入版本号
- 在打包前先执行
dotnet test - 使用解析后的版本执行
dotnet pack,而不是依赖项目文件中的静态版本号 - 使用仓库 secret
NUGET_API_KEY推送到 NuGet.org - 同时使用
GITHUB_TOKEN推送相同包到https://nuget.pkg.github.com/JekyllNet/index.json
一条实用的本地例行流程
- 编辑站点时,先运行
watch。 - 需要稳定预览地址时,再运行
serve。 - 合入改动前,执行
dotnet test .\JekyllNet.slnx。