diff --git a/docs.json b/docs.json
index bddb1a6..15a3cab 100644
--- a/docs.json
+++ b/docs.json
@@ -20,6 +20,61 @@
{
"tab": "用户手册",
"versions": [
+ {
+ "version": "v1.4.0",
+ "groups": [
+ {
+ "group": "开始",
+ "icon": "book-open",
+ "pages": [
+ "zh/manual/v1.4.0/index/intro",
+ "zh/manual/v1.4.0/index/beforestart"
+ ]
+ },
+ {
+ "group": "安装",
+ "icon": "download",
+ "pages": [
+ "zh/manual/v1.4.0/installation/install",
+ "zh/manual/v1.4.0/installation/driver"
+ ]
+ },
+ {
+ "group": "配置",
+ "icon": "sliders",
+ "pages": [
+ "zh/manual/v1.4.0/configuration/start",
+ "zh/manual/v1.4.0/configuration/ui",
+ "zh/manual/v1.4.0/configuration/file"
+ ]
+ },
+ {
+ "group": "设置",
+ "icon": "tools",
+ "pages": [
+ "zh/manual/v1.4.0/global-settings/start",
+ "zh/manual/v1.4.0/global-settings/appearance"
+ ]
+ },
+ {
+ "group": "功能",
+ "icon": "bolt",
+ "pages": [
+ "zh/manual/v1.4.0/features/core",
+ "zh/manual/v1.4.0/features/timer"
+ ]
+ },
+ {
+ "group": "FAQ",
+ "icon": "circle-question",
+ "pages": [
+ "zh/manual/v1.4.0/faq/troubleshooting",
+ "zh/manual/v1.4.0/faq/faq",
+ "zh/manual/v1.4.0/faq/contact"
+ ]
+ }
+ ]
+ },
{
"version": "v1.3.0",
"groups": [
@@ -70,9 +125,39 @@
]
},
{
- "tab": "更新日志",
- "pages": [
- "zh/changelog/overview"
+ "tab": "AutoScript",
+ "groups": [
+ {
+ "group": "概述",
+ "icon": "book-open",
+ "pages": [
+ "zh/autoscript/index"
+ ]
+ },
+ {
+ "group": "语法指引",
+ "icon": "code",
+ "pages": [
+ "zh/autoscript/syntax",
+ "zh/autoscript/functions",
+ "zh/autoscript/variables"
+ ]
+ },
+ {
+ "group": "工具使用",
+ "icon": "pencil",
+ "pages": [
+ "zh/autoscript/editor",
+ "zh/autoscript/orchestrator"
+ ]
+ },
+ {
+ "group": "集成",
+ "icon": "link",
+ "pages": [
+ "zh/autoscript/integration"
+ ]
+ }
]
}
]
diff --git a/zh/autoscript/editor.mdx b/zh/autoscript/editor.mdx
new file mode 100644
index 0000000..551f01a
--- /dev/null
+++ b/zh/autoscript/editor.mdx
@@ -0,0 +1,104 @@
+---
+title: "代码编辑器"
+description: "AutoScript 代码编辑器使用指南 - 语法高亮、代码模板与调试运行"
+---
+
+AutoScript 代码编辑器提供完整的 Lua 脚本编写体验,包括语法高亮、代码模板插入和模拟调试功能。
+
+## 打开编辑器
+
+在定时任务管理窗口中添加或编辑任务时,点击 [**AutoScript**] 区域的编辑按钮即可打开代码编辑器。
+
+{/* TODO: 添加代码编辑器界面截图 */}
+
+
+## 语法高亮
+
+编辑器使用配色方案区分不同类型的代码元素,帮助你快速识别脚本结构:
+
+| 颜色 | 元素类型 | 示例 |
+| --- | --- | --- |
+| 蓝色加粗 | 关键字 | `if` `elseif` `else` `then` `end` `and` `or` `not` |
+| 青色 | 布尔字面量 | `true` `false` |
+| 紫色 | 运算符 | `==` `~=` `>` `<` `>=` `<=` `+` `-` |
+| 黄色 | 工具函数 | `time()` `date()` `datenow()` `timenow()` `dateadd()` `timeadd()` |
+| 浅蓝 | 目标变量 | `USERNAME` `USER_ENABLE` `RESERVE_DATE` `RESERVE_BEGIN_TIME` `RESERVE_END_TIME` |
+| 橙色 | 字符串 | `"2025-10-30"` `"alice"` |
+| 绿色 | 数字 | `1` `60` `2025` |
+| 绿色斜体 | 注释 | `-- 这是一条注释` |
+
+## 代码模板
+
+编辑器底部工具栏按类别提供了代码模板按钮,点击即可在光标位置插入相应代码:
+
+### 基本语法
+
+| 按钮 | 插入内容 |
+| --- | --- |
+| `if` | `if then` + `end` 代码块 |
+| `elseif` | `elseif then` 语句 |
+| `else` | `else` 语句 |
+| `end` | `end` 关键字 |
+| `pass` | 空操作占位符 |
+
+### 运算符
+
+提供算术运算符(`+` `-`)、比较运算符(`==` `~=` `>` `<` `>=` `<=`)和逻辑运算符(`and` `or`)的快速插入。
+
+### 字面量
+
+提供 `true` / `false` 和日期/时间/字符串/数字/注释的模板代码。
+
+### 变量
+
+自动列出所有可操作的目标变量。点击按钮即可插入变量名,无需手动输入。
+
+### 工具函数
+
+提供 `datenow()`、`timenow()`、`dateadd()`、`timeadd()` 等函数的模板插入,并附带参数提示。
+
+## 编辑功能
+
+- **Tab 转空格**:按下 Tab 键自动插入 4 个空格
+- **字体缩放**:通过工具栏按钮放大或缩小编辑器字体
+- **复制到剪贴板**:将当前脚本内容复制到系统剪贴板
+
+## 调试运行
+
+编辑器的右侧面板提供模拟数据调试功能:
+
+
+
+ 在右侧面板中为每个变量设置测试值。各类型变量使用对应的输入控件:
+ - 字符串:文本输入框
+ - 布尔值:下拉选择框
+ - 日期:日期选择器
+ - 时间:时间选择器
+
+
+ 点击 [**调试运行**] 按钮,脚本将在模拟数据上执行。
+
+
+ 执行完成后,弹出结果对话框,对比显示每个变量的修改前值和修改后值。
+
+ {/*
+ TODO: 添加调试运行结果截图
+ 
+ */}
+
+
+
+
+ 在将脚本配置到定时任务之前,建议先使用调试运行功能验证脚本逻辑是否正确,
+ 特别是验证变量的最终值是否符合预期。
+
+
+## 从编排器导入
+
+如果你通过可视化编排器构建了脚本逻辑,可以点击 [**编排**] 按钮打开编排器,
+编排器生成的代码将插入到编辑器光标所在位置。
+
+
+ 你可以在编排器中构建基本逻辑框架,然后在编辑器中手动调整细节,
+ 两种方式可以灵活结合使用。
+
diff --git a/zh/autoscript/functions.mdx b/zh/autoscript/functions.mdx
new file mode 100644
index 0000000..937d5c2
--- /dev/null
+++ b/zh/autoscript/functions.mdx
@@ -0,0 +1,235 @@
+---
+title: "函数参考"
+description: "AutoScript 内置工具函数完整参考 - 日期与时间处理"
+---
+
+AutoScript 提供了一组内置的日期和时间工具函数,用于在脚本中处理动态时间计算。
+
+## 日期函数
+
+### `date(y, m, d)`
+
+创建一个指定日历日期的值。
+
+**参数:**
+
+| 参数 | 类型 | 说明 |
+| --- | --- | --- |
+| `y` | integer | 年份,如 `2025` |
+| `m` | integer | 月份,如 `10` |
+| `d` | integer | 日期,如 `30` |
+
+**返回值:** 日期值(可赋值给日期类型变量)
+
+**示例:**
+
+```lua
+-- 设置为 2025 年 10 月 30 日
+RESERVE_DATE = date(2025, 10, 30)
+```
+
+---
+
+### `datenow()`
+
+获取当前日期(当天的 00:00:00)。
+
+**返回值:** 当前日期值
+
+**示例:**
+
+```lua
+-- 将预约日期设为今天
+RESERVE_DATE = datenow()
+```
+
+---
+
+### `dateadd(date_val, n)`
+
+在指定日期上增加或减少天数。
+
+**参数:**
+
+| 参数 | 类型 | 说明 |
+| --- | --- | --- |
+| `date_val` | date | 基准日期值 |
+| `n` | integer | 增加的天数(负数表示减少) |
+
+**返回值:** 计算后的日期值
+
+**示例:**
+
+```lua
+-- 预约明天
+RESERVE_DATE = dateadd(datenow(), 1)
+
+-- 预约三天前
+RESERVE_DATE = dateadd(datenow(), -3)
+
+-- 在已有日期基础上计算
+RESERVE_DATE = dateadd(RESERVE_DATE, 7) -- 延后一周
+```
+
+---
+
+### `strtodate(iso_str)`
+
+将 ISO 格式日期字符串转换为日期值。
+
+**参数:**
+
+| 参数 | 类型 | 说明 |
+| --- | --- | --- |
+| `iso_str` | string | 日期字符串,格式 `"YYYY-MM-DD"` |
+
+**返回值:** 日期值
+
+**示例:**
+
+```lua
+RESERVE_DATE = strtodate("2025-12-31")
+```
+
+---
+
+### `datetostr(ts)`
+
+将日期值转换为 ISO 格式字符串。
+
+**参数:**
+
+| 参数 | 类型 | 说明 |
+| --- | --- | --- |
+| `ts` | date | 日期值 |
+
+**返回值:** 格式为 `"YYYY-MM-DD"` 的字符串
+
+
+ `datetostr()` 通常用于调试或日志输出。在实际操作中直接使用日期值即可。
+
+
+---
+
+## 时间函数
+
+### `time(h, m)`
+
+创建一个指定时间值。
+
+**参数:**
+
+| 参数 | 类型 | 说明 |
+| --- | --- | --- |
+| `h` | integer | 小时(0-23) |
+| `m` | integer | 分钟(0-59) |
+
+**返回值:** 时间值(可赋值给时间类型变量)
+
+**示例:**
+
+```lua
+-- 设置开始时间为 09:30
+RESERVE_BEGIN_TIME = time(9, 30)
+
+-- 设置结束时间为 21:00
+RESERVE_END_TIME = time(21, 0)
+```
+
+---
+
+### `timenow()`
+
+获取当前时间(以分钟表示的当天已过时间)。
+
+**返回值:** 当前时间值(分钟数)
+
+**示例:**
+
+```lua
+-- 将开始时间设为当前时间后 30 分钟
+RESERVE_BEGIN_TIME = timeadd(timenow(), 30)
+```
+
+---
+
+### `timeadd(time_val, n)`
+
+在指定时间上增加或减少分钟数。
+
+**参数:**
+
+| 参数 | 类型 | 说明 |
+| --- | --- | --- |
+| `time_val` | time | 基准时间值 |
+| `n` | integer | 增加的分钟数(负数表示减少) |
+
+**返回值:** 计算后的时间值(自动处理跨天回绕)
+
+**示例:**
+
+```lua
+-- 开始时间推迟 30 分钟
+RESERVE_BEGIN_TIME = timeadd(RESERVE_BEGIN_TIME, 30)
+
+-- 结束时间提前 1 小时
+RESERVE_END_TIME = timeadd(RESERVE_END_TIME, -60)
+
+-- 在现有时间基础上叠加
+RESERVE_BEGIN_TIME = timeadd(timenow(), 120) -- 当前时间 + 2 小时
+```
+
+---
+
+### `strtotime(hm_str)`
+
+将时间字符串转换为时间值。
+
+**参数:**
+
+| 参数 | 类型 | 说明 |
+| --- | --- | --- |
+| `hm_str` | string | 时间字符串,格式 `"HH:MM"` |
+
+**返回值:** 时间值
+
+**示例:**
+
+```lua
+RESERVE_BEGIN_TIME = strtotime("08:00")
+```
+
+---
+
+### `timetostr(m)`
+
+将时间值转换为字符串。
+
+**参数:**
+
+| 参数 | 类型 | 说明 |
+| --- | --- | --- |
+| `m` | time | 时间值(分钟数) |
+
+**返回值:** 格式为 `"HH:MM"` 的字符串
+
+
+ `timetostr()` 通常用于调试或日志输出。在实际操作中直接使用时间值即可。
+
+
+---
+
+## 函数速查表
+
+| 函数 | 说明 | 输入 | 输出 |
+| --- | --- | --- | --- |
+| `date(y, m, d)` | 创建日期 | `(int, int, int)` | date |
+| `datenow()` | 当前日期 | 无 | date |
+| `dateadd(d, n)` | 日期偏移 | `(date, int)` | date |
+| `strtodate(s)` | 字符串转日期 | `(string)` | date |
+| `datetostr(d)` | 日期转字符串 | `(date)` | string |
+| `time(h, m)` | 创建时间 | `(int, int)` | time |
+| `timenow()` | 当前时间 | 无 | time |
+| `timeadd(t, n)` | 时间偏移 | `(time, int)` | time |
+| `strtotime(s)` | 字符串转时间 | `(string)` | time |
+| `timetostr(t)` | 时间转字符串 | `(time)` | string |
diff --git a/zh/autoscript/index.mdx b/zh/autoscript/index.mdx
new file mode 100644
index 0000000..cb96972
--- /dev/null
+++ b/zh/autoscript/index.mdx
@@ -0,0 +1,83 @@
+---
+title: "AutoScript 概述"
+description: "AutoScript 自动化脚本引擎 - 在定时任务执行前动态调整预约参数"
+---
+
+AutoScript 是基于 Lua 语言的自动化脚本引擎,用于在定时任务执行前对预约参数进行动态调整。
+
+## 什么是 AutoScript
+
+在之前的版本中,定时任务只能按照固定的预约参数执行。如果需要在不同日期预约不同座位,或根据时间动态调整预约时长,只能手动修改配置。
+
+AutoScript 解决了这一问题。它允许你编写简单的脚本,在定时任务执行前自动修改用户变量(如预约日期、开始时间、结束时间等),实现灵活的自动化预约策略。
+
+## 核心概念
+
+AutoScript 的核心工作流程如下:
+
+1. **输入数据**:定时任务触发时,从用户配置中读取当前用户的预约参数
+2. **执行脚本**:运行你编写的 AutoScript 脚本,动态修改变量值
+3. **输出数据**:将脚本修改后的参数传递给自动化引擎执行
+
+
+ AutoScript 脚本修改的参数仅影响当次执行,不会回写到用户配置文件。下次任务运行时将重新从配置文件读取原始值。
+
+
+## 典型应用场景
+
+- **每日动态日期**:始终预约"明天"的座位,无需每天手动修改日期
+- **条件切换**:根据是否启用标志决定不同的预约策略
+- **时间偏移**:在特定时间段自动调整预约开始时间
+- **批量处理**:配合用户分组,为不同用户设置不同的预约参数
+
+## 快速示例
+
+以下脚本将预约日期设为明天,开始时间设为上午 9:00:
+
+```lua
+-- 设置预约日期为明天
+RESERVE_DATE = dateadd(datenow(), 1)
+
+-- 设置开始时间为 09:00
+RESERVE_BEGIN_TIME = time(9, 0)
+```
+
+## 两种使用方式
+
+AutoLibrary 提供两种方式编写 AutoScript:
+
+| 方式 | 说明 | 适合人群 |
+| --- | --- | --- |
+| [**代码编辑器**](/zh/autoscript/editor) | 直接编写 Lua 脚本,提供语法高亮和调试功能 | 熟悉脚本编写的用户 |
+| [**可视化编排器**](/zh/autoscript/orchestrator) | 通过图形界面拖拽组合条件和操作,自动生成脚本 | 不熟悉编程的用户 |
+
+
+
+ 了解 AutoScript 的 Lua 语法基础、运算符和流程控制。
+
+
+ 查看所有可用的日期、时间工具函数及其用法。
+
+
+ 了解可操作的目标变量、数据类型与约束规则。
+
+
+ 了解如何将 AutoScript 集成到定时任务中。
+
+
diff --git a/zh/autoscript/integration.mdx b/zh/autoscript/integration.mdx
new file mode 100644
index 0000000..1330870
--- /dev/null
+++ b/zh/autoscript/integration.mdx
@@ -0,0 +1,137 @@
+---
+title: "集成指南"
+description: "AutoScript 与定时任务集成 - 执行流程、作用域与最佳实践"
+---
+
+了解如何将 AutoScript 脚本集成到定时任务中,以及脚本的执行时机、作用范围和注意事项。
+
+## 执行流程
+
+当定时任务触发时,AutoLibrary 按以下顺序执行:
+
+1. **读取配置**:从用户配置文件中读取所有用户分组的预约参数
+2. **遍历用户组**:对每个启用的用户组,遍历其中的每个启用用户
+3. **执行 AutoScript**:对每个用户运行 AutoScript 脚本,动态调整变量值
+4. **执行定时任务**:使用调整后的参数运行预约/签到/续约操作
+
+```text
+定时任务触发
+ │
+ ├─ 用户组 A
+ │ ├─ 用户 1 → 执行 AutoScript → 预约/签到/续约
+ │ └─ 用户 2 → 执行 AutoScript → 预约/签到/续约
+ │
+ └─ 用户组 B
+ ├─ 用户 3 → 执行 AutoScript → 预约/签到/续约
+ └─ 用户 4 → 执行 AutoScript → 预约/签到/续约
+```
+
+## 作用域
+
+AutoScript 脚本的作用域限定为单个用户的单次执行:
+
+- **每次执行独立**:脚本对每个用户独立运行,不同用户之间互不影响
+- **不修改配置文件**:脚本对变量的修改仅存在于内存中,不会回写到 `user.json`
+- **下次执行重置**:下次定时任务触发时,从配置文件重新读取原始值
+
+## 配置方式
+
+### 在定时任务中指定脚本
+
+
+
+ 点击主界面底部的 [] 按钮。
+
+
+ 点击 [**添加任务**] 创建新任务,或右键现有任务选择 [**编辑**]。
+
+
+ 在编辑对话框中找到 [**AutoScript**] 区域,点击 [**编辑**] 按钮打开内置代码编辑器编写脚本。
+ 脚本编写完成后直接内嵌保存至定时任务配置,无需管理外部文件。
+
+
+ 点击 [**确认**] 保存任务配置。
+
+
+
+{/* TODO: 添加定时任务 AutoScript 配置截图 */}
+
+
+## 典型示例
+
+### 示例 1:始终预约明天的座位
+
+```lua
+-- 将预约日期设为明天
+RESERVE_DATE = dateadd(datenow(), 1)
+
+-- 设置固定时间段
+RESERVE_BEGIN_TIME = time(9, 0)
+RESERVE_END_TIME = time(21, 0)
+```
+
+### 示例 2:根据星期调整预约策略
+
+配合定时任务的重复执行功能,可以为不同日子设置不同的预约参数。如果你需要基于实际星期进行判断,可以在脚本中根据日期特性调整:
+
+```lua
+-- 始终预约明天
+RESERVE_DATE = dateadd(datenow(), 1)
+
+-- 默认时间段
+RESERVE_BEGIN_TIME = time(9, 0)
+RESERVE_END_TIME = time(21, 0)
+```
+
+### 示例 3:条件性跳过用户
+
+```lua
+-- 如果当前时间已经超过上午 10 点,跳过该用户
+if timenow() > time(10, 0) then
+ USER_ENABLE = false
+end
+```
+
+### 示例 4:根据用户名差异化配置
+
+```lua
+if USERNAME == "20250101001" then
+ -- 用户 A 的预约策略
+ RESERVE_BEGIN_TIME = time(8, 0)
+ RESERVE_END_TIME = time(20, 0)
+end
+```
+
+## 最佳实践
+
+### 先调试,后配置
+
+在将脚本关联到定时任务之前,使用编辑器的调试运行功能在模拟数据上验证脚本逻辑。
+
+### 保持脚本简洁
+
+每个脚本只关注一个明确的目标,避免在一个脚本中处理过多复杂逻辑。如果需要针对不同用户组执行不同逻辑,建议为每个用户组创建独立的定时任务。
+
+### 注意沙箱限制
+
+AutoScript 运行在受限的沙箱环境中,不能访问文件系统或执行系统命令。如果脚本需要外部数据(如个人日程表),请使用条件判断和工具函数实现。
+
+### 验证类型兼容性
+
+确保所有赋值操作的类型与目标变量声明的类型一致。类型错误会导致脚本执行失败并跳过该用户。
+
+### 处理边缘情况
+
+编写脚本时考虑边缘情况:
+
+```lua
+-- 确保开始时间不早于 7:30
+if RESERVE_BEGIN_TIME < time(7, 30) then
+ RESERVE_BEGIN_TIME = time(7, 30)
+end
+
+-- 确保结束时间不晚于 22:30
+if RESERVE_END_TIME > time(22, 30) then
+ RESERVE_END_TIME = time(22, 30)
+end
+```
diff --git a/zh/autoscript/orchestrator.mdx b/zh/autoscript/orchestrator.mdx
new file mode 100644
index 0000000..01d17b1
--- /dev/null
+++ b/zh/autoscript/orchestrator.mdx
@@ -0,0 +1,105 @@
+---
+title: "可视化编排器"
+description: "AutoScript 可视化编排器 - 通过图形界面构建条件判断与变量操作,无需手写代码"
+---
+
+可视化编排器让你通过图形界面构建 AutoScript 脚本,无需了解 Lua 语法。编排器会根据你的配置自动生成代码。
+
+{/* TODO: 添加可视化编排器界面截图 */}
+
+
+## 编排器结构
+
+编排器由多个判断块(Conditional Block)堆叠组成,从上到下依次执行。每个判断块包含条件判断和操作步骤两部分。
+
+### 判断块类型
+
+每个判断块可以设置为以下三种类型之一:
+
+| 类型 | 触发条件 | 说明 |
+| --- | --- | --- |
+| **IF** | 第一个判断块 | 始终为 IF,不可更改 |
+| **ELSE IF** | 上方条件均不满足 | 添加额外的条件分支 |
+| **ELSE** | 上方所有条件均不满足 | 默认分支,不需要设置条件 |
+
+
+ 在一个 IF 后可以添加多个 ELSE IF,但只能有一个 ELSE 块。
+ 添加 ELSE 块后,不能再添加 ELSE IF 或 ELSE 块。
+
+
+## 添加判断块
+
+点击 [**+ 添加判断块**] 按钮添加新的判断块。新块的类型默认为 ELSE IF。
+
+## 配置条件
+
+每个判断块可包含一个或多个条件行,多个条件之间用 `and` 或 `or` 连接。
+
+### 条件行配置项
+
+| 配置项 | 说明 |
+| --- | --- |
+| 逻辑运算符 | 与上一条件行的关系:`and`(且)或 `or`(或)。第一行不显示此选项 |
+| 左变量 | 选择要比较的目标变量,或直接使用 `true`/`false` 布尔值 |
+| 比较运算符 | `==` `~=` `>` `<` `>=` `<=` |
+| 比较方式 | 与固定值比较 / 与另一个变量比较 |
+| 右值 | 根据变量类型提供对应的输入控件 |
+
+### 特殊规则
+
+- **布尔变量**:当左侧选择布尔类型变量(如 `USER_ENABLE`)时,比较运算符和右值自动隐藏,
+ 条件直接判断该布尔值是否为真
+- 可以点击 [**+**] 按钮添加更多条件行,或点击 [**x**] 按钮删除某个条件行
+
+## 配置操作步骤
+
+每个判断块内可包含一个或多个操作步骤(Action Step),当该块的条件满足时,所有操作步骤按顺序执行。
+
+### 操作类型
+
+| 操作 | 说明 | 示例 |
+| --- | --- | --- |
+| **set** | 将变量设置为指定值 | `RESERVE_DATE = dateadd(datenow(), 1)` |
+| **add** | 在变量当前值上增加 | `RESERVE_BEGIN_TIME = RESERVE_BEGIN_TIME + 30` |
+| **sub** | 在变量当前值上减去 | `RESERVE_END_TIME = RESERVE_END_TIME - 60` |
+
+### 值来源
+
+| 来源 | 说明 |
+| --- | --- |
+| 固定值 | 手动输入或选择具体值 |
+| 变量 | 从其他目标变量读取值 |
+
+### 日期和时间特殊处理
+
+对于日期和时间类型变量,输入控件提供以下便捷选项:
+
+| 变量类型 | 便捷选项 |
+| --- | --- |
+| Date | 今天、明天、后天、指定日期(日历选择器) |
+| Time | 当前时间、指定时间(时间选择器) |
+
+
+ 当选择相对日期选项(如"明天")时,编排器会生成相应的工具函数调用(如 `dateadd(datenow(), 1)`),
+ 确保脚本在运行时动态计算正确的日期。
+
+
+## 生成代码
+
+配置完成后,点击 [**确认**] 按钮,编排器将把所有判断块转换为 Lua 代码并插入到代码编辑器中。
+
+例如,以下编排配置:
+
+- IF `USER_ENABLE` → set `RESERVE_DATE` 为明天,set `RESERVE_BEGIN_TIME` 为 09:00
+- ELSE → set `USER_ENABLE` 为 false
+
+将生成:
+
+```lua
+if USER_ENABLE then
+ RESERVE_DATE = dateadd(datenow(), 1)
+ RESERVE_BEGIN_TIME = time(9, 0)
+else
+ USER_ENABLE = false
+end
+```
diff --git a/zh/autoscript/syntax.mdx b/zh/autoscript/syntax.mdx
new file mode 100644
index 0000000..9a7fc61
--- /dev/null
+++ b/zh/autoscript/syntax.mdx
@@ -0,0 +1,149 @@
+---
+title: "语法指引"
+description: "AutoScript Lua 语法指南 - 变量、运算符、条件判断与注释"
+---
+
+AutoScript 使用 Lua 5.4 作为脚本语言。本页介绍编写 AutoScript 所需的 Lua 基础语法。
+
+## 注释
+
+使用 `--` 开头编写单行注释:
+
+```lua
+-- 这是一条注释
+RESERVE_DATE = dateadd(datenow(), 1) -- 这也是一条行内注释
+```
+
+
+ AutoScript 仅支持单行注释(`--`),不支持 Lua 的多行注释(`--[[ ]]`)。
+
+
+## 变量赋值
+
+使用 `=` 进行变量赋值。可操作的目标变量请参见[变量参考](/zh/autoscript/variables)。
+
+```lua
+USERNAME = "alice"
+USER_ENABLE = true
+RESERVE_DATE = date(2025, 10, 30)
+RESERVE_BEGIN_TIME = time(9, 0)
+RESERVE_END_TIME = time(21, 30)
+```
+
+
+ 赋值必须保持变量原有的类型。例如,不能将字符串赋值给日期类型的变量,也不能将布尔值赋值给整数类型。类型错误会在脚本执行时报错。
+
+
+## 算术运算
+
+支持基本的算术运算,可用于数值和日期/时间变量的计算:
+
+```lua
+-- 数值运算
+RESERVE_BEGIN_TIME = RESERVE_BEGIN_TIME + 60 -- 开始时间推迟 60 分钟
+RESERVE_END_TIME = RESERVE_END_TIME - 30 -- 结束时间提前 30 分钟
+
+-- 日期运算(使用工具函数)
+RESERVE_DATE = dateadd(RESERVE_DATE, 1) -- 日期延后 1 天
+RESERVE_DATE = dateadd(RESERVE_DATE, -3) -- 日期提前 3 天
+```
+
+
+ 对于日期和时间的加减,推荐使用 `dateadd()` 和 `timeadd()` 函数。直接使用 `+` `-` 进行日期运算可能导致结果含义不明确。
+
+
+## 条件判断
+
+使用 `if` / `elseif` / `else` 结构进行条件判断。每个 `if` 块必须以 `end` 结尾:
+
+```lua
+if USER_ENABLE then
+ -- 用户启用时执行
+ RESERVE_DATE = dateadd(datenow(), 1)
+end
+```
+
+```lua
+if RESERVE_BEGIN_TIME < time(8, 0) then
+ RESERVE_BEGIN_TIME = time(8, 0)
+else
+ RESERVE_BEGIN_TIME = time(9, 0)
+end
+```
+
+多条件判断:
+
+```lua
+if RESERVE_BEGIN_TIME < time(8, 0) then
+ RESERVE_BEGIN_TIME = time(8, 0)
+elseif RESERVE_BEGIN_TIME > time(22, 0) then
+ RESERVE_BEGIN_TIME = time(22, 0)
+else
+ RESERVE_BEGIN_TIME = RESERVE_BEGIN_TIME
+end
+```
+
+## 比较运算符
+
+| 运算符 | 说明 | 示例 |
+| --- | --- | --- |
+| `==` | 等于 | `USERNAME == "alice"` |
+| `~=` | 不等于 | `USER_ENABLE ~= false` |
+| `>` | 大于 | `RESERVE_BEGIN_TIME > time(9, 0)` |
+| `<` | 小于 | `RESERVE_END_TIME < time(22, 0)` |
+| `>=` | 大于等于 | `RESERVE_BEGIN_TIME >= time(7, 30)` |
+| `<=` | 小于等于 | `RESERVE_END_TIME <= time(23, 0)` |
+
+## 逻辑运算符
+
+| 运算符 | 说明 | 示例 |
+| --- | --- | --- |
+| `and` | 逻辑与 | `USER_ENABLE and RESERVE_BEGIN_TIME < time(12, 0)` |
+| `or` | 逻辑或 | `USERNAME == "alice" or USERNAME == "bob"` |
+| `not` | 逻辑非 | `not USER_ENABLE` |
+
+## 布尔变量判断
+
+对于布尔类型的变量(如 `USER_ENABLE`),可以直接作为条件使用,无需显式比较:
+
+```lua
+-- 推荐写法
+if USER_ENABLE then
+ ...
+end
+
+-- 等价但不推荐
+if USER_ENABLE == true then
+ ...
+end
+```
+
+## 字符串
+
+字符串使用双引号包裹:
+
+```lua
+USERNAME = "20250101001"
+```
+
+
+ AutoScript 不支持字符串拼接(`..` 运算符)。字符串变量只能通过直接赋值修改。
+
+
+## 关键字
+
+以下是 AutoScript 中可用的 Lua 关键字:
+
+`if` `elseif` `else` `then` `end` `and` `or` `not` `true` `false`
+
+以下 Lua 标准功能出于安全考虑**不可用**:
+
+- 文件 I/O(`io` 模块)
+- 模块加载(`require`、`dofile`、`loadfile`)
+- 系统命令执行(`os.execute`、`os.exit`)
+- 调试功能(`debug` 模块)
+- 循环语句(`for`、`while`)
+
+
+ 出于安全沙箱限制,AutoScript 不支持循环语句。如果你需要为多个用户设置不同参数,建议使用用户分组功能,配合条件判断实现差异化配置。
+
diff --git a/zh/autoscript/variables.mdx b/zh/autoscript/variables.mdx
new file mode 100644
index 0000000..324348e
--- /dev/null
+++ b/zh/autoscript/variables.mdx
@@ -0,0 +1,120 @@
+---
+title: "变量参考"
+description: "AutoScript 可操作的目标变量完整参考 - 数据类型与映射关系"
+---
+
+AutoScript 通过操作一组预定义的变量来调整预约参数。每个变量有固定的数据类型,赋值时必须保持类型一致。
+
+## 变量列表
+
+| 显示名称 | Lua 变量名 | 类型 | 说明 |
+| --- | --- | --- | --- |
+| 用户名 | `USERNAME` | String | 用户的学号 |
+| 用户启用 | `USER_ENABLE` | Boolean | 是否启用该用户 |
+| 预约日期 | `RESERVE_DATE` | Date | 座位预约日期 |
+| 预约开始时间 | `RESERVE_BEGIN_TIME` | Time | 预约开始时间 |
+| 预约结束时间 | `RESERVE_END_TIME` | Time | 预约结束时间 |
+
+
+ 变量名区分大小写。`USERNAME`、`username` 和 `UserName` 是三个不同的标识符。
+ 请始终使用全大写变量名。
+
+
+## 数据类型
+
+### String(字符串)
+
+文本类型,用于表示学号。
+
+```lua
+USERNAME = "20250101001"
+```
+
+限制:
+- 只能通过直接赋值修改
+- 不支持字符串拼接
+
+### Boolean(布尔)
+
+真/假值,用于控制用户是否被处理。
+
+```lua
+USER_ENABLE = true -- 启用用户
+USER_ENABLE = false -- 跳过用户
+
+-- 可直接作为条件判断
+if USER_ENABLE then
+ -- 用户启用时执行
+end
+```
+
+### Date(日期)
+
+日期值,在 Lua 内部以数值形式存储(Unix 时间戳),在配置文件中以 `"YYYY-MM-DD"` 字符串形式存储。
+
+```lua
+-- 使用工具函数创建日期
+RESERVE_DATE = date(2025, 10, 30) -- 绝对日期
+RESERVE_DATE = datenow() -- 今天
+RESERVE_DATE = dateadd(datenow(), 1) -- 明天
+RESERVE_DATE = strtodate("2025-12-31") -- 从字符串解析
+```
+
+
+ 不要直接对日期变量使用算术运算(如 `RESERVE_DATE + 86400`)。
+ 请使用 `dateadd()` 函数。
+
+
+### Time(时间)
+
+时间值,在 Lua 内部以分钟数形式存储(0-1439),在配置文件中以 `"HH:MM"` 字符串形式存储。
+
+```lua
+-- 使用工具函数创建时间
+RESERVE_BEGIN_TIME = time(9, 0) -- 09:00
+RESERVE_END_TIME = time(21, 30) -- 21:30
+RESERVE_BEGIN_TIME = timeadd(timenow(), 60) -- 当前时间 + 1 小时
+RESERVE_END_TIME = strtotime("22:00") -- 从字符串解析
+```
+
+
+ 时间值在内部是以分钟为单位的整数值。`time(9, 30)` 等价于 `570`(9*60 + 30)。
+ 虽然可以直接使用数值,但建议始终使用工具函数以确保可读性和正确性。
+
+
+## 虚拟变量
+
+以下两个变量存在于可视化编排器中,但在实际 Lua 脚本中不可用。编排器会在生成代码时将它们转换为对应的函数调用:
+
+| 虚拟变量 | 编排器中的含义 | 生成的 Lua 代码 |
+| --- | --- | --- |
+| `CURRENT_DATE` | 当前日期 | `datenow()` |
+| `CURRENT_TIME` | 当前时间 | `timenow()` |
+
+
+ 在代码编辑器中编写脚本时,请直接使用 `datenow()` 和 `timenow()` 函数,
+ 不要使用 `CURRENT_DATE` 或 `CURRENT_TIME`。
+
+
+## 类型安全
+
+AutoScript 引擎会在脚本执行前后验证变量类型。以下情况会导致错误:
+
+- 将字符串赋给日期变量
+- 将布尔值赋给整数变量
+- 将浮点数赋给需要整数的变量
+- 变量值变为 `nil`
+
+```lua
+-- 正确:类型匹配
+RESERVE_DATE = dateadd(datenow(), 1) -- Date = Date
+USER_ENABLE = true -- Boolean = Boolean
+
+-- 错误:类型不匹配
+RESERVE_DATE = "2025-10-30" -- Error: Date ≠ String
+USER_ENABLE = 1 -- Error: Boolean ≠ Int
+```
+
+
+ 如果脚本执行后某个变量值未改变,脚本中对该变量的赋值被跳过了,请检查赋值表达式的结果类型是否与变量声明的类型匹配。
+
diff --git a/zh/changelog/overview.mdx b/zh/changelog/overview.mdx
deleted file mode 100644
index 7e55ead..0000000
--- a/zh/changelog/overview.mdx
+++ /dev/null
@@ -1,35 +0,0 @@
----
-title: "更新日志"
-description: "AutoLibrary 产品更新与版本发布记录"
----
-
-本页面记录 AutoLibrary 的产品更新与改进。最新更改优先显示。
-
-
-
-## 新功能
-
-- **可视化编排对话框**:通过图形化界面构建 AutoScript 脚本,支持调试运行、动态模拟目标数据输入,以及算术表达式的解析与回显。无需手写脚本即可创建复杂的自动化流程。查看 [核心功能](/zh/manual/v1.3.0/features/core) 了解如何使用。
-- **AutoScript 行内注释**:现支持 `//` 行内注释和完整注释行,方便为自动化脚本添加说明。
-- **算术表达式支持**:AutoScript 现支持算术表达式与变量的加减运算,可在脚本中进行动态计算。
-- **全新应用图标**:AutoLibrary 启用全新设计的 SVG/ICO 图标,提升应用辨识度。
-- **编辑器语法高亮**:脚本编辑器采用 VSCode C 风格配色方案,布尔字面量独立配色,提升脚本编辑体验。
-
-## 更新
-
-- **AutoScript 引擎升级至 v1.0.0**:脚本引擎迁移至 Lua 沙箱架构,提供更强的类型安全与异常处理。日期、时间相关函数已重命名(如 `CURRENT_DATE()` → `datenow()`,`date_add` → `dateadd`),请相应更新现有脚本。
-- **预约检查流程优化**:数据校验前置,避免无效配置触发不必要的浏览器操作,预约失败时反馈更快。
-- **关于对话框重构**:改用标签页分别展示系统信息、项目信息和许可证内容,新增 Selenium 版本展示。
-- **手册站点域名迁移**:用户手册地址迁移至 `manuals.autolibrary.kenanzhu.com`,请更新书签。
-- **强类型赋值校验**:AutoScript 中的 `SET` 赋值禁止跨类型隐式转换,可在脚本运行前及早发现类型错误。
-
-## Bug 修复
-
-- 修复编排窗口中 `CURRENT_DATE` 日期映射偏移、被错误识别为前天的问题。
-- 统一闭馆时间常量为 22:30,修复预约校验阶段与选时阶段使用不同闭馆时间的不一致问题。
-- 修正编排窗口生成的脚本块结尾,统一使用 `END IF` 结束。
-- 修复验证码识别逻辑、预约时间校验流程以及异常处理。
-- 加固元素操作防护,避免页面元素瞬时不可用时出现的偶发失败。
-- 修复定时任务对话框的布局边距与间距问题。
-
-
diff --git a/zh/manual/v1.4.0/configuration/file.mdx b/zh/manual/v1.4.0/configuration/file.mdx
new file mode 100644
index 0000000..01edfbf
--- /dev/null
+++ b/zh/manual/v1.4.0/configuration/file.mdx
@@ -0,0 +1,215 @@
+---
+title: "通过文件配置"
+description: "AutoLibrary JSON 配置文件参考 - run.json 与 user.json"
+---
+
+软件启动时,将自动在用户主目录下创建运行配置文件 `run.json` 和用户配置文件 `user.json`。
+
+配置文件统一存放于用户数据目录下的 `AutoLibrary/config` 文件夹中。
+
+以 Windows 系统为例:
+
+```path
+C:\Users\<用户名>\AppData\Roaming\AutoLibrary\config
+```
+
+macOS 系统中的路径则为:
+
+```path
+~/Library/Application Support/AutoLibrary/config
+```
+
+
+ 任何情况下都不建议在该目录下修改除运行配置文件、用户配置文件和全局配置文件以外的任何文件。
+
+ 即使是修改配置文件,也请务必保持 [JSON 格式](https://www.json.org/json-zh.html)正确,否则可能导致软件无法正常启动或运行。
+
+
+## 运行配置文件 (run.json)
+
+```json
+{
+ "library": {
+ "host_url": "http://10.1.20.7",
+ "login_url": "/login"
+ },
+ "mode": {
+ "run_mode": 1
+ },
+ "login": {
+ "auto_captcha": true,
+ "max_attempt": 3
+ },
+ "web_driver": {
+ "driver_type": "edge",
+ "driver_path": "",
+ "headless": false
+ }
+}
+```
+
+### 字段 (library)
+
+关于图书馆的相关配置,目前版本下无需更改
+
+| 参数 | 类型 | 说明 |
+| --- | --- | --- |
+| `host_url` | String | 图书馆主机URL,无需更改 |
+| `login_url` | String | 登录页面URL,无需更改 |
+
+### 字段 (mode)
+
+AutoLibrary 的运行模式
+
+| 参数 | 类型 | 说明 |
+| --- | --- | --- |
+| `run_mode` | Number | 运行模式组合(+1 预约, +2 签到, +4 续约) |
+
+### 字段 (login)
+
+AutoLibrary 处理登录时的相关配置
+
+| 参数 | 类型 | 说明 |
+| --- | --- | --- |
+| `auto_captcha` | Boolean | 自动验证码识别,建议保持 `true` |
+| `max_attempt` | Number | 登录尝试次数,默认 3 次 |
+
+### 字段 (web_driver)
+
+AutoLibrary 使用的浏览器及其驱动的相关配置
+
+| 参数 | 类型 | 说明 |
+| --- | --- | --- |
+| `driver_type` | String | 浏览器类型:`edge` / `chrome` / `firefox` |
+| `driver_path` | String | 驱动文件路径,为空则运行失败 |
+| `headless` | Boolean | 无头模式,默认 `false` |
+
+## 用户配置文件 (user.json)
+
+```json
+{
+ "groups": [
+ {
+ "name": "分组名",
+ "enable": true,
+ "users": [
+ {
+ "username": "您的学号",
+ "password": "您的密码",
+ "enable": true,
+ "reserve_info": {
+ "date": "2025-10-30",
+ "place": "1",
+ "floor": "4",
+ "room": "5",
+ "begin_time": {
+ "time": "09:30",
+ "max_diff": 30,
+ "prefer_early": true
+ },
+ "end_time": {
+ "time": "21:23",
+ "max_diff": 30,
+ "prefer_early": false
+ },
+ "renew_time": {
+ "expect_duration": 1.0,
+ "max_diff": 30,
+ "prefer_early": false
+ },
+ "seat_id": "31A",
+ "expect_duration": 6,
+ "satisfy_duration": true
+ }
+ }
+ ]
+ }
+ ]
+}
+```
+
+### 字段 (groups)
+
+这是用户配置的最外层的用户分组,分组中会包含一个用户列表,
+
+
+ 即使只添加用户列表而不使用分组包裹,AutoLibrary 也会默认为该用户列表创建兼容分组。
+
+
+| 参数 | 类型 | 说明 |
+| --- | --- | --- |
+| `name` | String | 分组名称 |
+| `enable` | Boolean | 是否启用该分组,`false` 时跳过 |
+
+### 字段 (users)
+
+用户分组中的用户列表
+
+| 参数 | 类型 | 说明 |
+| --- | --- | --- |
+| `username` | String | 学号 |
+| `password` | String | 密码 |
+| `enable` | Boolean | 是否启用该用户,`false` 时跳过 |
+
+### 字段 (reserve_info)
+
+该字段包含了用户的座位预约信息
+
+| 参数 | 类型 | 说明 |
+| --- | --- | --- |
+| `date` | String | 预约日期(格式 `yyyy-MM-dd`) |
+| `place` | String | `"图书馆"` 或 `"1"` |
+| `floor` | String | 楼层代码,**详见下方楼层映射** |
+| `room` | String | 区域代码,**详见下方区域映射** |
+| `seat_id` | String | 座位编号,如 `12A` `012a` |
+| `expect_duration` | Number | 期望预约时长(分钟) |
+| `satisfy_duration` | Boolean | 是否满足期望时长 |
+
+
+ | 代码 | 楼层 |
+ | --- | --- |
+ | `2` | 二层 |
+ | `3` | 三层 |
+ | `4` | 四层 |
+ | `5` | 五层 |
+
+
+ | 代码 | 区域 |
+ | --- | --- |
+ | `1` | 二层内环 |
+ | `2` | 二层西区 |
+ | `3` | 三层内环 |
+ | `4` | 三层外环 |
+ | `5` | 四层内环 |
+ | `6` | 四层外环 |
+ | `7` | 期刊区 |
+ | `8` | 五层考研 |
+
+
+#### 子字段 begin_time
+
+| 参数 | 类型 | 说明 |
+| --- | --- | --- |
+| `time` | String | 开始时间(格式 `HH:mm`) |
+| `max_diff` | Number | 最大时间差(分钟) |
+| `prefer_early` | Boolean | 是否优先较早时间 |
+
+#### 子字段 end_time
+
+| 参数 | 类型 | 说明 |
+| --- | --- | --- |
+| `time` | String | 结束时间(格式 `HH:mm`) |
+| `max_diff` | Number | 最大时间差(分钟) |
+| `prefer_early` | Boolean | 结束时间优先较晚 |
+
+#### 子字段 renew_time
+
+
+ 各用户配置的该子字段只在自动续约模式下才会被 AutoLibrary 读取
+
+
+| 参数 | 类型 | 说明 |
+| --- | --- | --- |
+| `expect_duration` | Number | 期望续约时长(小时) |
+| `max_diff` | Number | 最大时间差(分钟) |
+| `prefer_early` | Boolean | 续约时间优先较晚 |
diff --git a/zh/manual/v1.4.0/configuration/start.mdx b/zh/manual/v1.4.0/configuration/start.mdx
new file mode 100644
index 0000000..a594708
--- /dev/null
+++ b/zh/manual/v1.4.0/configuration/start.mdx
@@ -0,0 +1,18 @@
+---
+title: "启动工具"
+description: "AutoLibrary 启动与运行说明"
+---
+
+运行 AutoLibrary 文件,工具将启动主界面。
+
+
+
+软件首次启动时,未初始化配置文件,直接运行脚本会提示配置文件未找到。这属于预期行为,请先完成下方配置。
+
+
+ 为适应不同的用户需求,这里分别提供了通过界面与直接修改配置文件两种方式,请按照需求参考选择。
+
+
+
+ Windows 与 macOS 平台配置文件路径因系统而异,详见[通过文件配置](/zh/manual/v1.4.0/configuration/file)页面。
+
diff --git a/zh/manual/v1.4.0/configuration/ui.mdx b/zh/manual/v1.4.0/configuration/ui.mdx
new file mode 100644
index 0000000..3605eee
--- /dev/null
+++ b/zh/manual/v1.4.0/configuration/ui.mdx
@@ -0,0 +1,101 @@
+---
+title: "通过界面配置"
+description: "AutoLibrary 界面配置指南 - 用户、预约、系统设置与运行模式"
+---
+
+点击主界面窗口右上角的 [**配置**] 按钮,打开配置窗口。
+
+
+
+ 
+
+
+ 初次运行软件时,用户配置默认为空,需要手动添加。
+
+
+ ### 用户列表
+
+ | 功能 | 说明 | 备注 |
+ | --- | --- | --- |
+ | 用户列表 | 显示当前配置文件中的所有用户 | 支持 [**添加**]、[**删除**] 用户操作,选中用户项进行详细配置 |
+
+ ### 用户信息
+
+ | 参数 | 说明 | 默认值/可选值 |
+ | --- | --- | --- |
+ | 学号 | 用户的学号 | 必填项,用于登录图书馆系统 |
+ | 密码 | 用户的密码 | 默认值为 `000000`,请根据实际情况修改 |
+
+ ### 预约信息
+
+ | 参数 | 说明 | 默认值/可选值 |
+ | --- | --- | --- |
+ | 日期 | 座位预约日期 | 格式 `yyyy-MM-dd`,18:00-23:00可预约次日 |
+ | 地点 | 预约座位的地点 | 默认值:`图书馆` |
+ | 楼层 | 预约座位的楼层 | `二层` `三层` `四层` `五层` |
+ | 区域 | 预约座位的区域 | 默认值:`二层内环`,可选随楼层变化 |
+ | 座位号 | 预约座位的座位号 | 例如:`12A` `012a` |
+ | 开始时间 | 预约开始时间 | 格式 `HH:mm`,可选范围 7:30-23:30 |
+ | 结束时间 | 预约结束时间 | 格式 `HH:mm`,默认当前时间+2小时 |
+ | 最大时间偏差 | 时间不可用时的偏差范围 | 0-120分钟,0 表示严格按选择时间 |
+ | 优先最早/晚 | 多可选时间时的优先选择 | 开始时间优先最早,结束/续约时间优先最晚 |
+ | 期望预约时长 | 预约期望时长 | 0-8 小时,默认 2 小时 |
+ | 期望续约时长 | 续约期望时长 | 0-4 小时,默认 1 小时 |
+ | 优先满足期望时长 | 是否优先满足时长限制 | 勾选后尽量满足,但可能因座位紧张导致预约失败 |
+
+
+ 
+
+ ### 图书馆设置
+
+ | 参数 | 说明 | 默认值 |
+ | --- | --- | --- |
+ | 访问网址 | 图书馆系统的主机URL | `http://10.1.20.7`(无需更改) |
+ | 登录页面 | 登录页面的URL路径 | `/login`(无需更改) |
+
+ ### 浏览器设置
+
+ | 参数 | 说明 | 默认值/可选值 |
+ | --- | --- | --- |
+ | 浏览器类别 | 使用的浏览器类型 | Microsoft Edge / Google Chrome / Mozilla Firefox |
+ | 浏览器驱动路径 | 驱动程序路径 | 通过[**浏览**] 按钮选择 |
+ | 无头模式 | 是否隐藏浏览器窗口 | `false`(显示窗口),`true` 为隐藏运行 |
+
+ ### 登录设置
+
+ | 参数 | 说明 | 默认值 |
+ | --- | --- | --- |
+ | 自动识别验证码 | 是否自动处理验证码 | 勾选(推荐) |
+ | 登录尝试次数 | 登录失败后最大重试次数 | 3 次 |
+
+ ### 运行模式
+
+ | 功能 | 说明 | 触发条件 |
+ | --- | --- | --- |
+ | 自动预约 | 按配置进行座位预约 | 用户当天无有效预约时执行 |
+ | 自动签到 | 自动完成图书馆签到 | 满足条件时执行,否则跳过 |
+ | 自动续约 | 自动延长座位使用时间 | 满足条件时执行,否则跳过 |
+
+
+ 
+
+ ### 配置文件的保存与读取
+
+ | 参数 | 说明 |
+ | --- | --- |
+ | 运行配置文件路径 | 可通过 [**...**] 按钮选择新的配置文件 |
+ | 用户配置文件路径 | 可通过 [**...**] 按钮选择新的配置文件 |
+
+ ### 导出配置
+
+ 支持将当前配置导出为文件,选择目标路径和文件名后点击 [**导出配置文件**] 按钮。
+
+
+
+## 运行工具
+
+配置完成后,点击主界面窗口顶部右侧的绿色按钮 [**启动脚本**],工具将按配置自动执行预约、签到、续约等操作。
+
+
+ AutoLibrary 将按照配置文件处理所有启用的用户组中的可用用户。
+
diff --git a/zh/manual/v1.4.0/faq/contact.mdx b/zh/manual/v1.4.0/faq/contact.mdx
new file mode 100644
index 0000000..afab81c
--- /dev/null
+++ b/zh/manual/v1.4.0/faq/contact.mdx
@@ -0,0 +1,95 @@
+---
+title: "联系我们"
+description: "AutoLibrary 的相关链接,以及快速获取联系我们的方式"
+---
+
+## 相关链接
+
+下列是快速获取与 AutoLibrary 相关的最新信息的方式,你可以跟踪最新的开发进展
+以及未来的开发规划
+
+
+
+ 项目的官方源码托管仓库、版本发布与 Issue 跟踪。
+
+
+ 自托管镜像仓库,提供更快的访问与其它个性化内容。
+
+
+ 获取 AutoLibrary 最新版本安装包。
+
+
+ 浏览、下载和分享 AutoLibrary 社区主题。
+
+
+
+
+ Gitea 镜像仓库与 GitHub 主仓库的同步间隔为 8 小时,因此出现提交不一致的问题是正常的,
+ 请等待 Gitea 镜像仓库同步后再次检查。
+
+
+## 问题反馈
+
+如果在使用 AutoLibrary 过程中遇到了一些问题,并且无法在本文档站点中寻找到任何解决方法;
+亦或者是对 AutoLibrary 有一些自己的意见和建议,欢迎通过下面的各种渠道与我们取得联系
+
+### GitHub Issues
+
+使用过程中遇到问题或需要功能改进,请通过 GitHub Issues 提交反馈:
+
+
+ 提交 Bug 报告或功能请求前,请先搜索是否已有相关问题,避免重复提交。
+
+
+### 邮件联系
+
+
+ 如需直接沟通,可通过邮件联系开发者。
+
+
+## 参与贡献
+
+欢迎通过以下方式参与 AutoLibrary 项目,AutoLibrary 通过 [MIT 协议](https://github.com/KenanZhu/AutoLibrary/blob/main/license) 进行开源,你可以对 AutoLibrary 自由的修改并再次分发:
+
+
+ 请通过 GitHub 主仓库提交 PR。Gitea 镜像仅用于数据同步备份,不参与代码贡献流程。
+
+
+
+
+ 在 [GitHub](https://github.com/KenanZhu/AutoLibrary) 上 Fork 项目仓库至个人账号。
+
+
+ 基于 main 分支创建特性分支。
+
+
+ 编写清晰规范的提交信息,推送到 Fork 仓库。
+
+
+ 向主仓库发起 [Pull Request](https://github.com/KenanZhu/AutoLibrary/pulls),描述修改内容与目的。
+
+
diff --git a/zh/manual/v1.4.0/faq/faq.mdx b/zh/manual/v1.4.0/faq/faq.mdx
new file mode 100644
index 0000000..5c302a6
--- /dev/null
+++ b/zh/manual/v1.4.0/faq/faq.mdx
@@ -0,0 +1,17 @@
+---
+title: "常见问题"
+description: "AutoLibrary 使用问答"
+---
+
+
+ AutoLibrary 完全模拟人工操作,不干扰图书馆系统正常运行。工具**不会收集或上传您的个人信息**,所有数据仅保存在本地配置文件中。
+
+
+ 根据图书馆规定,每个账号同一时间段只能预约一个座位。但您可以在配置中添加多个账号,工具会依次处理每个账号的预约请求。
+
+ 本工具旨在辅助用户正常使用图书馆服务,请勿滥用影响他人及图书馆正常运行。
+
+
+
+ 可以正常使用电脑,但**请勿操作工具自动打开的浏览器窗口**,否则可能会干扰工具正常运行。如需完全后台运行,可启用无头模式并最小化到托盘。
+
diff --git a/zh/manual/v1.4.0/faq/troubleshooting.mdx b/zh/manual/v1.4.0/faq/troubleshooting.mdx
new file mode 100644
index 0000000..d6d90b0
--- /dev/null
+++ b/zh/manual/v1.4.0/faq/troubleshooting.mdx
@@ -0,0 +1,149 @@
+---
+title: "疑难解答"
+description: "AutoLibrary 故障排除与常见问题解决方法"
+---
+
+## 工具启动时报错"无法找到驱动"
+
+
+ 这大概率是因为浏览器驱动未正确安装或版本不匹配。
+
+ 因此我们强烈建议使用 AutoLibrary 的[浏览器驱动自动下载功能](/zh/manual/v1.4.0/installation/driver#%E6%96%B9%E5%BC%8F%E4%B8%80%EF%BC%9A%E4%BD%BF%E7%94%A8%E6%B5%8F%E8%A7%88%E5%99%A8%E9%A9%B1%E5%8A%A8%E8%87%AA%E5%8A%A8%E4%B8%8B%E8%BD%BD%E5%8A%9F%E8%83%BD%EF%BC%88%E6%8E%A8%E8%8D%90%EF%BC%89)。
+ 这可以很大程度上减少此类问题的发生。
+
+
+
+
+ 确认驱动文件是否放置在正确位置。
+
+
+ 驱动版本必须与浏览器版本完全匹配(如 Chrome 需对应版本的 `chromedriver.exe`,切勿混用)。
+
+
+ 使用浏览器驱动自动下载窗口重新安装。
+
+
+
+## 登录失败,提示账号密码错误
+
+请检查配置界面中的账号密码是否正确。
+
+
+
+ 确认学号和密码无误。
+
+
+ 检查是否有不支持的特殊字符需要转义。
+
+
+ 尝试手动登录图书馆系统确认账号可用。
+
+
+
+## 预约失败,提示座位不可用
+
+目标座位可能已被他人预约或不在可预约时间。
+
+
+
+ 确认座位编号、楼层、区域是否正确。
+
+
+ 尝试预约其它座位或调整时间参数。增大 [**最大时长偏差**] 让工具在允许的时间范围内自动选择最佳起始时间。
+
+
+
+## 定时任务显示"已就绪"或"执行中"且无法删除
+
+
+ 此解决方法需要直接操作 AutoLibrary 的核心配置文件,需要操作者对 [JSON 格式](https://www.json.org/json-zh.html)有一定了解。**操作前请务必备份相关文件**,以免误操作导致配置丢失。
+
+
+这一般是因为定时任务已进入预约队列,但软件上次异常关闭未能处理完毕。请按以下步骤手动删除:
+
+
+
+ 检查界面中正在运行的定时任务,记住任务名称或运行时间等可用于定位的信息。
+
+
+ 在 AutoLibrary 配置界面的 [**其它**] 选项卡中,找到 [**当前运行配置路径**] 显示的文件夹路径,使用文件管理器打开该目录。
+
+
+ 在该目录中找到名为 `timer_task.json` 的文件,使用文本编辑器打开(推荐 [VS Code](https://code.visualstudio.com/)、[Notepad++](https://notepad-plus-plus.org/),也可直接使用记事本)。
+
+
+ 在 JSON 文件中查找包含以下信息的任务配置块:
+ - `name`(任务名称)
+ - `execute_time`(执行时间)
+
+ 如果任务名包含中文,在 JSON 中会以 Unicode 编码显示,
+ 如 `"name": "预约任务"` 在 Unicode 显示下会变为: `"name": "预约任务"`。
+ 可使用在线工具搜索「Unicode 转中文」进行转换确认。
+
+
+ 将找到的任务配置块从 JSON 文件中完全删除。
+
+
+ 删除时请保持 JSON 格式完整:确保花括号 `{}`、方括号 `[]`、逗号等符号正确。不要删除其它正常任务配置。
+
+
+
+ 完全关闭 AutoLibrary 后重新打开,异常定时任务应已成功删除,界面状态恢复正常。
+
+
+
+
+ 如果操作后 JSON 格式出错,软件可能会覆写原有配置文件。请确保备份,并检查 JSON 语法是否正确(注意最后一个元素后不要有多余的逗号)。
+
+
+## macOS 系统首次启动被阻止
+
+macOS 用户首次启动 AutoLibrary 时,系统可能提示"无法验证开发者"并阻止打开应用。
+
+这是由于应用未经过 Apple 官方代码签名所致。请按以下步骤操作:
+
+
+
+ 首次双击 `AutoLibrary.app` 后,系统弹出"无法验证开发者"提示,点击 [**取消**] 关闭弹窗。
+
+
+ 打开系统 [**设置**] → [**隐私与安全性**]。
+
+
+ 在页面底部找到关于 AutoLibrary 的拦截提示,点击右侧的 [**仍要打开**] 按钮,并在弹出的对话框中再次确认 [**打开**]。
+
+
+
+
+ 右键点击 → [**打开**] 的方式在某些 macOS 版本中可能不会出现允许选项。如果该方法无效,请使用上述系统设置方法。
+
+
+## macOS 系统浏览器驱动无法运行
+
+在 macOS 上下载的浏览器驱动可能被系统隔离,导致无法执行。
+
+
+
+ 打开终端,运行以下命令移除驱动的隔离属性:
+
+ ```bash
+ xattr -d com.apple.quarantine /path/to/driver
+ ```
+
+ 将 `/path/to/driver` 替换为实际的驱动文件路径。
+
+
+ 如果系统提示无执行权限,运行以下命令:
+
+ ```bash
+ chmod +x /path/to/driver
+ ```
+
+
+ 在终端中运行驱动文件确认其可正常启动。例如:
+
+ ```bash
+ /path/to/chromedriver --version
+ ```
+
+
diff --git a/zh/manual/v1.4.0/features/core.mdx b/zh/manual/v1.4.0/features/core.mdx
new file mode 100644
index 0000000..91db8a6
--- /dev/null
+++ b/zh/manual/v1.4.0/features/core.mdx
@@ -0,0 +1,38 @@
+---
+title: "核心功能"
+description: "AutoLibrary 核心功能 - 自动预约、签到、续约、AutoScript 脚本与模式组合"
+---
+
+## 运行模式
+
+
+
+ 如果用户当前没有有效预约,工具会自动为您预约指定座位。适用于提前预约第二天的座位。
+
+
+ 在可签到时间范围(开始时间的前后30分钟)内,自动完成签到,避免因忘记签到导致失约。
+
+
+ 到达可续约时间(结束时间前的120分钟),自动延长座位使用时间。
+
+
+
+## 模式组合
+
+运行模式可以组合使用,只需在配置窗口中勾选对应模式即可。同时启用三种模式后,工具会自动判断当前状态并执行相应操作。
+
+
+ 推荐同时启用三种模式,让工具自动处理预约、签到、续约的完整流程。
+
\ No newline at end of file
diff --git a/zh/manual/v1.4.0/features/timer.mdx b/zh/manual/v1.4.0/features/timer.mdx
new file mode 100644
index 0000000..9390094
--- /dev/null
+++ b/zh/manual/v1.4.0/features/timer.mdx
@@ -0,0 +1,136 @@
+---
+title: "定时任务"
+description: "AutoLibrary 定时任务管理 - 添加、编辑、删除定时任务与 AutoScript 集成"
+---
+
+使用内置定时任务管理,添加定时任务后在指定时间按当前预约信息自动运行。
+支持设置重复周期,如每周一、周三、周五自动执行。
+
+在定时任务中集成 AutoScript 脚本,在任务执行前自动调整预约参数。
+
+## 打开定时任务管理
+
+点击主界面窗口底部左侧的 [] 按钮,打开定时任务管理窗口。
+
+
+
+
+
+
+## 添加定时任务
+
+点击 [**添加任务**] 按钮,在弹出的对话框中配置任务参数:
+
+
+
+
+ 添加后任务将显示在列表中,状态为"等待中"。到达指定时间后自动执行。
+
+
+### 定时类型
+
+| 选项 | 说明 | 示例 |
+| --- | --- | --- |
+| [**特定时间**] | 指定任务开始的绝对时间 | `2025-10-30 08:00:00` |
+| [**相对时间**] | 相对当前时间的偏移量 | 提前 1 天、提前 2 小时、提前 30 分钟 |
+
+### 运行模式
+
+| 选项 | 行为 | 适用场景 |
+| --- | --- | --- |
+| [**静默运行**] | 任务执行时不会弹出窗口,完成后右下角通知 | 完全自动化,无需人工干预 |
+| [**运行前提示**] | 任务执行前显示提示信息 | 需要在运行前确认或查看进度 |
+
+
+ 如需完全静默运行:在配置界面的系统设置中勾选 [**无头模式**],并在程序托盘中右键选择 [**最小化到托盘**]。这样定时任务运行时不会显示主界面和浏览器窗口,仅在完成时弹出系统通知。
+
+
+### 重复执行
+
+勾选 [**启用重复执行**] 后,可以按周循环执行任务:
+
+- 选择需要运行的天(如:每周一、周三、周五)
+- 需要每天运行则勾选全部(周一至周日)
+- 全选和全不选均视为每日执行
+
+## AutoScript 自动化脚本
+
+AutoScript 是基于 Lua 语言的自动化脚本引擎,支持条件判断和算术表达式,
+可在定时任务运行前对预约参数进行动态调整,比如能够实现以下场景:
+
+
+ AutoScript 自动化脚本仅支持在**重复性**定时任务中配置,请务必
+ 勾选 [**启用重复执行**] 以使用 AutoScript 脚本。
+
+
+- 根据当前日期动态调整预约时间
+- 根据用户状态自动切换预约参数
+- 多个用户配置的批量自动化处理
+
+
+ 查看完整的 AutoScript 语法指引、工具使用说明和集成方法。
+
+
+
+
+ 在添加或编辑定时任务对话框中,点击 [**AutoScript 指令**] 区域
+ 的 [**编辑**] 按钮,打开代码编辑器编写脚本。
+
+ 例如,以下脚本将预约日期设为明天,开始时间设为上午 9:00:
+
+ ```lua
+ RESERVE_DATE = dateadd(datenow(), 1)
+ RESERVE_BEGIN_TIME = time(9, 0)
+ ```
+
+
+ 在编辑器中点击 [**确认**],脚本将直接保存到当前定时任务的配置中。无需手动管理外部脚本文件。
+
+
+ 建议结合使用 AutoScript 编辑器的 [**调试运行**] 功能,在模拟数据上验证脚本逻辑,确保参数调整符合预期。
+
+
+
+
+ AutoScript 脚本在定时任务每次执行前独立运行,针对每个启用的用户组和用户依次应用。脚本修改的参数仅影响当次执行,
+ 不会回写到用户配置文件。详见 [AutoScript 集成](/zh/autoscript/integration)。
+
+
+## 编辑定时任务
+
+支持对已创建的定时任务进行编辑修改,无需删除重建。
+
+
+
+ 在定时任务管理窗口中,在任务列表中的任意任务项上单击**鼠标右键**,在弹出的菜单中选择 [**编辑**]。
+
+ 
+
+
+ 编辑对话框将显示任务的当前配置。您可以修改:
+ - 任务名称
+ - 定时时间
+ - 运行模式
+ - AutoScript 脚本(通过内置编辑器管理)
+ - 将普通任务转换为可重复性任务(反之亦然)
+
+
+
+
+ 编辑任务时,任务的 UUID 和执行历史(可重复性任务)将被保留。修改执行时间后,状态将重置为"等待中"。
+
+
+## 删除定时任务
+
+可通过以下两种方式移除定时任务:
+
+- 右键菜单选择 [**删除**]
+- 点击任务项右侧的 [**删除**] 按钮
+
+
+ 删除可重复性任务将同时清除该任务的所有执行历史记录。
+
diff --git a/zh/manual/v1.4.0/global-settings/appearance.mdx b/zh/manual/v1.4.0/global-settings/appearance.mdx
new file mode 100644
index 0000000..9c841c4
--- /dev/null
+++ b/zh/manual/v1.4.0/global-settings/appearance.mdx
@@ -0,0 +1,132 @@
+---
+title: "外观"
+description: "AutoLibrary 外观设置 - 主题模式、界面风格与自定义主题"
+---
+
+在全局设置窗口中,选择左侧导航栏的 [**外观**] 进入外观设置页面。
+
+## 主题模式
+
+| 选项 | 说明 |
+| --- | --- |
+| [**浅色**] | 使用浅色主题 |
+| [**深色**] | 使用深色主题 |
+| [**跟随系统**] | 根据操作系统设置自动切换浅色/深色模式(默认) |
+
+## 界面风格
+
+通过下拉列表选择 Qt 界面风格(如 `Fusion`、`Windows`、`macOS` 等)。可选值取决于系统中安装的 Qt 风格插件。
+
+
+ 更改界面风格后需要重启应用才能生效。
+
+
+## 自定义外观
+
+你可以导入 `.altheme` 主题文件来替换默认外观:
+
+
+ 导入主题前建议确认来源可信。尽管 AutoLibrary 会对主题文件进行基本的格式校验,
+ 但恶意构造的主题文件可能存在安全风险。
+
+ 因此我们建议尽量从 [AutoLibrary 主题市场](https://autolibrary.kenanzhu.com/marketplace)
+ 获取相对可靠的主题文件。
+
+
+
+
+ 从 [AutoLibrary 主题市场](https://autolibrary.kenanzhu.com/marketplace) 浏览并下载你喜欢的主题文件(`.altheme`)。
+
+
+ AutoLibrary 所发布的软件包中不含预装主题,所有主题文件需要从主题市场获取。
+
+
+
+ 在 [**自定义外观**] 区域点击 [**浏览**] 按钮,选择下载的 `.altheme` 文件。
+
+ AutoLibrary 同时支持 `.altheme` 和 `.qss` 格式的主题文件。导入 `.qss` 文件时,
+ AutoLibrary 会自动包装为 `.altheme` 格式。
+
+
+ 所有导入的主题文件都会**按照主题名称重新命名**并存放在 AutoLibrary 配置目录的 themes 文件夹下:
+
+ Windows 系统:
+ ```path
+ C:\Users\<用户名>\AppData\Roaming\AutoLibrary\config\themes
+ ```
+ macOS 系统:
+ ```path
+ ~/Library/Application Support/AutoLibrary/config/themes
+ ```
+
+
+ 导入时若与已有主题同名,AutoLibrary 会对比作者信息。同一作者的同名主题将被视为重复导入并被拒绝。
+
+ 因此,发布主题时请确保你的每个作品使用唯一名称。
+
+
+
+ 导入后,从下拉列表中选择该主题即可预览。点击 [**应用**] 保存设置,或点击 [**确认**] 保存并关闭窗口。
+
+
+
+## 主题文件格式
+
+
+ **如果需要上传并分享你的自定义主题文件,你应该了解以下内容。**
+
+
+AutoLibrary 主题(**a**uto **l**ibrary **theme**)`.altheme` 文件格式基于 ZIP 压缩格式,
+其内部包含以下文件:
+
+| 文件 | 说明 |
+| --- | --- |
+| `theme.qss` | Qt 样式表文件,定义界面外观 |
+| `info.json` | 主题元数据,包含名称、作者、适配模式等信息 |
+
+
+ 如果需要了解 Qt 样式表文件(Qt Style Sheet, QSS),请访问
+ [Qt QSS 官方参考文档](https://doc.qt.io/qt-6/stylesheet-reference.html)
+
+
+`info.json` 结构示例:
+
+```json
+{
+ "qss": "theme.qss",
+ "name": "My Theme",
+ "author": "Your Name",
+ "need_theme": "dark",
+ "brief": "简洁的深色主题"
+}
+```
+
+| 字段 | 说明 |
+| --- | --- |
+| `qss` | 样式表文件名,指向压缩包内的 QSS 文件 |
+| `name` | 主题名称 |
+| `author` | 主题作者 |
+| `need_theme` | 适配主题:`"dark": 深色` `"light": 浅色` `"both": 兼容两者` |
+| `brief` | 关于主题样式的简短描述,建议不要超过 50 个字符 |
+
+## 主题市场
+
+[AutoLibrary 主题市场](https://autolibrary.kenanzhu.com/marketplace)是一个在线平台,
+供用户浏览、下载和分享自定义主题。
+
+### 通过市场上传与分享
+
+如果你按照上述格式规范制作了自定义主题,可以通过主题市场上传分享:
+
+1. 注册 [AutoLibrary 主题市场](https://autolibrary.kenanzhu.com/marketplace)账户。注册时,
+ 昵称建议设置为主题中的作者名,以免引起命名冲突
+2. 准备 `.altheme` 主题文件
+3. 在上传页面,拖入或选择你准备好的 `.altheme` 主题文件
+4. 填写必要的主题信息(名称、简介描述、适配主题、兼容版本等)
+5. 提交审核,等待审核通过后即可在主题市场中搜索、浏览并下载你分享的主题文件
+
+
+ 上传的主题需要经过管理员审核后才能公开发布。审核通过后,其它用户即可在市场中浏览和下载。
+
+ 如果提交被管理员退回,请仔细阅读审核退回原因,按要求通过编辑保存修改后即可重新提交审核。
+
diff --git a/zh/manual/v1.4.0/global-settings/start.mdx b/zh/manual/v1.4.0/global-settings/start.mdx
new file mode 100644
index 0000000..9c154aa
--- /dev/null
+++ b/zh/manual/v1.4.0/global-settings/start.mdx
@@ -0,0 +1,22 @@
+---
+title: "全局设置"
+description: "AutoLibrary 全局设置窗口与界面概览"
+---
+
+全局设置窗口,用于管理应用级别的设置。全局设置与脚本运行配置相互独立,修改后应用重启仍然生效。
+
+## 打开方式
+
+点击菜单栏中的 [**工具**] → [**全局设置**],打开全局设置窗口。
+
+
+
+## 界面概览
+
+全局设置窗口左侧为导航栏,右侧为设置内容区域。选择左侧导航项可切换到对应的设置页面。窗口底部为操作按钮:
+
+| 按钮 | 功能 |
+| --- | --- |
+| [**取消**] | 放弃修改并关闭窗口 |
+| [**应用**] | 保存当前设置但不关闭窗口 |
+| [**确认**] | 保存设置并关闭窗口 |
diff --git a/zh/manual/v1.4.0/index/beforestart.mdx b/zh/manual/v1.4.0/index/beforestart.mdx
new file mode 100644
index 0000000..ac0ffee
--- /dev/null
+++ b/zh/manual/v1.4.0/index/beforestart.mdx
@@ -0,0 +1,19 @@
+---
+title: "开始之前"
+description: "阅读文档前的格式约定与说明"
+---
+
+在开始使用 AutoLibrary 之前,建议先了解本文档的一些格式约定,帮助你更高效地阅读文档内容。
+
+## 文档约定
+
+### 软件控件
+
+文档中所有涉及 AutoLibrary 软件界面的控件(如按钮、菜单项、选项卡、输入框、复选框等),统一使用 [**加粗字体**] 的格式表示(即中括号包裹的加粗文字)。例如:
+
+- 点击 [**启动脚本**] 按钮开始运行
+- 在配置窗口中切换到 [**用户配置**] 选项卡
+- 右键菜单中选择 [**编辑**]
+- 勾选 [**启用重复执行**] 以开启周期任务
+
+当你看到一段 [**加粗**] 格式的文字时,即表示这是 AutoLibrary 中的某个可交互元素,你可以在软件中找到对应的操作入口。
diff --git a/zh/manual/v1.4.0/index/intro.mdx b/zh/manual/v1.4.0/index/intro.mdx
new file mode 100644
index 0000000..2f15fc7
--- /dev/null
+++ b/zh/manual/v1.4.0/index/intro.mdx
@@ -0,0 +1,41 @@
+---
+title: "概述"
+description: "北京建筑大学图书馆座位自动化工具 - 简化预约、签到、续约流程"
+icon: ""
+---
+
+AutoLibrary 是一款专为北京建筑大学图书馆设计的自动化工具,旨在简化图书馆座位操作流程。
+同时支持 Windows 与 macOS 平台。
+
+## 快速开始
+
+
+
+ 快速开始,安装 AutoLibrary 与其它必要的准备。支持 Windows 与 macOS 平台。
+
+
+ 完整参数参考:用户信息、预约参数、系统设置、主题外观与配置文件详解。
+
+
+ 核心功能概览:自动预约、签到、续约、AutoScript 脚本与定时任务管理。
+
+
+ 常见问题解决方法与使用问答,快速排查使用问题。
+
+
diff --git a/zh/manual/v1.4.0/installation/driver.mdx b/zh/manual/v1.4.0/installation/driver.mdx
new file mode 100644
index 0000000..2d1963d
--- /dev/null
+++ b/zh/manual/v1.4.0/installation/driver.mdx
@@ -0,0 +1,80 @@
+---
+title: "安装浏览器驱动"
+description: "AutoLibrary 浏览器驱动配置指南 - 自动下载与手动安装"
+---
+
+工具需要通过浏览器驱动来控制浏览器。以下两种方式可以帮助您快速配置驱动:
+
+
+ 浏览器驱动是一种处于自动化工具与浏览器之间的中间程序,它接收自动化工具的指令并转发给浏览器执行,
+ 从而实现对浏览器的自动控制。AutoLibrary 通过浏览器驱动来完成登录、预约、签到等需要操作网页的操作。
+
+ 每个浏览器都有各自对应的驱动:
+
+ | 浏览器 | 对应 | 驱动 |
+ | --- | --- | --- |
+ | Microsoft Edge | → | Edge WebDriver |
+ | Google Chrome | → | Chrome Driver |
+ | Mozilla Firefox | → | Gecko Driver |
+ | ... | → | ... |
+
+
+ 不同类型浏览器的驱动只能适用于其对应的浏览器,且驱动版本必须与浏览器版本匹配,否则无法正常工作。
+ AutoLibrary 的自动下载功能可以帮助解决版本匹配问题。
+
+
+
+
+ AutoLibrary 支持自动检测本地安装的浏览器,并查找适配的驱动版本,大大简化了配置流程。
+
+
+## 方式一:使用浏览器驱动自动下载功能
+
+
+
+ 在 [AutoLibrary 配置界面](/zh/manual/v1.4.0/configuration/ui#%E8%BF%90%E8%A1%8C%E9%85%8D%E7%BD%AE)中,点击 [**浏览器驱动自动下载**] 按钮。
+
+ 
+
+
+ 工具会自动检测您电脑上已安装的浏览器,并列出可用的驱动版本。
+
+
+ 从窗口中的下拉列表中选择需要的浏览器驱动版本,点击 [**下载驱动**] 按钮。
+
+ 
+
+
+ 下载完成后,点击 [**确认**] 将驱动类型与驱动路径保存到配置窗口中并退出下载对话框。
+
+ 
+
+
+
+## 方式二:手动下载浏览器驱动
+
+如果仍需手动下载驱动,请根据您使用的浏览器和操作系统选择对应的驱动:
+
+| 浏览器 | 适用系统 | 下载链接 |
+| --- | --- | --- |
+| Microsoft Edge | 跨平台 | [下载 Edge 驱动](https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/) |
+| Google Chrome | 跨平台 | [下载 Chrome 驱动](https://developer.chrome.google.cn/docs/chromedriver/downloads) |
+| Mozilla Firefox | 跨平台 | [下载 Firefox 驱动](https://github.com/mozilla/geckodriver/releases) |
+
+
+ macOS 用户请根据 Mac 芯片类型选择对应架构的驱动:
+ - Apple Silicon (M1/M2/M3/M4) → 选择 `arm64` 或 `mac64_m1` 版本
+ - Intel → 选择 `x64` 或 `mac64` 版本
+
+ 下载后,驱动文件通常以可执行文件形式提供。
+
+ 如果系统提示无法验证开发者,请在终端中运行:
+ ```bash
+ xattr -d com.apple.quarantine /path/to/driver
+ ```
+
+ 如果系统提示无执行权限,请添加执行权限:
+ ```bash
+ chmod +x /path/to/driver
+ ```
+
diff --git a/zh/manual/v1.4.0/installation/install.mdx b/zh/manual/v1.4.0/installation/install.mdx
new file mode 100644
index 0000000..f2182fc
--- /dev/null
+++ b/zh/manual/v1.4.0/installation/install.mdx
@@ -0,0 +1,74 @@
+---
+title: "安装 AutoLibrary"
+description: "AutoLibrary 下载与安装指南 - Windows 与 macOS 平台"
+---
+
+AutoLibrary 是一款专为北京建筑大学图书馆设计的自动化工具,帮助您简化图书馆座位操作流程,节省宝贵时间。工具完全模拟人工操作,通过简单的界面配置即可使用。
+
+## 下载软件
+
+请从 [AutoLibrary 下载页面](https://autolibrary.kenanzhu.com/downloads)获取最新版本。
+
+
+ [**GitHub Releases**](https://github.com/KenanZhu/AutoLibrary/releases):更新较为及时,但网络连接不稳定,速度较慢。
+
+ **云盘链接**:版本更新略有延迟,但下载速度更快。
+
+
+## 安装类型
+
+### Windows
+
+
+ 从 v1.1.0 版本开始,提供两种版本可供选择:
+
+
+
+
+ 解压下载好的压缩包文件到任意位置,双击运行其中的 `AutoLibrary.exe` 即可启动工具。
+
+
+ 压缩包内的 `_internal` 文件夹与 `AutoLibrary.exe` 可执行文件需要位于同一目录下,请勿修改或移动这两个文件,否则可能导致工具无法正常运行。
+
+
+
+ 双击运行安装程序,按照步骤提示进行安装。安装完成后即可在桌面快捷方式或开始菜单中找到 AutoLibrary。
+
+
+
+### macOS
+
+
+ AutoLibrary 的官方发布版本仅适用于 macOS Apple Silicon 系统及其架构。
+
+
+
+
+ 从下载页面获取 `AutoLibrary.<版本号>-macos-arm64.dmg` 文件。
+
+
+ 目前仅提供 Apple Silicon (M 系列芯片) 版本。如果你使用 Intel 芯片的 Mac,请从源码自行构建,详见 [GitHub 仓库](https://github.com/KenanZhu/AutoLibrary) README 中的构建说明。
+
+
+
+ 双击打开 `.dmg` 文件,将 `AutoLibrary.app` 拖入 `Applications` 文件夹。
+
+ {/* TODO: 添加 macOS DMG 安装界面截图 */}
+ 
+
+
+ 由于应用未经过 Apple 官方代码签名,首次启动时 macOS 可能会阻止运行。请按以下步骤操作:
+
+ 1. 双击 `AutoLibrary.app`,系统弹出 "**无法验证开发者**" 提示后点击 [**取消**]
+ 2. 打开系统 [**设置**] → [**隐私与安全性**]
+ 3. 在页面底部找到关于 AutoLibrary 的拦截提示,点击右侧的 [**仍要打开**]
+ 4. 在弹出的对话框中再次确认 [**打开**]
+
+
+ 此操作只需执行一次,之后即可正常双击启动。
+
+
+ 右键点击 → [**打开**] 的方式在某些 macOS 版本中可能不生效,建议优先使用上述方法。
+
+
+