在程序初次运行时,会生成一个配置文件 config.json
如下:
- "astro-project":
- "clone_repo": "你自己本地仓库(克隆)的地址【自动生成的】"
- "backup_repo": "你自己本地仓库(备份)的地址【自动生成的】"
- "local_repo": "你自己本地仓库的地址"
- "name": "你自己的项目在程序中的标识"
- "remote_repo": "你使用的主题的远程仓库 URL"
- "name": "当前的目标项目"
Note
🤖 此项代表由程序自动操作
🧑💻 此项代表需要用户进行操作
在配置文件中新添加一个项目。
- 🧑💻 用户输入自己本地仓库的地址;
- 🧑💻 用户输入使用的主题的远程仓库 URL
在配置文件中新添加一个项目配置。
更改当前程序操作的项目。
- 🧑💻 用户输入需要操作的项目名字;
修改配置文件中的 name
项。
通过远程仓库与规则集更新当前程序指向的项目。
-
🤖 新创建一个目录
_clone
克隆远程仓库🤖 如果已经存在,则会拉取
🤖 如果拉取冲突,则会删除原目录重新克隆
-
🤖 新创建一个目录
_backup
备份本地仓库 -
🤖 比较
local_repo
和clone_repo
中的文件内容如果仅在
local_repo
中存在,标记为[local only]
如果仅在
clone_repo
中存在,标记为[clone only]
如果在两个目录中都存在且文件内容不同,标记为
[diff files]
-
🤖 根据规则集处理返回的路径
🤖 如果存在规则集,解析本地仓库下的规则集
🧑💻 如果不存在规则集,需要用户自己配置
-
🧑💻 用户主动抉择不在规则集下的文件
-
🤖 进行项目修改操作
-
🤖 解析博客配置文件
-
🧑💻 用户修改配置
-
🤖 更新项目依赖
-
🤖 提交远程仓库
更新本地仓库的主题。
🚧 此内容还在建设 🚧
更新规则由在本地项目根目录下的文件 rule.json
决定。
rule.json
的结构如下:
最前:适用的项目名字
然后是两个部分,分别存贮扫描目录与比较文件的规则
- 第一部分由下面几个内容组成
- 所忽略的目录与文件(这应该有两个配置,分布是目录与文件)
- 可以直接覆盖的目录与文件(这只针对轻量用户,不排除用户修改此部分的内容,因此需要必要检查。有关检查的部分请见-)
- 需要审查的目录与文件(这代表存在主题代码与用户内容共存的部分)
- 此博客的配置文件(需要特殊的代码解析配置)
- 其他文件默认忽略,但是会爆出警告,代表未检查的忽略,是否添加进忽略列表?
- 第二部分将操作第一部分中从 “需要审查的目录与文件” 中获取的文件目录
第二部分不分成小部分,使用下面的格式定义:
"第二部分": [
{
"生效的目录": "",
"生效的文件": "",
"操作的函数": "",
"函数来源": ""
},
{
"生效的目录": "",
"生效的文件": "",
"操作的函数": "",
"函数来源": ""
},
]
这代表可以为不同的文件赋予不同的操作。
下面是一个例子:
{
"project_name": "Astro",
"rules": {
"scan_rules": {
"ignore_directories": [
"node_modules",
"dist",
"coverage",
"logs"
],
"ignore_files": [
".DS_Store",
"Thumbs.db",
"*.tmp",
"*.log"
],
"overwrite_directories": [
"public",
"assets"
],
"overwrite_files": [
"config.default.json",
"style.default.css"
],
"review_directories": [
"src/components",
"src/pages"
],
"review_files": [
"analysis.cpp",
"theme.config.json"
],
"config_files": [
"astro.config.js",
"tailwind.config.js"
],
"untracked_warning": true
},
"operation_rules": [
{
"active_directory": "src/components",
"active_file": "analysis.cpp",
"operation_function": "mergeAnalysis",
"function_source": "local"
},
{
"active_directory": "src/pages",
"active_file": "index.astro",
"operation_function": "reviewContent",
"function_source": "local"
},
{
"active_directory": "config",
"active_file": "theme.config.json",
"operation_function": "parseThemeConfig",
"function_source": "local"
}
]
}
}
project_name
: 项目的名称,这里默认填入“Astro 更新程序
”。scan_rules
:ignore_directories
: 忽略的目录列表。ignore_files
: 忽略的文件列表。overwrite_directories
: 可以直接覆盖的目录列表。overwrite_files
: 可以直接覆盖的文件列表。review_directories
: 需要审查的目录列表。review_files
: 需要审查的文件列表。config_files
: 需要特殊解析的配置文件列表。untracked_warning
: 为未跟踪的文件提供警告。
operation_rules
: 操作规则,应用于需要审查的目录与文件。active_directory
: 生效的目录。active_file
: 生效的文件。operation_function
: 进行操作的函数名称。function_source
: 该函数的来源。
你可以根据实际的项目目录结构和需求来调整这些规则配置。
🚧 此文档正在施工中 🚧