Skip to content

Commit

Permalink
Merge branch 'halo-dev:main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
qksuki authored Dec 6, 2024
2 parents 55c56bf + ccde5aa commit 51932d8
Show file tree
Hide file tree
Showing 28 changed files with 120 additions and 90 deletions.
37 changes: 37 additions & 0 deletions docs/developer-guide/plugin/basics/server/object-management.md
Original file line number Diff line number Diff line change
Expand Up @@ -221,3 +221,40 @@ public void stop() {
`transformDeferred` 的作用是将 Mono 传入你提供的变换器中,返回一个经过变换的新 Mono。由于 RateLimiterOperator 是基于 Publisher 的装饰器(decorator),它会监视这个 Mono 的订阅和执行情况,从而对整个 Mono 的操作链进行限流。

换句话说,因为 `RateLimiterOperator` 装饰了这个 Mono,所以任何接在 `transformDeferred()` 之后的操作符都会受到限流的影响,直到整个流结束。

### SystemInfoGetter

用于获取站点基本信息的 Bean,它是 `Supplier<Mono<SystemInfo>>` 的子类,仅有一个 `get` 方法。

> 此为 `2.20.11` 版本新增的 Bean 因此需要 Halo 2.20.11 及以上版本才可使用。

可以获取到的数据示例如下:

```json
{
"title" : "guqing's blog",
"subtitle" : "副标题",
"logo" : "/upload/myavatar.png",
"favicon" : "/upload/myavatar.png",
"url" : "http://localhost:8090",
"version" : {
"majorVersion" : 2,
"minorVersion" : 20,
"normalVersion" : "2.20.10",
"preRelease" : true,
"publicApiStable" : true,
"patchVersion" : 10,
"preReleaseVersion" : "SNAPSHOT",
"buildMetadata" : "",
"stable" : false
},
"seo" : {
"blockSpiders" : false,
"keywords" : "keyword1,keyword2",
"description" : "站点描述"
},
"locale" : "zh_CN_#Hans",
"timeZone" : "Asia/Shanghai",
"activatedThemeName" : "theme-earth"
}
```
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,8 @@ export interface ListedPost {
};
status: {
permalink: string; // 分类的永久链接
postCount: number; // 分类下的文章总数
visiblePostCount: number; // 分类下可见的文章总数
};
postCount: number; // 分类下的文章总数
}>;
contributors: Array<{ // 文章的贡献者集合
avatar: string; // 贡献者头像
Expand Down Expand Up @@ -110,9 +109,8 @@ export interface ListedPost {
};
status: {
permalink: string; // 标签的永久链接
postCount: number; // 标签下的文章总数
visiblePostCount: number; // 标签下可见的文章总数
};
postCount: number; // 标签下的文章总数
}>;
}

Expand Down
14 changes: 8 additions & 6 deletions docs/developer-guide/plugin/interaction/dependency.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,34 +32,36 @@ Halo 插件系统支持在 `plugin.yaml` 文件中通过 `pluginDependencies`
# 省略其他字段
spec:
pluginDependencies:
- pluginB@1.0.0
pluginB: 1.0.0
```
- **版本范围依赖**:如果插件对版本有一定的要求,可以指定版本范围。通过 `>=`(大于等于)和 `<`(小于)等符号,可以表示插件版本的区间。例如,`pluginA` 依赖于版本在 1.0.0 到 2.0.0 之间(不包括 2.0.0):

```yaml
spec:
pluginDependencies:
- pluginB@>=1.0.0 & <2.0.0
pluginB: >=1.0.0 & <2.0.0
```

- **可选依赖**:某些情况下,插件的依赖是可选的,即使依赖未被满足,插件仍然可以加载。通过在插件名称后加上 `?` 来声明可选依赖。例如,`pluginA` 可选依赖于 `pluginB` 的 1.0 版本:

```yaml
spec:
pluginDependencies:
- pluginB?@1.0
pluginB?: 1.0
```

- **多个依赖声明**:一个插件可能依赖多个插件,所有依赖可以在同一列表中列出,使用逗号分隔。例如,`pluginA` 依赖于 `pluginB` 的 1.0.0 到 2.0.0 版本区间,以及 `pluginC` 的 0.0.1 到 0.1.0 版本区间:

```yaml
spec:
pluginDependencies:
- pluginB@>=1.0.0 & <=2.0.0
- pluginC@>=0.0.1 & <=0.1.0
pluginB: >=1.0.0 & <=2.0.0
pluginC: >=0.0.1 & <=0.1.0
```

> **可选依赖** 功能需要在 Halo 2.20.11 及以上版本才可以使用。

### 依赖加载逻辑

在 Halo 插件系统中,插件的依赖关系会影响其加载顺序和运行时行为。具体来说,插件的加载只有在其所有强制依赖都得到满足时才会进行。
Expand All @@ -76,7 +78,7 @@ Halo 插件系统支持在 `plugin.yaml` 文件中通过 `pluginDependencies`

### 依赖声明注意事项

- **版本管理**:在声明版本时,推荐使用明确的版本号或版本范围,避免使用过于宽松的版本要求(如 `pluginB@*`),以确保插件在不同环境中一致性地运行。
- **版本管理**:在声明版本时,推荐使用明确的版本号或版本范围,避免使用过于宽松的版本要求(如 `pluginB: *`),以确保插件在不同环境中一致性地运行。
- **依赖冲突**:多个插件可能依赖于不同版本的同一插件,这可能导致版本冲突。为避免这种情况,开发者应该尽量保持插件版本的兼容性,必要时在 `plugin.yaml` 文件中使用具体的版本号范围进行严格控制。
- **插件间的依赖层级**:插件可能依赖于其他插件,而这些插件又可能依赖于其他插件。建议开发者清晰地管理依赖链,避免过于复杂的依赖层级。合理规划插件之间的依赖关系有助于减少维护难度和潜在的运行时问题。

Expand Down
4 changes: 1 addition & 3 deletions docs/developer-guide/theme/vo/_CategoryTreeVo.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,9 @@
},
"status": {
"permalink": "string", // 固定链接
"postCount": 0, // 文章数
"visiblePostCount": 0 // 已发布文章数
},
"children": "List<#CategoryTreeVo>", // 下级分类,CategoryTreeVo 的集合
"parentName": "string",
"postCount": 0
"postCount": 0 // 文章数量
}
```
4 changes: 1 addition & 3 deletions docs/developer-guide/theme/vo/_CategoryVo.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,7 @@
},
"status": {
"permalink": "string", // 固定链接
"postCount": 0, // 文章数
"visiblePostCount": 0 // 已发布文章数
},
"postCount": 0
"postCount": 0 // 文章数量
}
```
4 changes: 1 addition & 3 deletions docs/developer-guide/theme/vo/_TagVo.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,7 @@
},
"status": {
"permalink": "string", // 固定链接
"visiblePostCount": 0, // 已发布文章数
"postCount": 0 // 文章数
},
"postCount": 0
"postCount": 0 // 文章数量
}
```
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,8 @@ export interface ListedPost {
};
status: {
permalink: string; // 分类的永久链接
postCount: number; // 分类下的文章总数
visiblePostCount: number; // 分类下可见的文章总数
};
postCount: number; // 分类下的文章总数
}>;
contributors: Array<{ // 文章的贡献者集合
avatar: string; // 贡献者头像
Expand Down Expand Up @@ -110,9 +109,8 @@ export interface ListedPost {
};
status: {
permalink: string; // 标签的永久链接
postCount: number; // 标签下的文章总数
visiblePostCount: number; // 标签下可见的文章总数
};
postCount: number; // 标签下的文章总数
}>;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,9 @@
},
"status": {
"permalink": "string", // 固定链接
"postCount": 0, // 文章数
"visiblePostCount": 0 // 已发布文章数
},
"children": "List<#CategoryTreeVo>", // 下级分类,CategoryTreeVo 的集合
"parentName": "string",
"postCount": 0
"postCount": 0 // 文章数量
}
```
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,7 @@
},
"status": {
"permalink": "string", // 固定链接
"postCount": 0, // 文章数
"visiblePostCount": 0 // 已发布文章数
},
"postCount": 0
"postCount": 0 // 文章数量
}
```
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,7 @@
},
"status": {
"permalink": "string", // 固定链接
"visiblePostCount": 0, // 已发布文章数
"postCount": 0 // 文章数
},
"postCount": 0
"postCount": 0 // 文章数量
}
```
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,8 @@ export interface ListedPost {
};
status: {
permalink: string; // 分类的永久链接
postCount: number; // 分类下的文章总数
visiblePostCount: number; // 分类下可见的文章总数
};
postCount: number; // 分类下的文章总数
}>;
contributors: Array<{ // 文章的贡献者集合
avatar: string; // 贡献者头像
Expand Down Expand Up @@ -110,9 +109,8 @@ export interface ListedPost {
};
status: {
permalink: string; // 标签的永久链接
postCount: number; // 标签下的文章总数
visiblePostCount: number; // 标签下可见的文章总数
};
postCount: number; // 标签下的文章总数
}>;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,9 @@
},
"status": {
"permalink": "string", // 固定链接
"postCount": 0, // 文章数
"visiblePostCount": 0 // 已发布文章数
},
"children": "List<#CategoryTreeVo>", // 下级分类,CategoryTreeVo 的集合
"parentName": "string",
"postCount": 0
"postCount": 0 // 文章数量
}
```
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,7 @@
},
"status": {
"permalink": "string", // 固定链接
"postCount": 0, // 文章数
"visiblePostCount": 0 // 已发布文章数
},
"postCount": 0
"postCount": 0 // 文章数量
}
```
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,7 @@
},
"status": {
"permalink": "string", // 固定链接
"visiblePostCount": 0, // 已发布文章数
"postCount": 0 // 文章数
},
"postCount": 0
"postCount": 0 // 文章数量
}
```
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,8 @@ export interface ListedPost {
};
status: {
permalink: string; // 分类的永久链接
postCount: number; // 分类下的文章总数
visiblePostCount: number; // 分类下可见的文章总数
};
postCount: number; // 分类下的文章总数
}>;
contributors: Array<{ // 文章的贡献者集合
avatar: string; // 贡献者头像
Expand Down Expand Up @@ -110,9 +109,8 @@ export interface ListedPost {
};
status: {
permalink: string; // 标签的永久链接
postCount: number; // 标签下的文章总数
visiblePostCount: number; // 标签下可见的文章总数
};
postCount: number; // 标签下的文章总数
}>;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,9 @@
},
"status": {
"permalink": "string", // 固定链接
"postCount": 0, // 文章数
"visiblePostCount": 0 // 已发布文章数
},
"children": "List<#CategoryTreeVo>", // 下级分类,CategoryTreeVo 的集合
"parentName": "string",
"postCount": 0
"postCount": 0 // 文章数量
}
```
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,7 @@
},
"status": {
"permalink": "string", // 固定链接
"postCount": 0, // 文章数
"visiblePostCount": 0 // 已发布文章数
},
"postCount": 0
"postCount": 0 // 文章数量
}
```
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,7 @@
},
"status": {
"permalink": "string", // 固定链接
"visiblePostCount": 0, // 已发布文章数
"postCount": 0 // 文章数
},
"postCount": 0
"postCount": 0 // 文章数量
}
```
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,8 @@ export interface ListedPost {
};
status: {
permalink: string; // 分类的永久链接
postCount: number; // 分类下的文章总数
visiblePostCount: number; // 分类下可见的文章总数
};
postCount: number; // 分类下的文章总数
}>;
contributors: Array<{ // 文章的贡献者集合
avatar: string; // 贡献者头像
Expand Down Expand Up @@ -110,9 +109,8 @@ export interface ListedPost {
};
status: {
permalink: string; // 标签的永久链接
postCount: number; // 标签下的文章总数
visiblePostCount: number; // 标签下可见的文章总数
};
postCount: number; // 标签下的文章总数
}>;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,9 @@
},
"status": {
"permalink": "string", // 固定链接
"postCount": 0, // 文章数
"visiblePostCount": 0 // 已发布文章数
},
"children": "List<#CategoryTreeVo>", // 下级分类,CategoryTreeVo 的集合
"parentName": "string",
"postCount": 0
"postCount": 0 // 文章数量
}
```
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,7 @@
},
"status": {
"permalink": "string", // 固定链接
"postCount": 0, // 文章数
"visiblePostCount": 0 // 已发布文章数
},
"postCount": 0
"postCount": 0 // 文章数量
}
```
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,7 @@
},
"status": {
"permalink": "string", // 固定链接
"visiblePostCount": 0, // 已发布文章数
"postCount": 0 // 文章数
},
"postCount": 0
"postCount": 0 // 文章数量
}
```
Loading

0 comments on commit 51932d8

Please sign in to comment.