zengen 0.1.2 → 0.1.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/README-PAGES.md +105 -0
- package/.github/workflows/pages.yml +72 -0
- package/.github/workflows/publish.yml +29 -4
- package/README.md +6 -71
- package/dist/builder.d.ts +4 -0
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +63 -7
- package/dist/builder.js.map +1 -1
- package/dist/cli.js +47 -64
- package/dist/cli.js.map +1 -1
- package/dist/markdown.d.ts.map +1 -1
- package/dist/markdown.js +4 -0
- package/dist/markdown.js.map +1 -1
- package/dist/navigation.d.ts +10 -0
- package/dist/navigation.d.ts.map +1 -1
- package/dist/navigation.js +28 -4
- package/dist/navigation.js.map +1 -1
- package/dist/types.d.ts +5 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -2
- package/src/builder.ts +65 -7
- package/src/cli.ts +50 -65
- package/src/markdown.ts +5 -0
- package/src/navigation.ts +35 -4
- package/src/types.ts +5 -0
- package/test-build/test.md +1 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# GitHub Pages 部署配置
|
|
2
|
+
|
|
3
|
+
此目录包含 ZEN 项目文档站点的 GitHub Pages 部署配置。
|
|
4
|
+
|
|
5
|
+
## 工作流程
|
|
6
|
+
|
|
7
|
+
### `pages.yml`
|
|
8
|
+
|
|
9
|
+
此工作流程会自动构建 ZEN 项目的文档站点并部署到 GitHub Pages。
|
|
10
|
+
|
|
11
|
+
**触发条件:**
|
|
12
|
+
- 推送到 `main` 分支(当 `demo/src/`、`package.json` 或工作流程文件发生变化时)
|
|
13
|
+
- 针对 `main` 分支的 Pull Request
|
|
14
|
+
- 手动触发
|
|
15
|
+
|
|
16
|
+
**工作流程步骤:**
|
|
17
|
+
|
|
18
|
+
1. **检出代码**:从远程分支检出代码,确保代码同步
|
|
19
|
+
2. **设置 Node.js**:配置 Node.js 20.x 环境
|
|
20
|
+
3. **安装依赖**:使用 `npm ci` 安装项目依赖
|
|
21
|
+
4. **构建 zengen**:构建本地 zengen 包
|
|
22
|
+
5. **安装 zengen**:将本地构建的 zengen 安装为全局工具
|
|
23
|
+
6. **测试 zengen CLI**:验证 CLI 工具正常工作
|
|
24
|
+
7. **构建文档站点**:使用 `cd demo/src && zengen build` 构建文档,输出到 `.zen/dist` 目录
|
|
25
|
+
7. **配置 Pages**:设置 GitHub Pages
|
|
26
|
+
8. **上传制品**:将构建的文档站点上传为 Pages 制品
|
|
27
|
+
9. **部署到 GitHub Pages**:自动部署到 GitHub Pages
|
|
28
|
+
|
|
29
|
+
## 访问文档站点
|
|
30
|
+
|
|
31
|
+
部署成功后,文档站点将可通过以下 URL 访问:
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
https://[用户名].github.io/[仓库名]/
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## 自定义配置
|
|
38
|
+
|
|
39
|
+
### 自定义域名
|
|
40
|
+
|
|
41
|
+
如果需要使用自定义域名,可以在构建步骤后添加 CNAME 文件:
|
|
42
|
+
|
|
43
|
+
```yaml
|
|
44
|
+
# 创建 CNAME 文件(如果需要自定义域名)
|
|
45
|
+
echo "docs.example.com" > docs-dist/CNAME
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### 构建选项
|
|
49
|
+
|
|
50
|
+
当前使用的构建命令:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
cd demo/src
|
|
54
|
+
zengen build --clean --verbose
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
可用的选项:
|
|
58
|
+
- `--clean`:在构建前清理输出目录
|
|
59
|
+
- `--verbose`:显示详细输出
|
|
60
|
+
- `--watch`:监听模式(不适用于 CI/CD)
|
|
61
|
+
- `--template`:指定自定义模板文件
|
|
62
|
+
- `--config`:指定配置文件
|
|
63
|
+
|
|
64
|
+
### 环境变量
|
|
65
|
+
|
|
66
|
+
工作流程使用以下环境变量:
|
|
67
|
+
- `GITHUB_TOKEN`:自动提供的 GitHub 令牌
|
|
68
|
+
- `NODE_VERSION`:Node.js 版本(默认为 20.x)
|
|
69
|
+
|
|
70
|
+
## 故障排除
|
|
71
|
+
|
|
72
|
+
### 构建失败
|
|
73
|
+
|
|
74
|
+
1. **检查 Node.js 版本**:确保使用支持的 Node.js 版本
|
|
75
|
+
2. **验证依赖安装**:确保 `npm ci` 成功执行
|
|
76
|
+
3. **检查构建输出**:查看 `zengen build` 的详细输出
|
|
77
|
+
4. **CLI 输出目录问题**:ZEN 现在强制输出到 `.zen/dist` 目录,不再支持 `--out` 参数。
|
|
78
|
+
|
|
79
|
+
### 部署失败
|
|
80
|
+
|
|
81
|
+
1. **检查权限**:确保工作流程有正确的 Pages 写入权限
|
|
82
|
+
2. **验证制品**:确保 `.zen/dist` 目录包含有效的 HTML 文件
|
|
83
|
+
3. **查看日志**:检查 GitHub Actions 日志获取详细错误信息
|
|
84
|
+
|
|
85
|
+
### 文档未更新
|
|
86
|
+
|
|
87
|
+
1. **检查触发条件**:确保修改了 `demo/src/` 目录下的文件
|
|
88
|
+
2. **等待部署完成**:GitHub Pages 部署可能需要几分钟
|
|
89
|
+
3. **清除浏览器缓存**:浏览器可能缓存了旧版本
|
|
90
|
+
|
|
91
|
+
## 手动触发
|
|
92
|
+
|
|
93
|
+
可以通过 GitHub Actions 界面手动触发部署:
|
|
94
|
+
|
|
95
|
+
1. 进入仓库的 "Actions" 标签页
|
|
96
|
+
2. 选择 "Deploy to GitHub Pages" 工作流程
|
|
97
|
+
3. 点击 "Run workflow" 按钮
|
|
98
|
+
4. 选择分支并运行
|
|
99
|
+
|
|
100
|
+
## 相关文件
|
|
101
|
+
|
|
102
|
+
- `demo/src/`:文档源文件(Markdown 格式)
|
|
103
|
+
- `package.json`:项目配置和依赖
|
|
104
|
+
- `src/cli.ts`:zengen CLI 工具实现
|
|
105
|
+
- `src/builder.ts`:文档构建器实现
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
name: Deploy to GitHub Pages
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
paths:
|
|
7
|
+
- 'demo/src/**'
|
|
8
|
+
- 'package.json'
|
|
9
|
+
- '.github/workflows/pages.yml'
|
|
10
|
+
pull_request:
|
|
11
|
+
branches: [main]
|
|
12
|
+
paths:
|
|
13
|
+
- 'demo/src/**'
|
|
14
|
+
- 'package.json'
|
|
15
|
+
- '.github/workflows/pages.yml'
|
|
16
|
+
workflow_dispatch: # 允许手动触发
|
|
17
|
+
|
|
18
|
+
# 设置 GITHUB_TOKEN 的权限以允许部署到 GitHub Pages
|
|
19
|
+
permissions:
|
|
20
|
+
contents: read
|
|
21
|
+
pages: write
|
|
22
|
+
id-token: write
|
|
23
|
+
|
|
24
|
+
# 只允许一个并发部署,跳过正在运行的队列
|
|
25
|
+
concurrency:
|
|
26
|
+
group: "pages"
|
|
27
|
+
cancel-in-progress: false
|
|
28
|
+
|
|
29
|
+
jobs:
|
|
30
|
+
build:
|
|
31
|
+
runs-on: ubuntu-latest
|
|
32
|
+
steps:
|
|
33
|
+
- name: Checkout repository
|
|
34
|
+
uses: actions/checkout@v4
|
|
35
|
+
with:
|
|
36
|
+
# 从远程分支开始时,需要先同步分支保证代码正确
|
|
37
|
+
fetch-depth: 0
|
|
38
|
+
ref: ${{ github.head_ref || github.ref }}
|
|
39
|
+
|
|
40
|
+
- name: Setup Node.js
|
|
41
|
+
uses: actions/setup-node@v4
|
|
42
|
+
with:
|
|
43
|
+
node-version: '20.x'
|
|
44
|
+
cache: 'npm'
|
|
45
|
+
|
|
46
|
+
- name: Install dependencies
|
|
47
|
+
run: npm ci
|
|
48
|
+
|
|
49
|
+
- name: Create documentation site
|
|
50
|
+
run: |
|
|
51
|
+
cd demo/src
|
|
52
|
+
npx --no-install zengen build
|
|
53
|
+
|
|
54
|
+
- name: Setup Pages
|
|
55
|
+
uses: actions/configure-pages@v4
|
|
56
|
+
|
|
57
|
+
- name: Upload artifact
|
|
58
|
+
uses: actions/upload-pages-artifact@v3
|
|
59
|
+
with:
|
|
60
|
+
path: './demo/src/.zen/dist'
|
|
61
|
+
|
|
62
|
+
deploy:
|
|
63
|
+
environment:
|
|
64
|
+
name: github-pages
|
|
65
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
66
|
+
runs-on: ubuntu-latest
|
|
67
|
+
needs: build
|
|
68
|
+
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
|
|
69
|
+
steps:
|
|
70
|
+
- name: Deploy to GitHub Pages
|
|
71
|
+
id: deployment
|
|
72
|
+
uses: actions/deploy-pages@v4
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
name: Publish to npm
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
6
7
|
workflow_dispatch: # 允许手动触发
|
|
7
8
|
|
|
8
9
|
permissions:
|
|
@@ -18,6 +19,11 @@ jobs:
|
|
|
18
19
|
with:
|
|
19
20
|
fetch-depth: 0
|
|
20
21
|
|
|
22
|
+
- name: Fetch all branches and tags
|
|
23
|
+
run: |
|
|
24
|
+
git fetch --all
|
|
25
|
+
git fetch --tags
|
|
26
|
+
|
|
21
27
|
- name: Setup Node.js for npm publish
|
|
22
28
|
uses: actions/setup-node@v4
|
|
23
29
|
with:
|
|
@@ -43,14 +49,33 @@ jobs:
|
|
|
43
49
|
test -f dist/index.js && test -f dist/cli.js
|
|
44
50
|
echo "Build verification successful"
|
|
45
51
|
|
|
52
|
+
- name: Check if version already published
|
|
53
|
+
id: check_version
|
|
54
|
+
run: |
|
|
55
|
+
# 获取当前 package.json 中的版本和包名
|
|
56
|
+
CURRENT_VERSION=$(node -p "require('./package.json').version")
|
|
57
|
+
PACKAGE_NAME=$(node -p "require('./package.json').name")
|
|
58
|
+
echo "Package name: $PACKAGE_NAME"
|
|
59
|
+
echo "Current version in package.json: $CURRENT_VERSION"
|
|
60
|
+
|
|
61
|
+
# 尝试从 npm 获取已发布的版本信息
|
|
62
|
+
if npm view $PACKAGE_NAME@$CURRENT_VERSION version > /dev/null 2>&1; then
|
|
63
|
+
echo "Version $CURRENT_VERSION is already published on npm"
|
|
64
|
+
echo "skip_publish=true" >> $GITHUB_OUTPUT
|
|
65
|
+
else
|
|
66
|
+
echo "Version $CURRENT_VERSION is not published yet"
|
|
67
|
+
echo "skip_publish=false" >> $GITHUB_OUTPUT
|
|
68
|
+
fi
|
|
69
|
+
env:
|
|
70
|
+
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
71
|
+
|
|
46
72
|
- name: Check npm version
|
|
47
73
|
run: npm --version
|
|
48
74
|
|
|
49
75
|
- name: Publish to npm
|
|
76
|
+
if: steps.check_version.outputs.skip_publish == 'false'
|
|
50
77
|
run: |
|
|
51
|
-
# 首先尝试不使用 provenance,确保基本发布能工作
|
|
52
78
|
echo "Attempting to publish to npm..."
|
|
53
79
|
npm publish --access public
|
|
54
80
|
env:
|
|
55
|
-
# 对于 GitHub Actions 的 npm 发布,使用 NODE_AUTH_TOKEN
|
|
56
81
|
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ZEN - 简洁的 Markdown 文档站点构建工具
|
|
2
2
|
|
|
3
|
-
> 📖 **阅读提示**: 本 README
|
|
3
|
+
> 📖 **阅读提示**: 本 README 为中文版本。英文版本将由 AI 自动翻译生成。
|
|
4
4
|
|
|
5
5
|
## 项目初衷
|
|
6
6
|
|
|
@@ -51,12 +51,14 @@ zengen init
|
|
|
51
51
|
|
|
52
52
|
2. **构建文档站点**:
|
|
53
53
|
```bash
|
|
54
|
-
|
|
54
|
+
cd /path/to/your/markdown/files
|
|
55
|
+
zengen build
|
|
55
56
|
```
|
|
56
57
|
|
|
57
58
|
3. **实时预览(监听文件变化)**:
|
|
58
59
|
```bash
|
|
59
|
-
|
|
60
|
+
cd /path/to/your/markdown/files
|
|
61
|
+
zengen build --watch
|
|
60
62
|
```
|
|
61
63
|
|
|
62
64
|
4. **查看帮助**:
|
|
@@ -64,75 +66,8 @@ zengen build ./docs --watch
|
|
|
64
66
|
zengen --help
|
|
65
67
|
```
|
|
66
68
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
# ZEN - A minimalist Markdown documentation site builder
|
|
70
|
-
|
|
71
|
-
> 📖 **Reading Note**: This README uses separated Chinese/English layout. Chinese version is above, English version is below the separator line.
|
|
72
|
-
|
|
73
|
-
## Project Philosophy
|
|
74
|
-
|
|
75
|
-
### Return to Content
|
|
76
|
-
I enjoy contemplation, but don't want complex build tools, complicated documentation configurations, or intricate structures.
|
|
77
|
-
|
|
78
|
-
### Return to Native Language
|
|
79
|
-
Life is short, I use AI translation. Stay connected with the world.
|
|
80
|
-
|
|
81
|
-
## Core Features
|
|
82
|
-
|
|
83
|
-
1. **Static Site Generation**
|
|
84
|
-
- Build any folder containing Markdown files into a static HTML site
|
|
85
|
-
|
|
86
|
-
2. **Smart Navigation**
|
|
87
|
-
- Generate sitemap and navigation without preserving the original Markdown directory structure
|
|
88
|
-
|
|
89
|
-
3. **Incremental i18n Translation**
|
|
90
|
-
- Use LLM for incremental i18n translation, allowing users to write Markdown in their native language while supporting multilingual audiences
|
|
91
|
-
|
|
92
|
-
## Design Principles
|
|
93
|
-
|
|
94
|
-
- **Minimalism**: Minimum configuration, maximum flexibility
|
|
95
|
-
- **Content First**: Focus on writing, not tool configuration
|
|
96
|
-
- **AI Empowered**: Leverage AI for translation and content organization
|
|
97
|
-
- **Cross-Language**: Support multilingual content creation and presentation
|
|
98
|
-
|
|
99
|
-
## Quick Start
|
|
100
|
-
|
|
101
|
-
### Installation
|
|
102
|
-
|
|
103
|
-
```bash
|
|
104
|
-
npm install -g zengen
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
Or install as a project dependency:
|
|
108
|
-
|
|
109
|
-
```bash
|
|
110
|
-
npm install zengen
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
### Usage
|
|
114
|
-
|
|
115
|
-
1. **Initialize a project**:
|
|
116
|
-
```bash
|
|
117
|
-
zengen init
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
2. **Build documentation site**:
|
|
121
|
-
```bash
|
|
122
|
-
zengen build ./docs
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
3. **Live preview (watch for changes)**:
|
|
126
|
-
```bash
|
|
127
|
-
zengen build ./docs --watch
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
4. **View help**:
|
|
131
|
-
```bash
|
|
132
|
-
zengen --help
|
|
133
|
-
```
|
|
69
|
+
**注意**:ZEN 现在强制使用当前目录作为源目录,输出到 `.zen/dist` 目录。不再支持指定源目录和输出目录参数。
|
|
134
70
|
|
|
135
71
|
---
|
|
136
72
|
|
|
137
73
|
**ZEN** - 让文档回归本质,让写作回归宁静。
|
|
138
|
-
**ZEN** - Return documentation to its essence, return writing to tranquility.
|
package/dist/builder.d.ts
CHANGED
package/dist/builder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA4B,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA4B,SAAS,EAAE,MAAM,SAAS,CAAC;AAU5E,qBAAa,UAAU;IACrB,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,mBAAmB,CAAsB;IACjD,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,GAAE,SAAc;IAOlC;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAgGjD;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAuGjD;;OAEG;YACW,eAAe;IAsB7B;;OAEG;YACW,eAAe;IAU7B;;OAEG;YACW,sBAAsB;IAUpC;;OAEG;YACW,gBAAgB;IA6B9B;;OAEG;IACG,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1C;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,EAAE;CAuB5C"}
|
package/dist/builder.js
CHANGED
|
@@ -32,6 +32,9 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
32
32
|
return result;
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
35
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
39
|
exports.ZenBuilder = void 0;
|
|
37
40
|
const markdown_1 = require("./markdown");
|
|
@@ -40,24 +43,27 @@ const navigation_1 = require("./navigation");
|
|
|
40
43
|
const fs = __importStar(require("fs/promises"));
|
|
41
44
|
const path = __importStar(require("path"));
|
|
42
45
|
const chokidar = __importStar(require("chokidar"));
|
|
46
|
+
const express_1 = __importDefault(require("express"));
|
|
43
47
|
class ZenBuilder {
|
|
44
48
|
constructor(config = {}) {
|
|
45
49
|
this.config = {};
|
|
46
50
|
this.config = config;
|
|
47
51
|
this.markdownConverter = new markdown_1.MarkdownConverter(config.processors || []);
|
|
48
52
|
this.templateEngine = new template_1.TemplateEngine();
|
|
49
|
-
this.navigationGenerator = new navigation_1.NavigationGenerator();
|
|
53
|
+
this.navigationGenerator = new navigation_1.NavigationGenerator(config.baseUrl);
|
|
50
54
|
}
|
|
51
55
|
/**
|
|
52
56
|
* 构建文档站点
|
|
53
57
|
*/
|
|
54
58
|
async build(options) {
|
|
55
59
|
const startTime = Date.now();
|
|
56
|
-
const { srcDir, outDir, template, verbose = false } = options;
|
|
60
|
+
const { srcDir, outDir, template, verbose = false, baseUrl } = options;
|
|
57
61
|
if (verbose) {
|
|
58
62
|
console.log(`🚀 Starting ZEN build...`);
|
|
59
63
|
console.log(`📁 Source: ${srcDir}`);
|
|
60
64
|
console.log(`📁 Output: ${outDir}`);
|
|
65
|
+
console.log(`🔗 Base URL: ${baseUrl || '(not set)'}`);
|
|
66
|
+
console.log(`🔍 Verbose mode enabled`);
|
|
61
67
|
}
|
|
62
68
|
// 验证源目录
|
|
63
69
|
try {
|
|
@@ -78,6 +84,17 @@ class ZenBuilder {
|
|
|
78
84
|
}
|
|
79
85
|
if (verbose)
|
|
80
86
|
console.log(`✅ Found ${files.length} Markdown files`);
|
|
87
|
+
// 更新导航生成器的 baseUrl(优先使用命令行参数)
|
|
88
|
+
if (baseUrl !== undefined) {
|
|
89
|
+
if (verbose)
|
|
90
|
+
console.log(`🔗 Using baseUrl: ${baseUrl}`);
|
|
91
|
+
this.navigationGenerator.setBaseUrl(baseUrl);
|
|
92
|
+
}
|
|
93
|
+
else if (this.config.baseUrl) {
|
|
94
|
+
if (verbose)
|
|
95
|
+
console.log(`🔗 Using config baseUrl: ${this.config.baseUrl}`);
|
|
96
|
+
this.navigationGenerator.setBaseUrl(this.config.baseUrl);
|
|
97
|
+
}
|
|
81
98
|
// 生成导航
|
|
82
99
|
if (verbose)
|
|
83
100
|
console.log(`🗺️ Generating navigation...`);
|
|
@@ -130,14 +147,23 @@ class ZenBuilder {
|
|
|
130
147
|
* 监听文件变化并自动重建
|
|
131
148
|
*/
|
|
132
149
|
async watch(options) {
|
|
133
|
-
const { srcDir, outDir, template, verbose = false } = options;
|
|
150
|
+
const { srcDir, outDir, template, verbose = false, serve = false, port = 3000, host = 'localhost', baseUrl } = options;
|
|
134
151
|
console.log(`👀 Watching for changes in ${srcDir}...`);
|
|
135
152
|
console.log(`Press Ctrl+C to stop watching`);
|
|
136
153
|
// 初始构建
|
|
137
154
|
await this.build(options);
|
|
138
|
-
//
|
|
155
|
+
// 启动 HTTP 服务器(如果启用)
|
|
156
|
+
let server = null;
|
|
157
|
+
if (serve) {
|
|
158
|
+
server = await this.startHttpServer(outDir, port, host);
|
|
159
|
+
console.log(`🌐 HTTP server started at http://${host}:${port}`);
|
|
160
|
+
}
|
|
161
|
+
// 设置文件监听,忽略隐藏文件和 .zen 目录
|
|
139
162
|
const watcher = chokidar.watch(srcDir, {
|
|
140
|
-
ignored:
|
|
163
|
+
ignored: [
|
|
164
|
+
/(^|[\/\\])\../, // 忽略隐藏文件
|
|
165
|
+
/(^|[\/\\])\.zen($|[\/\\])/ // 忽略 .zen 目录
|
|
166
|
+
],
|
|
141
167
|
persistent: true,
|
|
142
168
|
ignoreInitial: true
|
|
143
169
|
});
|
|
@@ -203,7 +229,37 @@ class ZenBuilder {
|
|
|
203
229
|
process.on('SIGINT', () => {
|
|
204
230
|
console.log(`\n👋 Stopping watcher...`);
|
|
205
231
|
watcher.close();
|
|
206
|
-
|
|
232
|
+
// 关闭 HTTP 服务器(如果存在)
|
|
233
|
+
if (server) {
|
|
234
|
+
console.log(`🌐 Stopping HTTP server...`);
|
|
235
|
+
server.close(() => {
|
|
236
|
+
console.log(`✅ HTTP server stopped`);
|
|
237
|
+
process.exit(0);
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
process.exit(0);
|
|
242
|
+
}
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* 启动 HTTP 服务器
|
|
247
|
+
*/
|
|
248
|
+
async startHttpServer(outDir, port, host) {
|
|
249
|
+
return new Promise((resolve, reject) => {
|
|
250
|
+
const app = (0, express_1.default)();
|
|
251
|
+
// 提供静态文件服务
|
|
252
|
+
app.use(express_1.default.static(outDir));
|
|
253
|
+
// 处理 SPA 路由 - 所有未找到的路径返回 index.html
|
|
254
|
+
app.get('*', (req, res) => {
|
|
255
|
+
res.sendFile(path.join(outDir, 'index.html'));
|
|
256
|
+
});
|
|
257
|
+
const server = app.listen(port, host, () => {
|
|
258
|
+
resolve(server);
|
|
259
|
+
});
|
|
260
|
+
server.on('error', (error) => {
|
|
261
|
+
reject(error);
|
|
262
|
+
});
|
|
207
263
|
});
|
|
208
264
|
}
|
|
209
265
|
/**
|
|
@@ -211,7 +267,7 @@ class ZenBuilder {
|
|
|
211
267
|
*/
|
|
212
268
|
async generateSitemap(files, outDir) {
|
|
213
269
|
try {
|
|
214
|
-
const sitemapXml = this.navigationGenerator.generateSitemap(files);
|
|
270
|
+
const sitemapXml = this.navigationGenerator.generateSitemap(files, this.config.baseUrl);
|
|
215
271
|
const sitemapPath = path.join(outDir, 'sitemap.xml');
|
|
216
272
|
await fs.writeFile(sitemapPath, sitemapXml, 'utf-8');
|
|
217
273
|
}
|
package/dist/builder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
|