docs: refine the field descriptions of the theme VO (#133)

完善主题开发文档关于 VO 字段的描述。

/kind documentation

Fixes https://github.com/halo-dev/docs/issues/122

```release-note
None
```
JohnNiang-patch-1
Ryan Wang 2 years ago committed by GitHub
parent 2ed9998d8a
commit 36a4db6796
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -2,6 +2,7 @@
"MD033": false, "MD033": false,
"MD024": false, "MD024": false,
"MD029": false, "MD029": false,
"MD041": false,
"MD010": { "MD010": {
"code_blocks": true, "code_blocks": true,
"spaces_per_tab": 4 "spaces_per_tab": 4

@ -3,6 +3,9 @@ title: 文章分类
description: 文章分类 - CategoryFinder description: 文章分类 - CategoryFinder
--- ---
import CategoryVo from "../vo/CategoryVo.md"
import CategoryTreeVo from "../vo/CategoryTreeVo.md"
## getByName(name) ## getByName(name)
```js ```js
@ -157,51 +160,21 @@ List<[#CategoryTreeVo](#categorytreevo)>
### CategoryVo ### CategoryVo
```json title="CategoryVo" <CategoryVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"description": "string",
"cover": "string",
"template": "string",
"priority": 0,
"children": [
"string"
]
},
"status": {
"permalink": "string",
"postCount": 0,
"visiblePostCount": 0
},
"postCount": 0
}
```
### ListResult<CategoryVo\> ### ListResult<CategoryVo\>
```json title="ListResult<CategoryVo>" ```json title="ListResult<CategoryVo>"
{ {
"page": 0, "page": 0, // 当前页码
"size": 0, "size": 0, // 每页条数
"total": 0, "total": 0, // 总条数
"items": "List<#CategoryVo>", "items": "List<#CategoryVo>", // 分类列表数据
"first": true, "first": true, // 是否为第一页
"last": true, "last": true, // 是否为最后一页
"hasNext": true, "hasNext": true, // 是否有下一页
"hasPrevious": true, "hasPrevious": true, // 是否有上一页
"totalPages": 0 "totalPages": 0 // 总页数
} }
``` ```
@ -209,38 +182,6 @@ List<[#CategoryTreeVo](#categorytreevo)>
### CategoryTreeVo ### CategoryTreeVo
```json title="CategoryTreeVo" <CategoryTreeVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T14:18:49.230Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"description": "string",
"cover": "string",
"template": "string",
"priority": 0,
"children": [
"string"
]
},
"status": {
"permalink": "string",
"postCount": 0,
"visiblePostCount": 0
},
"children": "List<#CategoryTreeVo>",
"parentName": "string",
"postCount": 0
}
```
- [#CategoryTreeVo](#categorytreevo) - [#CategoryTreeVo](#categorytreevo)

@ -3,6 +3,9 @@ title: 评论
description: 评论 - CommentFinder description: 评论 - CommentFinder
--- ---
import CommentVo from "../vo/CommentVo.md"
import ReplyVo from "../vo/ReplyVo.md"
## getByName(name) ## getByName(name)
```js ```js
@ -98,73 +101,21 @@ commentFinder.listReply(commentName,page,size)
### CommentVo ### CommentVo
```json title="CommentVo" <CommentVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T12:16:19.788Z"
},
"spec": {
"raw": "string",
"content": "string",
"owner": {
"kind": "string",
"name": "string",
"displayName": "string",
"annotations": {
"additionalProp1": "string"
}
},
"userAgent": "string",
"ipAddress": "string",
"priority": 0,
"top": false,
"allowNotification": true,
"approved": false,
"hidden": false,
"subjectRef": {
"group": "string",
"version": "string",
"kind": "string",
"name": "string"
},
"lastReadTime": "2022-11-20T12:16:19.788Z"
},
"status": {
"lastReplyTime": "2022-11-20T12:16:19.788Z",
"replyCount": 0,
"unreadReplyCount": 0,
"hasNewReply": true
},
"owner": {
"kind": "string",
"name": "string",
"displayName": "string",
"avatar": "string",
"email": "string"
}
}
```
### ListResult<CommentVo\> ### ListResult<CommentVo\>
```json title="ListResult<CommentVo>" ```json title="ListResult<CommentVo>"
{ {
"page": 0, "page": 0, // 当前页码
"size": 0, "size": 0, // 每页条数
"total": 0, "total": 0, // 总条数
"items": "List<#CommentVo>", "items": "List<#CommentVo>", // 评论列表数据
"first": true, "first": true, // 是否为第一页
"last": true, "last": true, // 是否为最后一页
"hasNext": true, "hasNext": true, // 是否有下一页
"hasPrevious": true, "hasPrevious": true, // 是否有上一页
"totalPages": 0 "totalPages": 0 // 总页数
} }
``` ```
@ -172,62 +123,21 @@ commentFinder.listReply(commentName,page,size)
### ReplyVo ### ReplyVo
```json title="ReplyVo" <ReplyVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T12:25:32.357Z"
},
"spec": {
"raw": "string",
"content": "string",
"owner": {
"kind": "string",
"name": "string",
"displayName": "string",
"annotations": {
"additionalProp1": "string"
}
},
"userAgent": "string",
"ipAddress": "string",
"priority": 0,
"top": false,
"allowNotification": true,
"approved": false,
"hidden": false,
"commentName": "string",
"quoteReply": "string"
},
"owner": {
"kind": "string",
"name": "string",
"displayName": "string",
"avatar": "string",
"email": "string"
}
}
```
### ListResult<ReplyVo\> ### ListResult<ReplyVo\>
```json title="ListResult<ReplyVo>" ```json title="ListResult<ReplyVo>"
{ {
"page": 0, "page": 0, // 当前页码
"size": 0, "size": 0, // 每页条数
"total": 0, "total": 0, // 总条数
"items": "List<#ReplyVo>", "items": "List<#ReplyVo>", // 回复列表数据
"first": true, "first": true, // 是否为第一页
"last": true, "last": true, // 是否为最后一页
"hasNext": true, "hasNext": true, // 是否有下一页
"hasPrevious": true, "hasPrevious": true, // 是否有上一页
"totalPages": 0 "totalPages": 0 // 总页数
} }
``` ```

@ -3,6 +3,8 @@ title: 作者
description: 作者 - ContributorFinder description: 作者 - ContributorFinder
--- ---
import Contributor from "../vo/Contributor.md"
## getContributor(name) ## getContributor(name)
```js ```js
@ -59,11 +61,4 @@ List<[#Contributor](#contributor)>
### Contributor ### Contributor
```json title="Contributor" <Contributor />
{
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
}
```

@ -3,6 +3,9 @@ title: 导航菜单
description: 导航菜单 - MenuFinder description: 导航菜单 - MenuFinder
--- ---
import MenuItemVo from "../vo/MenuItemVo.md"
import MenuVo from "../vo/MenuVo.md"
## getByName(name) ## getByName(name)
```js ```js
@ -67,79 +70,8 @@ menuFinder.getPrimary()
### MenuVo ### MenuVo
```json title="MenuVo" <MenuVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T14:44:58.984Z",
},
"spec": {
"displayName": "string",
"menuItems": [
"string"
]
},
"menuItems": "List<#MenuItemVo>"
}
```
### MenuItemVo ### MenuItemVo
```json title="MenuItemVo" <MenuItemVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T14:44:58.984Z",
},
"spec": {
"displayName": "string",
"href": "string",
"priority": 0,
"children": [
"string"
],
"categoryRef": {
"group": "string",
"version": "string",
"kind": "string",
"name": "string"
},
"tagRef": {
"group": "string",
"version": "string",
"kind": "string",
"name": "string"
},
"postRef": {
"group": "string",
"version": "string",
"kind": "string",
"name": "string"
},
"singlePageRef": {
"group": "string",
"version": "string",
"kind": "string",
"name": "string"
}
},
"status": {
"displayName": "string",
"href": "string"
},
"children": "List<#MenuItemVo>",
"parentName": "string",
}
```

@ -3,10 +3,17 @@ title: 文章
description: 文章 - PostFinder description: 文章 - PostFinder
--- ---
import CategoryVo from "../vo/CategoryVo.md";
import TagVo from "../vo/TagVo.md";
import PostVo from "../vo/PostVo.md";
import ContentVo from "../vo/ContentVo.md"
import Contributor from "../vo/Contributor.md"
import ListedPostVo from "../vo/ListedPostVo.md"
## getByName(postName) ## getByName(postName)
```js ```js
postFinder.getByName(postName) postFinder.getByName(postName);
``` ```
### 描述 ### 描述
@ -32,7 +39,7 @@ postFinder.getByName(postName)
## content(postName) ## content(postName)
```js ```js
postFinder.content(postName) postFinder.content(postName);
``` ```
### 描述 ### 描述
@ -58,7 +65,7 @@ postFinder.content(postName)
## cursor(postName) ## cursor(postName)
```js ```js
postFinder.cursor(postName) postFinder.cursor(postName);
``` ```
### 描述 ### 描述
@ -76,9 +83,7 @@ postFinder.cursor(postName)
### 示例 ### 示例
```html title="/templates/post.html" ```html title="/templates/post.html"
<div <div th:with="postCursor = ${postFinder.cursor(post.metadata.name)}">
th:with="postCursor = ${postFinder.cursor(post.metadata.name)}"
>
<a <a
th:if="${postCursor.hasPrevious()}" th:if="${postCursor.hasPrevious()}"
th:href="@{${postCursor.previous.status.permalink}}" th:href="@{${postCursor.previous.status.permalink}}"
@ -97,7 +102,7 @@ postFinder.cursor(postName)
## listAll() ## listAll()
```js ```js
postFinder.listAll() postFinder.listAll();
``` ```
### 描述 ### 描述
@ -125,7 +130,7 @@ List<[#ListedPostVo](#listedpostvo)>
## list(page,size) ## list(page,size)
```js ```js
postFinder.list(page,size) postFinder.list(page, size);
``` ```
### 描述 ### 描述
@ -154,7 +159,7 @@ postFinder.list(page,size)
## listByCategory(page,size,categoryName) ## listByCategory(page,size,categoryName)
```js ```js
postFinder.listByCategory(page,size,categoryName) postFinder.listByCategory(page, size, categoryName);
``` ```
### 描述 ### 描述
@ -184,7 +189,7 @@ postFinder.listByCategory(page,size,categoryName)
## listByTag(page,size,tag) ## listByTag(page,size,tag)
```js ```js
postFinder.listByTag(page,size,tag) postFinder.listByTag(page, size, tag);
``` ```
### 描述 ### 描述
@ -214,7 +219,7 @@ postFinder.listByTag(page,size,tag)
## archives(page,size) ## archives(page,size)
```js ```js
postFinder.archives(page,size) postFinder.archives(page, size);
``` ```
### 描述 ### 描述
@ -239,9 +244,7 @@ postFinder.archives(page,size)
<ul> <ul>
<th:block th:each="month : ${archive.months}"> <th:block th:each="month : ${archive.months}">
<li th:each="post : ${month.posts}"> <li th:each="post : ${month.posts}">
<a <a th:href="@{${post.status.permalink}}" th:text="${post.spec.title}">
th:href="@{${post.status.permalink}}"
th:text="${post.spec.title}">
</a> </a>
</li> </li>
</th:block> </th:block>
@ -253,7 +256,7 @@ postFinder.archives(page,size)
## archives(page,size,year) ## archives(page,size,year)
```js ```js
postFinder.archives(page,size,year) postFinder.archives(page, size, year);
``` ```
### 描述 ### 描述
@ -264,7 +267,7 @@ postFinder.archives(page,size,year)
1. `page:int` - 分页页码,从 1 开始 1. `page:int` - 分页页码,从 1 开始
2. `size:int` - 分页条数 2. `size:int` - 分页条数
2. `year:string` - 年份 3. `year:string` - 年份
### 返回值 ### 返回值
@ -279,9 +282,7 @@ postFinder.archives(page,size,year)
<ul> <ul>
<th:block th:each="month : ${archive.months}"> <th:block th:each="month : ${archive.months}">
<li th:each="post : ${month.posts}"> <li th:each="post : ${month.posts}">
<a <a th:href="@{${post.status.permalink}}" th:text="${post.spec.title}">
th:href="@{${post.status.permalink}}"
th:text="${post.spec.title}">
</a> </a>
</li> </li>
</th:block> </th:block>
@ -293,7 +294,7 @@ postFinder.archives(page,size,year)
## archives(page,size,year,month) ## archives(page,size,year,month)
```js ```js
postFinder.archives(page,size,year,month) postFinder.archives(page, size, year, month);
``` ```
### 描述 ### 描述
@ -304,8 +305,8 @@ postFinder.archives(page,size,year,month)
1. `page:int` - 分页页码,从 1 开始 1. `page:int` - 分页页码,从 1 开始
2. `size:int` - 分页条数 2. `size:int` - 分页条数
2. `year:string` - 年份 3. `year:string` - 年份
2. `month:string` - 月份 4. `month:string` - 月份
### 返回值 ### 返回值
@ -320,9 +321,7 @@ postFinder.archives(page,size,year,month)
<ul> <ul>
<th:block th:each="month : ${archive.months}"> <th:block th:each="month : ${archive.months}">
<li th:each="post : ${month.posts}"> <li th:each="post : ${month.posts}">
<a <a th:href="@{${post.status.permalink}}" th:text="${post.spec.title}">
th:href="@{${post.status.permalink}}"
th:text="${post.spec.title}">
</a> </a>
</li> </li>
</th:block> </th:block>
@ -335,168 +334,36 @@ postFinder.archives(page,size,year,month)
### CategoryVo ### CategoryVo
```json title="CategoryVo" <CategoryVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"description": "string",
"cover": "string",
"template": "string",
"priority": 0,
"children": [
"string"
]
},
"status": {
"permalink": "string",
"postCount": 0,
"visiblePostCount": 0
},
"postCount": 0
}
```
### TagVo ### TagVo
```json title="TagVo" <TagVo />
{
"metadata": { ### Contributor
"name": "string",
"labels": { <Contributor />
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"color": "#F9fEB1",
"cover": "string"
},
"status": {
"permalink": "string",
"visiblePostCount": 0,
"postCount": 0
},
"postCount": 0
}
```
### PostVo ### PostVo
```json title="PostVo" <PostVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T12:45:43.888Z",
},
"spec": {
"title": "string",
"slug": "string",
"releaseSnapshot": "string",
"headSnapshot": "string",
"baseSnapshot": "string",
"owner": "string",
"template": "string",
"cover": "string",
"deleted": false,
"publish": false,
"publishTime": "2022-11-20T12:45:43.888Z",
"pinned": false,
"allowComment": true,
"visible": "PUBLIC",
"priority": 0,
"excerpt": {
"autoGenerate": true,
"raw": "string"
},
"categories": [
"string"
],
"tags": [
"string"
],
"htmlMetas": [
{
"additionalProp1": "string"
}
]
},
"status": {
"permalink": "string",
"excerpt": "string",
"commentsCount": 0,
"contributors": [
"string"
]
},
"categories": "List<#CategoryVo>",
"tags": "List<#TagVo>",
"contributors": [
{
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
}
],
"owner": {
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
},
"stats": {
"visit": 0,
"upvote": 0,
"comment": 0
},
"content": {
"raw": "string",
"content": "string"
}
}
```
- [#CategoryVo](#categoryvo) - [#CategoryVo](#categoryvo)
- [#TagVo](#tagvo) - [#TagVo](#tagvo)
- [#Contributor](#contributor)
- [#ContentVo](#contentvo)
### ContentVo ### ContentVo
```json title="ContentVo" <ContentVo />
{
"raw": "string",
"content": "string"
}
```
### NavigationPostVo ### NavigationPostVo
```json title="NavigationPostVo" ```json title="NavigationPostVo"
{ {
"previous": "#PostVo", "previous": "#PostVo", // 上一篇文章
"current": "#PostVo", "current": "#PostVo", // 当前文章
"next": "#PostVo" "next": "#PostVo" // 下一篇文章
} }
``` ```
@ -504,99 +371,25 @@ postFinder.archives(page,size,year,month)
### ListedPostVo ### ListedPostVo
```json title="ListedPostVo" <ListedPostVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.505Z",
},
"spec": {
"title": "string",
"slug": "string",
"releaseSnapshot": "string",
"headSnapshot": "string",
"baseSnapshot": "string",
"owner": "string",
"template": "string",
"cover": "string",
"deleted": false,
"publish": false,
"publishTime": "2022-11-20T13:06:38.505Z",
"pinned": false,
"allowComment": true,
"visible": "PUBLIC",
"priority": 0,
"excerpt": {
"autoGenerate": true,
"raw": "string"
},
"categories": [
"string"
],
"tags": [
"string"
],
"htmlMetas": [
{
"additionalProp1": "string"
}
]
},
"status": {
"permalink": "string",
"excerpt": "string",
"inProgress": true,
"commentsCount": 0,
"contributors": [
"string"
]
},
"categories": "List<#CategoryVo>",
"tags": "List<#TagVo>",
"contributors": [
{
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
}
],
"owner": {
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
},
"stats": {
"visit": 0,
"upvote": 0,
"comment": 0
}
}
```
- [#CategoryVo](#categoryvo) - [#CategoryVo](#categoryvo)
- [#TagVo](#tagvo) - [#TagVo](#tagvo)
- [#Contributor](#contributor)
### ListResult<ListedPostVo\> ### ListResult<ListedPostVo\>
```json title="ListResult<ListedPostVo>" ```json title="ListResult<ListedPostVo>"
{ {
"page": 0, "page": 0, // 当前页码
"size": 0, "size": 0, // 每页条数
"total": 0, "total": 0, // 总条数
"items": "List<#ListedPostVo>", "items": "List<#ListedPostVo>", // 文章列表数据
"first": true, "first": true, // 是否为第一页
"last": true, "last": true, // 是否为最后一页
"hasNext": true, "hasNext": true, // 是否有下一页
"hasPrevious": true, "hasPrevious": true, // 是否有上一页
"totalPages": 0 "totalPages": 0 // 总页数
} }
``` ```
@ -622,15 +415,15 @@ postFinder.archives(page,size,year,month)
```json title="ListResult<PostArchiveVo>" ```json title="ListResult<PostArchiveVo>"
{ {
"page": 0, "page": 0, // 当前页码
"size": 0, "size": 0, // 每页条数
"total": 0, "total": 0, // 总条数
"items": "List<#PostArchiveVo>", "items": "List<#PostArchiveVo>", // 文章归档数据
"first": true, "first": true, // 是否为第一页
"last": true, "last": true, // 是否为最后一页
"hasNext": true, "hasNext": true, // 是否有下一页
"hasPrevious": true, "hasPrevious": true, // 是否有上一页
"totalPages": 0 "totalPages": 0 // 总页数
} }
``` ```

@ -3,6 +3,11 @@ title: 独立页面
description: 独立页面 - SinglePageFinder description: 独立页面 - SinglePageFinder
--- ---
import SinglePageVo from "../vo/SinglePageVo.md"
import ListedSinglePageVo from "../vo/ListedSinglePageVo.md"
import Contributor from "../vo/Contributor.md"
import ContentVo from "../vo/ContentVo.md"
## getByName(pageName) ## getByName(pageName)
```js ```js
@ -88,163 +93,30 @@ singlePageFinder.list(page,size)
### SinglePageVo ### SinglePageVo
```json title="SinglePageVo" <SinglePageVo />
{
"metadata": { - [#Contributor](#contributor)
"name": "string", - [#ContentVo](#contentvo)
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T14:29:44.601Z",
},
"spec": {
"title": "string",
"slug": "string",
"releaseSnapshot": "string",
"headSnapshot": "string",
"baseSnapshot": "string",
"owner": "string",
"template": "string",
"cover": "string",
"deleted": false,
"publish": false,
"publishTime": "2022-11-20T14:29:44.601Z",
"pinned": false,
"allowComment": true,
"visible": "PUBLIC",
"priority": 0,
"excerpt": {
"autoGenerate": true,
"raw": "string"
},
"htmlMetas": [
{
"additionalProp1": "string"
}
]
},
"status": {
"permalink": "string",
"excerpt": "string",
"inProgress": true,
"commentsCount": 0,
"contributors": [
"string"
]
},
"stats": {
"visit": 0,
"upvote": 0,
"comment": 0
},
"contributors": [
{
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
}
],
"owner": {
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
},
"content": {
"raw": "string",
"content": "string"
}
}
```
### ListedSinglePageVo ### ListedSinglePageVo
```json title="ListedSinglePageVo" - [#Contributor](#contributor)
{
"metadata": { <ListedSinglePageVo />
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T14:31:00.876Z"
},
"spec": {
"title": "string",
"slug": "string",
"releaseSnapshot": "string",
"headSnapshot": "string",
"baseSnapshot": "string",
"owner": "string",
"template": "string",
"cover": "string",
"deleted": false,
"publish": false,
"publishTime": "2022-11-20T14:31:00.876Z",
"pinned": false,
"allowComment": true,
"visible": "PUBLIC",
"priority": 0,
"excerpt": {
"autoGenerate": true,
"raw": "string"
},
"htmlMetas": [
{
"additionalProp1": "string"
}
]
},
"status": {
"permalink": "string",
"excerpt": "string",
"inProgress": true,
"commentsCount": 0,
"contributors": [
"string"
]
},
"stats": {
"visit": 0,
"upvote": 0,
"comment": 0
},
"contributors": [
{
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
}
],
"owner": {
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
}
}
```
### ListResult<ListedSinglePageVo\> ### ListResult<ListedSinglePageVo\>
```json title="ListResult<ListedSinglePageVo>" ```json title="ListResult<ListedSinglePageVo>"
{ {
"page": 0, "page": 0, // 当前页码
"size": 0, "size": 0, // 每页条数
"total": 0, "total": 0, // 总条数
"items": "List<#ListedSinglePageVo>", "items": "List<#ListedSinglePageVo>", // 自定义页面列表数据
"first": true, "first": true, // 是否为第一页
"last": true, "last": true, // 是否为最后一页
"hasNext": true, "hasNext": true, // 是否有下一页
"hasPrevious": true, "hasPrevious": true, // 是否有上一页
"totalPages": 0 "totalPages": 0 // 总页数
} }
``` ```
@ -252,9 +124,8 @@ singlePageFinder.list(page,size)
### ContentVo ### ContentVo
```json title="ContentVo" <ContentVo />
{
"raw": "string", ### Contributor
"content": "string"
} <Contributor />
```

@ -36,10 +36,10 @@ siteStatsFinder.getStats()
```json title="SiteStatsVo" ```json title="SiteStatsVo"
{ {
"visit": 0, "visit": 0, // 访问数量
"upvote": 0, "upvote": 0, // 点赞数量
"comment": 0, "comment": 0, // 评论数量
"post": 0, "post": 0, // 文章数量
"category": 0 "category": 0 // 分类数量
} }
``` ```

@ -3,6 +3,8 @@ title: 文章标签
description: 文章标签 - TagFinder description: 文章标签 - TagFinder
--- ---
import TagVo from "../vo/TagVo.md"
## getByName(name) ## getByName(name)
```js ```js
@ -116,46 +118,21 @@ List<[#TagVo](#tagvo)>
### TagVo ### TagVo
```json title="TagVo" <TagVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"color": "#F9fEB1",
"cover": "string"
},
"status": {
"permalink": "string",
"visiblePostCount": 0,
"postCount": 0
},
"postCount": 0
}
```
### ListResult<TagVo\> ### ListResult<TagVo\>
```json title="ListResult<TagVo>" ```json title="ListResult<TagVo>"
{ {
"page": 0, "page": 0, // 当前页码
"size": 0, "size": 0, // 每页条数
"total": 0, "total": 0, // 总条数
"items": "List<#TagVo>", "items": "List<#TagVo>", // 标签列表数据
"first": true, "first": true, // 是否为第一页
"last": true, "last": true, // 是否为最后一页
"hasNext": true, "hasNext": true, // 是否有下一页
"hasPrevious": true, "hasPrevious": true, // 是否有上一页
"totalPages": 0 "totalPages": 0 // 总页数
} }
``` ```

@ -64,29 +64,29 @@ themeFinder.getByName(themeName)
```json title="ThemeVo" ```json title="ThemeVo"
{ {
"metadata": { "metadata": {
"name": "string", "name": "string", // 唯一标识
"labels": { "labels": {
"additionalProp1": "string" "additionalProp1": "string"
}, },
"annotations": { "annotations": {
"additionalProp1": "string" "additionalProp1": "string"
}, },
"creationTimestamp": "2022-11-20T15:27:15.036Z", "creationTimestamp": "2022-11-20T15:27:15.036Z", // 创建时间
}, },
"spec": { "spec": {
"displayName": "string", "displayName": "string", // 显示名称
"author": { "author": {
"name": "string", "name": "string", // 作者名称
"website": "string" "website": "string" // 作者网站
}, },
"description": "string", "description": "string", // 描述
"logo": "string", "logo": "string", // Logo
"website": "string", "website": "string", // 网站
"repo": "string", "repo": "string", // 仓库地址
"version": "string", "version": "string", // 版本
"require": "string", "require": "string", // 依赖 Halo 的版本
"settingName": "string", "settingName": "string", // 表单定义的名称,即 Setting 资源的 metadata.name
"configMapName": "string", "configMapName": "string", // 设置项存储的名称,即 ConfigMap 资源的 metadata.name
"customTemplates": { "customTemplates": {
"post": [ "post": [
{ {

@ -3,6 +3,11 @@ title: 文章归档
description: archives.html - /archives description: archives.html - /archives
--- ---
import CategoryVo from "../vo/CategoryVo.md";
import TagVo from "../vo/TagVo.md";
import Contributor from "../vo/Contributor.md";
import ListedPostVo from "../vo/ListedPostVo.md";
## 路由信息 ## 路由信息
- 模板路径:`/templates/archives.html` - 模板路径:`/templates/archives.html`
@ -27,24 +32,18 @@ description: archives.html - /archives
<ul> <ul>
<th:block th:each="month : ${archive.months}"> <th:block th:each="month : ${archive.months}">
<li th:each="post : ${month.posts}"> <li th:each="post : ${month.posts}">
<a <a th:href="@{${post.status.permalink}}" th:text="${post.spec.title}">
th:href="@{${post.status.permalink}}"
th:text="${post.spec.title}">
</a> </a>
</li> </li>
</th:block> </th:block>
</ul> </ul>
</th:block> </th:block>
<div th:if="${archives.hasPrevious() || archives.hasNext()}"> <div th:if="${archives.hasPrevious() || archives.hasNext()}">
<a <a th:href="@{${archives.prevUrl}}">
th:href="@{${archives.prevUrl}}"
>
<span>上一页</span> <span>上一页</span>
</a> </a>
<span th:text="${archives.page} +' / '+ ${archives.total}"></span> <span th:text="${archives.page} +' / '+ ${archives.total}"></span>
<a <a th:href="@{${archives.nextUrl}}">
th:href="@{${archives.nextUrl}}"
>
<span>下一页</span> <span>下一页</span>
</a> </a>
</div> </div>
@ -54,158 +53,33 @@ description: archives.html - /archives
### CategoryVo ### CategoryVo
```json title="CategoryVo" <CategoryVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"description": "string",
"cover": "string",
"template": "string",
"priority": 0,
"children": [
"string"
]
},
"status": {
"permalink": "string",
"postCount": 0,
"visiblePostCount": 0
},
"postCount": 0
}
```
### TagVo ### TagVo
```json title="TagVo" <TagVo />
{
"metadata": { ### Contributor
"name": "string",
"labels": { <Contributor />
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"color": "#F9fEB1",
"cover": "string"
},
"status": {
"permalink": "string",
"visiblePostCount": 0,
"postCount": 0
},
"postCount": 0
}
```
### ListedPostVo ### ListedPostVo
```json title="ListedPostVo" <ListedPostVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.505Z",
},
"spec": {
"title": "string",
"slug": "string",
"releaseSnapshot": "string",
"headSnapshot": "string",
"baseSnapshot": "string",
"owner": "string",
"template": "string",
"cover": "string",
"deleted": false,
"publish": false,
"publishTime": "2022-11-20T13:06:38.505Z",
"pinned": false,
"allowComment": true,
"visible": "PUBLIC",
"priority": 0,
"excerpt": {
"autoGenerate": true,
"raw": "string"
},
"categories": [
"string"
],
"tags": [
"string"
],
"htmlMetas": [
{
"additionalProp1": "string"
}
]
},
"status": {
"permalink": "string",
"excerpt": "string",
"inProgress": true,
"commentsCount": 0,
"contributors": [
"string"
]
},
"categories": "List<#CategoryVo>",
"tags": "List<#TagVo>",
"contributors": [
{
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
}
],
"owner": {
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
},
"stats": {
"visit": 0,
"upvote": 0,
"comment": 0
}
}
```
- [#CategoryVo](#categoryvo) - [#CategoryVo](#categoryvo)
- [#TagVo](#tagvo) - [#TagVo](#tagvo)
- [#Contributor](#contributor)
### PostArchiveVo ### PostArchiveVo
```json title="PostArchiveVo" ```json title="PostArchiveVo"
{ {
"year": "string", "year": "string", // 年份
"months": [ "months": [ // 按月的文章集合
{ {
"month": "string", "month": "string", // 月份
"posts": "#ListedPostVo" "posts": "List<#ListedPostVo>" // 文章列表数据
} }
] ]
} }
@ -217,17 +91,17 @@ description: archives.html - /archives
```json title="UrlContextListResult<PostArchiveVo>" ```json title="UrlContextListResult<PostArchiveVo>"
{ {
"page": 0, "page": 0, // 当前页码
"size": 0, "size": 0, // 每页条数
"total": 0, "total": 0, // 总条数
"items": "List<#PostArchiveVo>", "items": "List<#PostArchiveVo>", // 文章归档数据
"first": true, "first": true, // 是否为第一页
"last": true, "last": true, // 是否为最后一页
"hasNext": true, "hasNext": true, // 是否有下一页
"hasPrevious": true, "hasPrevious": true, // 是否有上一页
"totalPages": 0, "totalPages": 0, // 总页数
"nextUrl": "string", "nextUrl": "string", // 下一页链接
"prevUrl": "string" "prevUrl": "string" // 上一页链接
} }
``` ```

@ -3,6 +3,8 @@ title: 文章分类集合
description: categories.html - /categories description: categories.html - /categories
--- ---
import CategoryTreeVo from "../vo/CategoryTreeVo.md"
## 路由信息 ## 路由信息
- 模板路径:`/templates/categories.html` - 模板路径:`/templates/categories.html`
@ -47,38 +49,6 @@ List<[#CategoryTreeVo](#categorytreevo)>
### CategoryTreeVo ### CategoryTreeVo
```json title="CategoryTreeVo" <CategoryTreeVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T14:18:49.230Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"description": "string",
"cover": "string",
"template": "string",
"priority": 0,
"children": [
"string"
]
},
"status": {
"permalink": "string",
"postCount": 0,
"visiblePostCount": 0
},
"children": "List<#CategoryTreeVo>",
"parentName": "string",
"postCount": 0
}
```
- [#CategoryTreeVo](#categorytreevo) - [#CategoryTreeVo](#categorytreevo)

@ -3,6 +3,11 @@ title: 分类归档
description: category.html - /categories/:slug description: category.html - /categories/:slug
--- ---
import CategoryVo from "../vo/CategoryVo.md"
import TagVo from "../vo/TagVo.md"
import Contributor from "../vo/Contributor.md";
import ListedPostVo from "../vo/ListedPostVo.md"
## 路由信息 ## 路由信息
- 模板路径:`/templates/category.html` - 模板路径:`/templates/category.html`
@ -61,164 +66,39 @@ description: category.html - /categories/:slug
### CategoryVo ### CategoryVo
```json title="CategoryVo" <CategoryVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"description": "string",
"cover": "string",
"template": "string",
"priority": 0,
"children": [
"string"
]
},
"status": {
"permalink": "string",
"postCount": 0,
"visiblePostCount": 0
},
"postCount": 0
}
```
### TagVo ### TagVo
```json title="TagVo" <TagVo />
{
"metadata": { ### Contributor
"name": "string",
"labels": { <Contributor />
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"color": "#F9fEB1",
"cover": "string"
},
"status": {
"permalink": "string",
"visiblePostCount": 0,
"postCount": 0
},
"postCount": 0
}
```
### ListedPostVo ### ListedPostVo
```json title="ListedPostVo" <ListedPostVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.505Z",
},
"spec": {
"title": "string",
"slug": "string",
"releaseSnapshot": "string",
"headSnapshot": "string",
"baseSnapshot": "string",
"owner": "string",
"template": "string",
"cover": "string",
"deleted": false,
"publish": false,
"publishTime": "2022-11-20T13:06:38.505Z",
"pinned": false,
"allowComment": true,
"visible": "PUBLIC",
"priority": 0,
"excerpt": {
"autoGenerate": true,
"raw": "string"
},
"categories": [
"string"
],
"tags": [
"string"
],
"htmlMetas": [
{
"additionalProp1": "string"
}
]
},
"status": {
"permalink": "string",
"excerpt": "string",
"inProgress": true,
"commentsCount": 0,
"contributors": [
"string"
]
},
"categories": "List<#CategoryVo>",
"tags": "List<#TagVo>",
"contributors": [
{
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
}
],
"owner": {
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
},
"stats": {
"visit": 0,
"upvote": 0,
"comment": 0
}
}
```
- [#CategoryVo](#categoryvo) - [#CategoryVo](#categoryvo)
- [#TagVo](#tagvo) - [#TagVo](#tagvo)
- [#Contributor](#contributor)
### UrlContextListResult<ListedPostVo\> ### UrlContextListResult<ListedPostVo\>
```json title="UrlContextListResult<ListedPostVo>" ```json title="UrlContextListResult<ListedPostVo>"
{ {
"page": 0, "page": 0, // 当前页码
"size": 0, "size": 0, // 每页条数
"total": 0, "total": 0, // 总条数
"items": "List<#ListedPostVo>", "items": "List<#ListedPostVo>", // 文章列表数据
"first": true, "first": true, // 是否为第一页
"last": true, "last": true, // 是否为最后一页
"hasNext": true, "hasNext": true, // 是否有下一页
"hasPrevious": true, "hasPrevious": true, // 是否有上一页
"totalPages": 0, "totalPages": 0, // 总页数
"nextUrl": "string", "nextUrl": "string", // 下一页链接
"prevUrl": "string" "prevUrl": "string" // 上一页链接
} }
``` ```

@ -3,6 +3,11 @@ title: 首页
description: index.html - / description: index.html - /
--- ---
import CategoryVo from "../vo/CategoryVo.md"
import TagVo from "../vo/TagVo.md"
import Contributor from "../vo/Contributor.md";
import ListedPostVo from "../vo/ListedPostVo.md"
## 路由信息 ## 路由信息
- 模板路径:`/templates/index.html` - 模板路径:`/templates/index.html`
@ -54,164 +59,39 @@ description: index.html - /
### CategoryVo ### CategoryVo
```json title="CategoryVo" <CategoryVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"description": "string",
"cover": "string",
"template": "string",
"priority": 0,
"children": [
"string"
]
},
"status": {
"permalink": "string",
"postCount": 0,
"visiblePostCount": 0
},
"postCount": 0
}
```
### TagVo ### TagVo
```json title="TagVo" <TagVo />
{
"metadata": { ### Contributor
"name": "string",
"labels": { <Contributor />
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"color": "#F9fEB1",
"cover": "string"
},
"status": {
"permalink": "string",
"visiblePostCount": 0,
"postCount": 0
},
"postCount": 0
}
```
### ListedPostVo ### ListedPostVo
```json title="ListedPostVo" <ListedPostVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.505Z",
},
"spec": {
"title": "string",
"slug": "string",
"releaseSnapshot": "string",
"headSnapshot": "string",
"baseSnapshot": "string",
"owner": "string",
"template": "string",
"cover": "string",
"deleted": false,
"publish": false,
"publishTime": "2022-11-20T13:06:38.505Z",
"pinned": false,
"allowComment": true,
"visible": "PUBLIC",
"priority": 0,
"excerpt": {
"autoGenerate": true,
"raw": "string"
},
"categories": [
"string"
],
"tags": [
"string"
],
"htmlMetas": [
{
"additionalProp1": "string"
}
]
},
"status": {
"permalink": "string",
"excerpt": "string",
"inProgress": true,
"commentsCount": 0,
"contributors": [
"string"
]
},
"categories": "List<#CategoryVo>",
"tags": "List<#TagVo>",
"contributors": [
{
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
}
],
"owner": {
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
},
"stats": {
"visit": 0,
"upvote": 0,
"comment": 0
}
}
```
- [#CategoryVo](#categoryvo) - [#CategoryVo](#categoryvo)
- [#TagVo](#tagvo) - [#TagVo](#tagvo)
- [#Contributor](#contributor)
### UrlContextListResult<ListedPostVo\> ### UrlContextListResult<ListedPostVo\>
```json title="UrlContextListResult<ListedPostVo>" ```json title="UrlContextListResult<ListedPostVo>"
{ {
"page": 0, "page": 0, // 当前页码
"size": 0, "size": 0, // 每页条数
"total": 0, "total": 0, // 总条数
"items": "List<#ListedPostVo>", "items": "List<#ListedPostVo>", // 文章列表数据
"first": true, "first": true, // 是否为第一页
"last": true, "last": true, // 是否为最后一页
"hasNext": true, "hasNext": true, // 是否有下一页
"hasPrevious": true, "hasPrevious": true, // 是否有上一页
"totalPages": 0, "totalPages": 0, // 总页数
"nextUrl": "string", "nextUrl": "string", // 下一页链接
"prevUrl": "string" "prevUrl": "string" // 上一页链接
} }
``` ```

@ -3,6 +3,10 @@ title: 独立页面
description: page.html - /:slug description: page.html - /:slug
--- ---
import SinglePageVo from "../vo/SinglePageVo.md"
import Contributor from "../vo/Contributor.md"
import ContentVo from "../vo/ContentVo.md"
## 路由信息 ## 路由信息
- 模板路径:`/templates/page.html` - 模板路径:`/templates/page.html`
@ -35,75 +39,15 @@ description: page.html - /:slug
### SinglePageVo ### SinglePageVo
```json title="SinglePageVo" <SinglePageVo />
{
"metadata": { - [#ContentVo](#contentvo)
"name": "string", - [#Contributor](#contributor)
"labels": {
"additionalProp1": "string" ### ContentVo
},
"annotations": { <ContentVo />
"additionalProp1": "string"
}, ### Contributor
"creationTimestamp": "2022-11-20T14:29:44.601Z",
}, <Contributor />
"spec": {
"title": "string",
"slug": "string",
"releaseSnapshot": "string",
"headSnapshot": "string",
"baseSnapshot": "string",
"owner": "string",
"template": "string",
"cover": "string",
"deleted": false,
"publish": false,
"publishTime": "2022-11-20T14:29:44.601Z",
"pinned": false,
"allowComment": true,
"visible": "PUBLIC",
"priority": 0,
"excerpt": {
"autoGenerate": true,
"raw": "string"
},
"htmlMetas": [
{
"additionalProp1": "string"
}
]
},
"status": {
"permalink": "string",
"excerpt": "string",
"inProgress": true,
"commentsCount": 0,
"contributors": [
"string"
]
},
"stats": {
"visit": 0,
"upvote": 0,
"comment": 0
},
"contributors": [
{
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
}
],
"owner": {
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
},
"content": {
"raw": "string",
"content": "string"
}
}
```

@ -3,6 +3,12 @@ title: 文章
description: post.html - /archives/:slug description: post.html - /archives/:slug
--- ---
import CategoryVo from "../vo/CategoryVo.md"
import TagVo from "../vo/TagVo.md"
import ContentVo from "../vo/ContentVo.md"
import Contributor from "../vo/Contributor.md"
import PostVo from "../vo/PostVo.md"
## 路由信息 ## 路由信息
- 模板路径:`/templates/post.html` - 模板路径:`/templates/post.html`
@ -35,148 +41,25 @@ description: post.html - /archives/:slug
### CategoryVo ### CategoryVo
```json title="CategoryVo" <CategoryVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"description": "string",
"cover": "string",
"template": "string",
"priority": 0,
"children": [
"string"
]
},
"status": {
"permalink": "string",
"postCount": 0,
"visiblePostCount": 0
},
"postCount": 0
}
```
### TagVo ### TagVo
```json title="TagVo" <TagVo />
{
"metadata": { ### Contributor
"name": "string",
"labels": { <Contributor />
"additionalProp1": "string"
}, ### ContentVo
"annotations": {
"additionalProp1": "string" <ContentVo />
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"color": "#F9fEB1",
"cover": "string"
},
"status": {
"permalink": "string",
"visiblePostCount": 0,
"postCount": 0
},
"postCount": 0
}
```
### PostVo ### PostVo
```json title="PostVo" <PostVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T12:45:43.888Z",
},
"spec": {
"title": "string",
"slug": "string",
"releaseSnapshot": "string",
"headSnapshot": "string",
"baseSnapshot": "string",
"owner": "string",
"template": "string",
"cover": "string",
"deleted": false,
"publish": false,
"publishTime": "2022-11-20T12:45:43.888Z",
"pinned": false,
"allowComment": true,
"visible": "PUBLIC",
"priority": 0,
"excerpt": {
"autoGenerate": true,
"raw": "string"
},
"categories": [
"string"
],
"tags": [
"string"
],
"htmlMetas": [
{
"additionalProp1": "string"
}
]
},
"status": {
"permalink": "string",
"excerpt": "string",
"commentsCount": 0,
"contributors": [
"string"
]
},
"categories": "List<#CategoryVo>",
"tags": "List<#TagVo>",
"contributors": [
{
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
}
],
"owner": {
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
},
"stats": {
"visit": 0,
"upvote": 0,
"comment": 0
},
"content": {
"raw": "string",
"content": "string"
}
}
```
- [#CategoryVo](#categoryvo) - [#CategoryVo](#categoryvo)
- [#TagVo](#tagvo) - [#TagVo](#tagvo)
- [#Contributor](#contributor)
- [#ContentVo](#contentvo)

@ -3,6 +3,11 @@ title: 标签归档
description: tag.html - /tags/:slug description: tag.html - /tags/:slug
--- ---
import CategoryVo from "../vo/CategoryVo.md"
import TagVo from "../vo/TagVo.md"
import Contributor from "../vo/Contributor.md";
import ListedPostVo from "../vo/ListedPostVo.md"
## 路由信息 ## 路由信息
- 模板路径:`/templates/tag.html` - 模板路径:`/templates/tag.html`
@ -61,164 +66,39 @@ description: tag.html - /tags/:slug
### CategoryVo ### CategoryVo
```json title="CategoryVo" <CategoryVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"description": "string",
"cover": "string",
"template": "string",
"priority": 0,
"children": [
"string"
]
},
"status": {
"permalink": "string",
"postCount": 0,
"visiblePostCount": 0
},
"postCount": 0
}
```
### TagVo ### TagVo
```json title="TagVo" <TagVo />
{
"metadata": { ### Contributor
"name": "string",
"labels": { <Contributor />
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"color": "#F9fEB1",
"cover": "string"
},
"status": {
"permalink": "string",
"visiblePostCount": 0,
"postCount": 0
},
"postCount": 0
}
```
### ListedPostVo ### ListedPostVo
```json title="ListedPostVo" <ListedPostVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.505Z",
},
"spec": {
"title": "string",
"slug": "string",
"releaseSnapshot": "string",
"headSnapshot": "string",
"baseSnapshot": "string",
"owner": "string",
"template": "string",
"cover": "string",
"deleted": false,
"publish": false,
"publishTime": "2022-11-20T13:06:38.505Z",
"pinned": false,
"allowComment": true,
"visible": "PUBLIC",
"priority": 0,
"excerpt": {
"autoGenerate": true,
"raw": "string"
},
"categories": [
"string"
],
"tags": [
"string"
],
"htmlMetas": [
{
"additionalProp1": "string"
}
]
},
"status": {
"permalink": "string",
"excerpt": "string",
"inProgress": true,
"commentsCount": 0,
"contributors": [
"string"
]
},
"categories": "List<#CategoryVo>",
"tags": "List<#TagVo>",
"contributors": [
{
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
}
],
"owner": {
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
},
"stats": {
"visit": 0,
"upvote": 0,
"comment": 0
}
}
```
- [#CategoryVo](#categoryvo) - [#CategoryVo](#categoryvo)
- [#TagVo](#tagvo) - [#TagVo](#tagvo)
- [#Contributor](#contributor)
### UrlContextListResult<ListedPostVo\> ### UrlContextListResult<ListedPostVo\>
```json title="UrlContextListResult<ListedPostVo>" ```json title="UrlContextListResult<ListedPostVo>"
{ {
"page": 0, "page": 0, // 当前页码
"size": 0, "size": 0, // 每页条数
"total": 0, "total": 0, // 总条数
"items": "List<#ListedPostVo>", "items": "List<#ListedPostVo>", // 文章列表数据
"first": true, "first": true, // 是否为第一页
"last": true, "last": true, // 是否为最后一页
"hasNext": true, "hasNext": true, // 是否有下一页
"hasPrevious": true, "hasPrevious": true, // 是否有上一页
"totalPages": 0, "totalPages": 0, // 总页数
"nextUrl": "string", "nextUrl": "string", // 下一页链接
"prevUrl": "string" "prevUrl": "string" // 上一页链接
} }
``` ```

@ -2,6 +2,9 @@
title: 文章标签集合 title: 文章标签集合
description: tags.html - /tags description: tags.html - /tags
--- ---
import TagVo from '../vo/TagVo.md'
## 路由信息 ## 路由信息
- 模板路径:`/templates/tags.html` - 模板路径:`/templates/tags.html`
@ -33,29 +36,4 @@ List<[#TagVo](#tagvo)>
### TagVo ### TagVo
```json title="TagVo" <TagVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"color": "#F9fEB1",
"cover": "string"
},
"status": {
"permalink": "string",
"visiblePostCount": 0,
"postCount": 0
},
"postCount": 0
}
```

@ -0,0 +1,33 @@
```json title="CategoryTreeVo"
{
"metadata": {
"name": "string", // 唯一标识
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T14:18:49.230Z", // 创建时间
},
"spec": {
"displayName": "string", // 显示名称
"slug": "string", // 别名,通常用于生成 status.permalink
"description": "string", // 描述
"cover": "string", // 封面图
"template": "string", // 自定义渲染模板名称
"priority": 0, // 排序字段
"children": [ // 下级分类,分类的 metadata.name 集合
"string"
]
},
"status": {
"permalink": "string", // 固定链接
"postCount": 0, // 文章数
"visiblePostCount": 0 // 已发布文章数
},
"children": "List<#CategoryTreeVo>", // 下级分类CategoryTreeVo 的集合
"parentName": "string",
"postCount": 0
}
```

@ -0,0 +1,31 @@
```json title="CategoryVo"
{
"metadata": {
"name": "string", // 唯一标识
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z", // 创建时间
},
"spec": {
"displayName": "string", // 显示名称
"slug": "string", // 别名,通常用于生成 status.permalink
"description": "string", // 描述
"cover": "string", // 封面图
"template": "string", // 自定义渲染模板名称
"priority": 0, // 排序字段
"children": [ // 下级分类,分类的 metadata.name 集合
"string"
]
},
"status": {
"permalink": "string", // 固定链接
"postCount": 0, // 文章数
"visiblePostCount": 0 // 已发布文章数
},
"postCount": 0
}
```

@ -0,0 +1,53 @@
```json title="CommentVo"
{
"metadata": {
"name": "string", // 唯一标识
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T12:16:19.788Z" // 创建时间
},
"spec": {
"raw": "string", // 原始文本,一般用于给编辑器使用
"content": "string", // 最终渲染的文本
"owner": { // 创建者关联
"kind": "string",
"name": "string",
"displayName": "string",
"annotations": {
"additionalProp1": "string"
}
},
"userAgent": "string", // 评论者 UserAgent 信息
"ipAddress": "string", // 评论者 IP 地址
"priority": 0, // 排序字段
"top": false, // 是否置顶
"allowNotification": true, // 是否允许通知
"approved": false,
"hidden": false,
"subjectRef": { // 引用关联,比如文章、自定义页面
"group": "string",
"version": "string",
"kind": "string",
"name": "string"
},
"lastReadTime": "2022-11-20T12:16:19.788Z"
},
"status": {
"lastReplyTime": "2022-11-20T12:16:19.788Z",
"replyCount": 0, // 回复数量
"unreadReplyCount": 0,
"hasNewReply": true // 是否有新回复
},
"owner": { // 创建者信息
"kind": "string",
"name": "string",
"displayName": "string",
"avatar": "string",
"email": "string"
}
}
```

@ -0,0 +1,6 @@
```json title="ContentVo"
{
"raw": "string", // 原始文本,一般用于给编辑器使用
"content": "string" // 最终渲染的文本
}
```

@ -0,0 +1,8 @@
```json title="Contributor"
{
"name": "string", // 用户名
"displayName": "string", // 显示名称
"avatar": "string", // 头像
"bio": "string" // 描述
}
```

@ -0,0 +1,64 @@
```json title="ListedPostVo"
{
"metadata": {
"name": "string", // 唯一标识
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.505Z", // 创建时间
},
"spec": {
"title": "string", // 标题
"slug": "string", // 别名,通常用于生成 status.permalink
"releaseSnapshot": "string",
"headSnapshot": "string",
"baseSnapshot": "string",
"owner": "string", // 创建者名称,即 Contributor 的 metadata.name非显示名称
"template": "string", // 自定义渲染模板
"cover": "string", // 封面图
"deleted": false,
"publish": false,
"publishTime": "2022-11-20T13:06:38.505Z", // 发布时间
"pinned": false, // 是否置顶
"allowComment": true, // 是否允许评论
"visible": "PUBLIC",
"priority": 0,
"excerpt": {
"autoGenerate": true, // 是否自动生成摘要
"raw": "string" // 摘要内容
},
"categories": [ // 分类的名称集合,即 Category 的 metadata.name 的集合
"string"
],
"tags": [ // 标签的名称集合,即 Tag 的 metadata.name 的集合
"string"
],
"htmlMetas": [
{
"additionalProp1": "string"
}
]
},
"status": {
"permalink": "string", // 固定链接
"excerpt": "string", // 最终生成的摘要
"inProgress": true,
"commentsCount": 0, // 评论数
"contributors": [ // 贡献者名称Contributor 的 metadata.name 的集合
"string"
]
},
"categories": "List<#CategoryVo>", // 分类的集合
"tags": "List<#TagVo>", // 标签的集合
"contributors": "List<#Contributor>", // 贡献者的集合
"owner": "#Contributor", // 创建者
"stats": {
"visit": 0, // 访问数量
"upvote": 0, // 点赞数量
"comment": 0 // 评论数量
}
}
```

@ -0,0 +1,56 @@
```json title="ListedSinglePageVo"
{
"metadata": {
"name": "string", // 唯一标识
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T14:31:00.876Z" // 创建时间
},
"spec": {
"title": "string", // 标题
"slug": "string", // 别名,通常用于生成 status.permalink
"releaseSnapshot": "string",
"headSnapshot": "string",
"baseSnapshot": "string",
"owner": "string", // 创建者名称,即 Contributor 的 metadata.name非显示名称
"template": "string", // 自定义渲染模板
"cover": "string", // 封面图
"deleted": false,
"publish": false,
"publishTime": "2022-11-20T14:31:00.876Z", // 发布时间
"pinned": false, // 是否置顶
"allowComment": true, // 是否允许评论
"visible": "PUBLIC",
"priority": 0,
"excerpt": {
"autoGenerate": true, // 是否自动生成摘要
"raw": "string" // 摘要内容
},
"htmlMetas": [
{
"additionalProp1": "string"
}
]
},
"status": {
"permalink": "string", // 固定链接
"excerpt": "string", // 最终生成的摘要
"inProgress": true,
"commentsCount": 0, // 评论数
"contributors": [ // 贡献者名称Contributor 的 metadata.name 的集合
"string"
]
},
"stats": {
"visit": 0, // 访问数量
"upvote": 0, // 点赞数量
"comment": 0 // 评论数量
},
"contributors": "List<#Contributor>", // 贡献者的集合
"owner": "#Contributor" // 创建者
}
```

@ -0,0 +1,34 @@
```json title="MenuItemVo"
{
"metadata": {
"name": "string", // 唯一标识
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T14:44:58.984Z", // 创建时间
},
"spec": {
"displayName": "string", // 显示名称,但是不要直接使用这个字段进行显示,最终字段为 status.displayName
"href": "string", // 链接,同样不要直接使用这个字段,最终字段为 status.href
"priority": 0, // 排序字段
"children": [ // 下级菜单项,菜单项的 metadata.name 集合
"string"
],
"targetRef": { // 与其他资源比如文章的关联,一般无需直接使用
"group": "string",
"version": "string",
"kind": "string",
"name": "string"
}
},
"status": {
"displayName": "string", // 显示名称
"href": "string" // 链接
},
"children": "List<#MenuItemVo>", // 下级菜单项MenuItemVo 的集合
"parentName": "string",
}
```

@ -0,0 +1,21 @@
```json title="MenuVo"
{
"metadata": {
"name": "string", // 唯一标识
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T14:44:58.984Z", // 创建时间
},
"spec": {
"displayName": "string", // 显示名称
"menuItems": [ // 菜单的菜单项名称集合,即 MenuItem 的 metadata.name 的集合
"string"
]
},
"menuItems": "List<#MenuItemVo>" // 菜单项的集合
}
```

@ -0,0 +1,65 @@
```json title="PostVo"
{
"metadata": {
"name": "string", // 唯一标识
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T12:45:43.888Z", // 创建时间
},
"spec": {
"title": "string", // 标题
"slug": "string", // 别名,通常用于生成 status.permalink
"releaseSnapshot": "string",
"headSnapshot": "string",
"baseSnapshot": "string",
"owner": "string", // 创建者名称,即 Contributor 的 metadata.name非显示名称
"template": "string", // 自定义渲染模板
"cover": "string", // 封面图
"deleted": false,
"publish": false,
"publishTime": "2022-11-20T13:06:38.505Z", // 发布时间
"pinned": false, // 是否置顶
"allowComment": true, // 是否允许评论
"visible": "PUBLIC",
"priority": 0,
"excerpt": {
"autoGenerate": true, // 是否自动生成摘要
"raw": "string" // 摘要内容
},
"categories": [ // 分类的名称集合,即 Category 的 metadata.name 的集合
"string"
],
"tags": [ // 标签的名称集合,即 Tag 的 metadata.name 的集合
"string"
],
"htmlMetas": [
{
"additionalProp1": "string"
}
]
},
"status": {
"permalink": "string", // 固定链接
"excerpt": "string", // 最终生成的摘要
"inProgress": true,
"commentsCount": 0, // 评论数
"contributors": [ // 贡献者名称Contributor 的 metadata.name 的集合
"string"
]
},
"categories": "List<#CategoryVo>", // 分类的集合
"tags": "List<#TagVo>", // 标签的集合
"contributors": "List<#Contributor>", // 贡献者的集合
"owner": "#Contributor", // 创建者
"stats": {
"visit": 0, // 访问数量
"upvote": 0, // 点赞数量
"comment": 0 // 评论数量
},
"content": "#ContentVo" // 内容
}
```

@ -0,0 +1,42 @@
```json title="ReplyVo"
{
"metadata": {
"name": "string", // 唯一标识
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T12:25:32.357Z" // 创建时间
},
"spec": {
"raw": "string", // 原始文本,一般用于给编辑器使用
"content": "string", // 最终渲染的文本
"owner": { // 创建者关联
"kind": "string",
"name": "string",
"displayName": "string",
"annotations": {
"additionalProp1": "string"
}
},
"userAgent": "string", // 评论者 UserAgent 信息
"ipAddress": "string", // 评论者 IP 地址
"priority": 0, // 排序字段
"top": false, // 是否置顶
"allowNotification": true, // 是否允许通知
"approved": false,
"hidden": false,
"commentName": "string", // 被回复的评论名称,即 Comment 的 metadata.name
"quoteReply": "string" // 被回复的回复名称,即 Reply 的 metadata.name
},
"owner": { // 创建者信息
"kind": "string",
"name": "string",
"displayName": "string",
"avatar": "string",
"email": "string"
}
}
```

@ -0,0 +1,57 @@
```json title="SinglePageVo"
{
"metadata": {
"name": "string", // 唯一标识
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T14:29:44.601Z", // 创建时间
},
"spec": {
"title": "string", // 标题
"slug": "string", // 别名,通常用于生成 status.permalink
"releaseSnapshot": "string",
"headSnapshot": "string",
"baseSnapshot": "string",
"owner": "string", // 创建者名称,即 Contributor 的 metadata.name非显示名称
"template": "string", // 自定义渲染模板
"cover": "string", // 封面图
"deleted": false,
"publish": false,
"publishTime": "2022-11-20T13:06:38.505Z", // 发布时间
"pinned": false, // 是否置顶
"allowComment": true, // 是否允许评论
"visible": "PUBLIC",
"priority": 0,
"excerpt": {
"autoGenerate": true, // 是否自动生成摘要
"raw": "string" // 摘要内容
},
"htmlMetas": [
{
"additionalProp1": "string"
}
]
},
"status": {
"permalink": "string", // 固定链接
"excerpt": "string", // 最终生成的摘要
"inProgress": true,
"commentsCount": 0, // 评论数
"contributors": [ // 贡献者名称Contributor 的 metadata.name 的集合
"string"
]
},
"stats": {
"visit": 0, // 访问数量
"upvote": 0, // 点赞数量
"comment": 0 // 评论数量
},
"contributors": "List<#Contributor>", // 贡献者的集合
"owner": "#Contributor", // 创建者
"content": "#ContentVo" // 内容
}
```

@ -0,0 +1,26 @@
```json title="TagVo"
{
"metadata": {
"name": "string", // 唯一标识
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z", // 创建时间
},
"spec": {
"displayName": "string", // 显示名称
"slug": "string", // 别名,通常用于生成 status.permalink
"color": "#F9fEB1", // 背景颜色
"cover": "string" // 封面图
},
"status": {
"permalink": "string", // 固定链接
"visiblePostCount": 0, // 已发布文章数
"postCount": 0 // 文章数
},
"postCount": 0
}
```

@ -3,6 +3,9 @@ title: 文章分类
description: 文章分类 - CategoryFinder description: 文章分类 - CategoryFinder
--- ---
import CategoryVo from "../vo/CategoryVo.md"
import CategoryTreeVo from "../vo/CategoryTreeVo.md"
## getByName(name) ## getByName(name)
```js ```js
@ -157,51 +160,21 @@ List<[#CategoryTreeVo](#categorytreevo)>
### CategoryVo ### CategoryVo
```json title="CategoryVo" <CategoryVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"description": "string",
"cover": "string",
"template": "string",
"priority": 0,
"children": [
"string"
]
},
"status": {
"permalink": "string",
"postCount": 0,
"visiblePostCount": 0
},
"postCount": 0
}
```
### ListResult<CategoryVo\> ### ListResult<CategoryVo\>
```json title="ListResult<CategoryVo>" ```json title="ListResult<CategoryVo>"
{ {
"page": 0, "page": 0, // 当前页码
"size": 0, "size": 0, // 每页条数
"total": 0, "total": 0, // 总条数
"items": "List<#CategoryVo>", "items": "List<#CategoryVo>", // 分类列表数据
"first": true, "first": true, // 是否为第一页
"last": true, "last": true, // 是否为最后一页
"hasNext": true, "hasNext": true, // 是否有下一页
"hasPrevious": true, "hasPrevious": true, // 是否有上一页
"totalPages": 0 "totalPages": 0 // 总页数
} }
``` ```
@ -209,38 +182,6 @@ List<[#CategoryTreeVo](#categorytreevo)>
### CategoryTreeVo ### CategoryTreeVo
```json title="CategoryTreeVo" <CategoryTreeVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T14:18:49.230Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"description": "string",
"cover": "string",
"template": "string",
"priority": 0,
"children": [
"string"
]
},
"status": {
"permalink": "string",
"postCount": 0,
"visiblePostCount": 0
},
"children": "List<#CategoryTreeVo>",
"parentName": "string",
"postCount": 0
}
```
- [#CategoryTreeVo](#categorytreevo) - [#CategoryTreeVo](#categorytreevo)

@ -3,6 +3,9 @@ title: 评论
description: 评论 - CommentFinder description: 评论 - CommentFinder
--- ---
import CommentVo from "../vo/CommentVo.md"
import ReplyVo from "../vo/ReplyVo.md"
## getByName(name) ## getByName(name)
```js ```js
@ -98,73 +101,21 @@ commentFinder.listReply(commentName,page,size)
### CommentVo ### CommentVo
```json title="CommentVo" <CommentVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T12:16:19.788Z"
},
"spec": {
"raw": "string",
"content": "string",
"owner": {
"kind": "string",
"name": "string",
"displayName": "string",
"annotations": {
"additionalProp1": "string"
}
},
"userAgent": "string",
"ipAddress": "string",
"priority": 0,
"top": false,
"allowNotification": true,
"approved": false,
"hidden": false,
"subjectRef": {
"group": "string",
"version": "string",
"kind": "string",
"name": "string"
},
"lastReadTime": "2022-11-20T12:16:19.788Z"
},
"status": {
"lastReplyTime": "2022-11-20T12:16:19.788Z",
"replyCount": 0,
"unreadReplyCount": 0,
"hasNewReply": true
},
"owner": {
"kind": "string",
"name": "string",
"displayName": "string",
"avatar": "string",
"email": "string"
}
}
```
### ListResult<CommentVo\> ### ListResult<CommentVo\>
```json title="ListResult<CommentVo>" ```json title="ListResult<CommentVo>"
{ {
"page": 0, "page": 0, // 当前页码
"size": 0, "size": 0, // 每页条数
"total": 0, "total": 0, // 总条数
"items": "List<#CommentVo>", "items": "List<#CommentVo>", // 评论列表数据
"first": true, "first": true, // 是否为第一页
"last": true, "last": true, // 是否为最后一页
"hasNext": true, "hasNext": true, // 是否有下一页
"hasPrevious": true, "hasPrevious": true, // 是否有上一页
"totalPages": 0 "totalPages": 0 // 总页数
} }
``` ```
@ -172,62 +123,21 @@ commentFinder.listReply(commentName,page,size)
### ReplyVo ### ReplyVo
```json title="ReplyVo" <ReplyVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T12:25:32.357Z"
},
"spec": {
"raw": "string",
"content": "string",
"owner": {
"kind": "string",
"name": "string",
"displayName": "string",
"annotations": {
"additionalProp1": "string"
}
},
"userAgent": "string",
"ipAddress": "string",
"priority": 0,
"top": false,
"allowNotification": true,
"approved": false,
"hidden": false,
"commentName": "string",
"quoteReply": "string"
},
"owner": {
"kind": "string",
"name": "string",
"displayName": "string",
"avatar": "string",
"email": "string"
}
}
```
### ListResult<ReplyVo\> ### ListResult<ReplyVo\>
```json title="ListResult<ReplyVo>" ```json title="ListResult<ReplyVo>"
{ {
"page": 0, "page": 0, // 当前页码
"size": 0, "size": 0, // 每页条数
"total": 0, "total": 0, // 总条数
"items": "List<#ReplyVo>", "items": "List<#ReplyVo>", // 回复列表数据
"first": true, "first": true, // 是否为第一页
"last": true, "last": true, // 是否为最后一页
"hasNext": true, "hasNext": true, // 是否有下一页
"hasPrevious": true, "hasPrevious": true, // 是否有上一页
"totalPages": 0 "totalPages": 0 // 总页数
} }
``` ```

@ -3,6 +3,8 @@ title: 作者
description: 作者 - ContributorFinder description: 作者 - ContributorFinder
--- ---
import Contributor from "../vo/Contributor.md"
## getContributor(name) ## getContributor(name)
```js ```js
@ -59,11 +61,4 @@ List<[#Contributor](#contributor)>
### Contributor ### Contributor
```json title="Contributor" <Contributor />
{
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
}
```

@ -3,6 +3,9 @@ title: 导航菜单
description: 导航菜单 - MenuFinder description: 导航菜单 - MenuFinder
--- ---
import MenuItemVo from "../vo/MenuItemVo.md"
import MenuVo from "../vo/MenuVo.md"
## getByName(name) ## getByName(name)
```js ```js
@ -67,79 +70,8 @@ menuFinder.getPrimary()
### MenuVo ### MenuVo
```json title="MenuVo" <MenuVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T14:44:58.984Z",
},
"spec": {
"displayName": "string",
"menuItems": [
"string"
]
},
"menuItems": "List<#MenuItemVo>"
}
```
### MenuItemVo ### MenuItemVo
```json title="MenuItemVo" <MenuItemVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T14:44:58.984Z",
},
"spec": {
"displayName": "string",
"href": "string",
"priority": 0,
"children": [
"string"
],
"categoryRef": {
"group": "string",
"version": "string",
"kind": "string",
"name": "string"
},
"tagRef": {
"group": "string",
"version": "string",
"kind": "string",
"name": "string"
},
"postRef": {
"group": "string",
"version": "string",
"kind": "string",
"name": "string"
},
"singlePageRef": {
"group": "string",
"version": "string",
"kind": "string",
"name": "string"
}
},
"status": {
"displayName": "string",
"href": "string"
},
"children": "List<#MenuItemVo>",
"parentName": "string",
}
```

@ -3,10 +3,17 @@ title: 文章
description: 文章 - PostFinder description: 文章 - PostFinder
--- ---
import CategoryVo from "../vo/CategoryVo.md";
import TagVo from "../vo/TagVo.md";
import PostVo from "../vo/PostVo.md";
import ContentVo from "../vo/ContentVo.md"
import Contributor from "../vo/Contributor.md"
import ListedPostVo from "../vo/ListedPostVo.md"
## getByName(postName) ## getByName(postName)
```js ```js
postFinder.getByName(postName) postFinder.getByName(postName);
``` ```
### 描述 ### 描述
@ -32,7 +39,7 @@ postFinder.getByName(postName)
## content(postName) ## content(postName)
```js ```js
postFinder.content(postName) postFinder.content(postName);
``` ```
### 描述 ### 描述
@ -58,7 +65,7 @@ postFinder.content(postName)
## cursor(postName) ## cursor(postName)
```js ```js
postFinder.cursor(postName) postFinder.cursor(postName);
``` ```
### 描述 ### 描述
@ -76,9 +83,7 @@ postFinder.cursor(postName)
### 示例 ### 示例
```html title="/templates/post.html" ```html title="/templates/post.html"
<div <div th:with="postCursor = ${postFinder.cursor(post.metadata.name)}">
th:with="postCursor = ${postFinder.cursor(post.metadata.name)}"
>
<a <a
th:if="${postCursor.hasPrevious()}" th:if="${postCursor.hasPrevious()}"
th:href="@{${postCursor.previous.status.permalink}}" th:href="@{${postCursor.previous.status.permalink}}"
@ -97,7 +102,7 @@ postFinder.cursor(postName)
## listAll() ## listAll()
```js ```js
postFinder.listAll() postFinder.listAll();
``` ```
### 描述 ### 描述
@ -125,7 +130,7 @@ List<[#ListedPostVo](#listedpostvo)>
## list(page,size) ## list(page,size)
```js ```js
postFinder.list(page,size) postFinder.list(page, size);
``` ```
### 描述 ### 描述
@ -154,7 +159,7 @@ postFinder.list(page,size)
## listByCategory(page,size,categoryName) ## listByCategory(page,size,categoryName)
```js ```js
postFinder.listByCategory(page,size,categoryName) postFinder.listByCategory(page, size, categoryName);
``` ```
### 描述 ### 描述
@ -184,7 +189,7 @@ postFinder.listByCategory(page,size,categoryName)
## listByTag(page,size,tag) ## listByTag(page,size,tag)
```js ```js
postFinder.listByTag(page,size,tag) postFinder.listByTag(page, size, tag);
``` ```
### 描述 ### 描述
@ -214,7 +219,7 @@ postFinder.listByTag(page,size,tag)
## archives(page,size) ## archives(page,size)
```js ```js
postFinder.archives(page,size) postFinder.archives(page, size);
``` ```
### 描述 ### 描述
@ -239,9 +244,7 @@ postFinder.archives(page,size)
<ul> <ul>
<th:block th:each="month : ${archive.months}"> <th:block th:each="month : ${archive.months}">
<li th:each="post : ${month.posts}"> <li th:each="post : ${month.posts}">
<a <a th:href="@{${post.status.permalink}}" th:text="${post.spec.title}">
th:href="@{${post.status.permalink}}"
th:text="${post.spec.title}">
</a> </a>
</li> </li>
</th:block> </th:block>
@ -253,7 +256,7 @@ postFinder.archives(page,size)
## archives(page,size,year) ## archives(page,size,year)
```js ```js
postFinder.archives(page,size,year) postFinder.archives(page, size, year);
``` ```
### 描述 ### 描述
@ -264,7 +267,7 @@ postFinder.archives(page,size,year)
1. `page:int` - 分页页码,从 1 开始 1. `page:int` - 分页页码,从 1 开始
2. `size:int` - 分页条数 2. `size:int` - 分页条数
2. `year:string` - 年份 3. `year:string` - 年份
### 返回值 ### 返回值
@ -279,9 +282,7 @@ postFinder.archives(page,size,year)
<ul> <ul>
<th:block th:each="month : ${archive.months}"> <th:block th:each="month : ${archive.months}">
<li th:each="post : ${month.posts}"> <li th:each="post : ${month.posts}">
<a <a th:href="@{${post.status.permalink}}" th:text="${post.spec.title}">
th:href="@{${post.status.permalink}}"
th:text="${post.spec.title}">
</a> </a>
</li> </li>
</th:block> </th:block>
@ -293,7 +294,7 @@ postFinder.archives(page,size,year)
## archives(page,size,year,month) ## archives(page,size,year,month)
```js ```js
postFinder.archives(page,size,year,month) postFinder.archives(page, size, year, month);
``` ```
### 描述 ### 描述
@ -304,8 +305,8 @@ postFinder.archives(page,size,year,month)
1. `page:int` - 分页页码,从 1 开始 1. `page:int` - 分页页码,从 1 开始
2. `size:int` - 分页条数 2. `size:int` - 分页条数
2. `year:string` - 年份 3. `year:string` - 年份
2. `month:string` - 月份 4. `month:string` - 月份
### 返回值 ### 返回值
@ -320,9 +321,7 @@ postFinder.archives(page,size,year,month)
<ul> <ul>
<th:block th:each="month : ${archive.months}"> <th:block th:each="month : ${archive.months}">
<li th:each="post : ${month.posts}"> <li th:each="post : ${month.posts}">
<a <a th:href="@{${post.status.permalink}}" th:text="${post.spec.title}">
th:href="@{${post.status.permalink}}"
th:text="${post.spec.title}">
</a> </a>
</li> </li>
</th:block> </th:block>
@ -335,168 +334,36 @@ postFinder.archives(page,size,year,month)
### CategoryVo ### CategoryVo
```json title="CategoryVo" <CategoryVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"description": "string",
"cover": "string",
"template": "string",
"priority": 0,
"children": [
"string"
]
},
"status": {
"permalink": "string",
"postCount": 0,
"visiblePostCount": 0
},
"postCount": 0
}
```
### TagVo ### TagVo
```json title="TagVo" <TagVo />
{
"metadata": { ### Contributor
"name": "string",
"labels": { <Contributor />
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"color": "#F9fEB1",
"cover": "string"
},
"status": {
"permalink": "string",
"visiblePostCount": 0,
"postCount": 0
},
"postCount": 0
}
```
### PostVo ### PostVo
```json title="PostVo" <PostVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T12:45:43.888Z",
},
"spec": {
"title": "string",
"slug": "string",
"releaseSnapshot": "string",
"headSnapshot": "string",
"baseSnapshot": "string",
"owner": "string",
"template": "string",
"cover": "string",
"deleted": false,
"publish": false,
"publishTime": "2022-11-20T12:45:43.888Z",
"pinned": false,
"allowComment": true,
"visible": "PUBLIC",
"priority": 0,
"excerpt": {
"autoGenerate": true,
"raw": "string"
},
"categories": [
"string"
],
"tags": [
"string"
],
"htmlMetas": [
{
"additionalProp1": "string"
}
]
},
"status": {
"permalink": "string",
"excerpt": "string",
"commentsCount": 0,
"contributors": [
"string"
]
},
"categories": "List<#CategoryVo>",
"tags": "List<#TagVo>",
"contributors": [
{
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
}
],
"owner": {
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
},
"stats": {
"visit": 0,
"upvote": 0,
"comment": 0
},
"content": {
"raw": "string",
"content": "string"
}
}
```
- [#CategoryVo](#categoryvo) - [#CategoryVo](#categoryvo)
- [#TagVo](#tagvo) - [#TagVo](#tagvo)
- [#Contributor](#contributor)
- [#ContentVo](#contentvo)
### ContentVo ### ContentVo
```json title="ContentVo" <ContentVo />
{
"raw": "string",
"content": "string"
}
```
### NavigationPostVo ### NavigationPostVo
```json title="NavigationPostVo" ```json title="NavigationPostVo"
{ {
"previous": "#PostVo", "previous": "#PostVo", // 上一篇文章
"current": "#PostVo", "current": "#PostVo", // 当前文章
"next": "#PostVo" "next": "#PostVo" // 下一篇文章
} }
``` ```
@ -504,99 +371,25 @@ postFinder.archives(page,size,year,month)
### ListedPostVo ### ListedPostVo
```json title="ListedPostVo" <ListedPostVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.505Z",
},
"spec": {
"title": "string",
"slug": "string",
"releaseSnapshot": "string",
"headSnapshot": "string",
"baseSnapshot": "string",
"owner": "string",
"template": "string",
"cover": "string",
"deleted": false,
"publish": false,
"publishTime": "2022-11-20T13:06:38.505Z",
"pinned": false,
"allowComment": true,
"visible": "PUBLIC",
"priority": 0,
"excerpt": {
"autoGenerate": true,
"raw": "string"
},
"categories": [
"string"
],
"tags": [
"string"
],
"htmlMetas": [
{
"additionalProp1": "string"
}
]
},
"status": {
"permalink": "string",
"excerpt": "string",
"inProgress": true,
"commentsCount": 0,
"contributors": [
"string"
]
},
"categories": "List<#CategoryVo>",
"tags": "List<#TagVo>",
"contributors": [
{
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
}
],
"owner": {
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
},
"stats": {
"visit": 0,
"upvote": 0,
"comment": 0
}
}
```
- [#CategoryVo](#categoryvo) - [#CategoryVo](#categoryvo)
- [#TagVo](#tagvo) - [#TagVo](#tagvo)
- [#Contributor](#contributor)
### ListResult<ListedPostVo\> ### ListResult<ListedPostVo\>
```json title="ListResult<ListedPostVo>" ```json title="ListResult<ListedPostVo>"
{ {
"page": 0, "page": 0, // 当前页码
"size": 0, "size": 0, // 每页条数
"total": 0, "total": 0, // 总条数
"items": "List<#ListedPostVo>", "items": "List<#ListedPostVo>", // 文章列表数据
"first": true, "first": true, // 是否为第一页
"last": true, "last": true, // 是否为最后一页
"hasNext": true, "hasNext": true, // 是否有下一页
"hasPrevious": true, "hasPrevious": true, // 是否有上一页
"totalPages": 0 "totalPages": 0 // 总页数
} }
``` ```
@ -622,15 +415,15 @@ postFinder.archives(page,size,year,month)
```json title="ListResult<PostArchiveVo>" ```json title="ListResult<PostArchiveVo>"
{ {
"page": 0, "page": 0, // 当前页码
"size": 0, "size": 0, // 每页条数
"total": 0, "total": 0, // 总条数
"items": "List<#PostArchiveVo>", "items": "List<#PostArchiveVo>", // 文章归档数据
"first": true, "first": true, // 是否为第一页
"last": true, "last": true, // 是否为最后一页
"hasNext": true, "hasNext": true, // 是否有下一页
"hasPrevious": true, "hasPrevious": true, // 是否有上一页
"totalPages": 0 "totalPages": 0 // 总页数
} }
``` ```

@ -3,6 +3,11 @@ title: 独立页面
description: 独立页面 - SinglePageFinder description: 独立页面 - SinglePageFinder
--- ---
import SinglePageVo from "../vo/SinglePageVo.md"
import ListedSinglePageVo from "../vo/ListedSinglePageVo.md"
import Contributor from "../vo/Contributor.md"
import ContentVo from "../vo/ContentVo.md"
## getByName(pageName) ## getByName(pageName)
```js ```js
@ -88,163 +93,30 @@ singlePageFinder.list(page,size)
### SinglePageVo ### SinglePageVo
```json title="SinglePageVo" <SinglePageVo />
{
"metadata": { - [#Contributor](#contributor)
"name": "string", - [#ContentVo](#contentvo)
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T14:29:44.601Z",
},
"spec": {
"title": "string",
"slug": "string",
"releaseSnapshot": "string",
"headSnapshot": "string",
"baseSnapshot": "string",
"owner": "string",
"template": "string",
"cover": "string",
"deleted": false,
"publish": false,
"publishTime": "2022-11-20T14:29:44.601Z",
"pinned": false,
"allowComment": true,
"visible": "PUBLIC",
"priority": 0,
"excerpt": {
"autoGenerate": true,
"raw": "string"
},
"htmlMetas": [
{
"additionalProp1": "string"
}
]
},
"status": {
"permalink": "string",
"excerpt": "string",
"inProgress": true,
"commentsCount": 0,
"contributors": [
"string"
]
},
"stats": {
"visit": 0,
"upvote": 0,
"comment": 0
},
"contributors": [
{
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
}
],
"owner": {
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
},
"content": {
"raw": "string",
"content": "string"
}
}
```
### ListedSinglePageVo ### ListedSinglePageVo
```json title="ListedSinglePageVo" - [#Contributor](#contributor)
{
"metadata": { <ListedSinglePageVo />
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T14:31:00.876Z"
},
"spec": {
"title": "string",
"slug": "string",
"releaseSnapshot": "string",
"headSnapshot": "string",
"baseSnapshot": "string",
"owner": "string",
"template": "string",
"cover": "string",
"deleted": false,
"publish": false,
"publishTime": "2022-11-20T14:31:00.876Z",
"pinned": false,
"allowComment": true,
"visible": "PUBLIC",
"priority": 0,
"excerpt": {
"autoGenerate": true,
"raw": "string"
},
"htmlMetas": [
{
"additionalProp1": "string"
}
]
},
"status": {
"permalink": "string",
"excerpt": "string",
"inProgress": true,
"commentsCount": 0,
"contributors": [
"string"
]
},
"stats": {
"visit": 0,
"upvote": 0,
"comment": 0
},
"contributors": [
{
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
}
],
"owner": {
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
}
}
```
### ListResult<ListedSinglePageVo\> ### ListResult<ListedSinglePageVo\>
```json title="ListResult<ListedSinglePageVo>" ```json title="ListResult<ListedSinglePageVo>"
{ {
"page": 0, "page": 0, // 当前页码
"size": 0, "size": 0, // 每页条数
"total": 0, "total": 0, // 总条数
"items": "List<#ListedSinglePageVo>", "items": "List<#ListedSinglePageVo>", // 自定义页面列表数据
"first": true, "first": true, // 是否为第一页
"last": true, "last": true, // 是否为最后一页
"hasNext": true, "hasNext": true, // 是否有下一页
"hasPrevious": true, "hasPrevious": true, // 是否有上一页
"totalPages": 0 "totalPages": 0 // 总页数
} }
``` ```
@ -252,9 +124,8 @@ singlePageFinder.list(page,size)
### ContentVo ### ContentVo
```json title="ContentVo" <ContentVo />
{
"raw": "string", ### Contributor
"content": "string"
} <Contributor />
```

@ -36,10 +36,10 @@ siteStatsFinder.getStats()
```json title="SiteStatsVo" ```json title="SiteStatsVo"
{ {
"visit": 0, "visit": 0, // 访问数量
"upvote": 0, "upvote": 0, // 点赞数量
"comment": 0, "comment": 0, // 评论数量
"post": 0, "post": 0, // 文章数量
"category": 0 "category": 0 // 分类数量
} }
``` ```

@ -3,6 +3,8 @@ title: 文章标签
description: 文章标签 - TagFinder description: 文章标签 - TagFinder
--- ---
import TagVo from "../vo/TagVo.md"
## getByName(name) ## getByName(name)
```js ```js
@ -116,46 +118,21 @@ List<[#TagVo](#tagvo)>
### TagVo ### TagVo
```json title="TagVo" <TagVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"color": "#F9fEB1",
"cover": "string"
},
"status": {
"permalink": "string",
"visiblePostCount": 0,
"postCount": 0
},
"postCount": 0
}
```
### ListResult<TagVo\> ### ListResult<TagVo\>
```json title="ListResult<TagVo>" ```json title="ListResult<TagVo>"
{ {
"page": 0, "page": 0, // 当前页码
"size": 0, "size": 0, // 每页条数
"total": 0, "total": 0, // 总条数
"items": "List<#TagVo>", "items": "List<#TagVo>", // 标签列表数据
"first": true, "first": true, // 是否为第一页
"last": true, "last": true, // 是否为最后一页
"hasNext": true, "hasNext": true, // 是否有下一页
"hasPrevious": true, "hasPrevious": true, // 是否有上一页
"totalPages": 0 "totalPages": 0 // 总页数
} }
``` ```

@ -64,29 +64,29 @@ themeFinder.getByName(themeName)
```json title="ThemeVo" ```json title="ThemeVo"
{ {
"metadata": { "metadata": {
"name": "string", "name": "string", // 唯一标识
"labels": { "labels": {
"additionalProp1": "string" "additionalProp1": "string"
}, },
"annotations": { "annotations": {
"additionalProp1": "string" "additionalProp1": "string"
}, },
"creationTimestamp": "2022-11-20T15:27:15.036Z", "creationTimestamp": "2022-11-20T15:27:15.036Z", // 创建时间
}, },
"spec": { "spec": {
"displayName": "string", "displayName": "string", // 显示名称
"author": { "author": {
"name": "string", "name": "string", // 作者名称
"website": "string" "website": "string" // 作者网站
}, },
"description": "string", "description": "string", // 描述
"logo": "string", "logo": "string", // Logo
"website": "string", "website": "string", // 网站
"repo": "string", "repo": "string", // 仓库地址
"version": "string", "version": "string", // 版本
"require": "string", "require": "string", // 依赖 Halo 的版本
"settingName": "string", "settingName": "string", // 表单定义的名称,即 Setting 资源的 metadata.name
"configMapName": "string", "configMapName": "string", // 设置项存储的名称,即 ConfigMap 资源的 metadata.name
"customTemplates": { "customTemplates": {
"post": [ "post": [
{ {

@ -3,6 +3,11 @@ title: 文章归档
description: archives.html - /archives description: archives.html - /archives
--- ---
import CategoryVo from "../vo/CategoryVo.md";
import TagVo from "../vo/TagVo.md";
import Contributor from "../vo/Contributor.md";
import ListedPostVo from "../vo/ListedPostVo.md";
## 路由信息 ## 路由信息
- 模板路径:`/templates/archives.html` - 模板路径:`/templates/archives.html`
@ -27,24 +32,18 @@ description: archives.html - /archives
<ul> <ul>
<th:block th:each="month : ${archive.months}"> <th:block th:each="month : ${archive.months}">
<li th:each="post : ${month.posts}"> <li th:each="post : ${month.posts}">
<a <a th:href="@{${post.status.permalink}}" th:text="${post.spec.title}">
th:href="@{${post.status.permalink}}"
th:text="${post.spec.title}">
</a> </a>
</li> </li>
</th:block> </th:block>
</ul> </ul>
</th:block> </th:block>
<div th:if="${archives.hasPrevious() || archives.hasNext()}"> <div th:if="${archives.hasPrevious() || archives.hasNext()}">
<a <a th:href="@{${archives.prevUrl}}">
th:href="@{${archives.prevUrl}}"
>
<span>上一页</span> <span>上一页</span>
</a> </a>
<span th:text="${archives.page} +' / '+ ${archives.total}"></span> <span th:text="${archives.page} +' / '+ ${archives.total}"></span>
<a <a th:href="@{${archives.nextUrl}}">
th:href="@{${archives.nextUrl}}"
>
<span>下一页</span> <span>下一页</span>
</a> </a>
</div> </div>
@ -54,158 +53,33 @@ description: archives.html - /archives
### CategoryVo ### CategoryVo
```json title="CategoryVo" <CategoryVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"description": "string",
"cover": "string",
"template": "string",
"priority": 0,
"children": [
"string"
]
},
"status": {
"permalink": "string",
"postCount": 0,
"visiblePostCount": 0
},
"postCount": 0
}
```
### TagVo ### TagVo
```json title="TagVo" <TagVo />
{
"metadata": { ### Contributor
"name": "string",
"labels": { <Contributor />
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"color": "#F9fEB1",
"cover": "string"
},
"status": {
"permalink": "string",
"visiblePostCount": 0,
"postCount": 0
},
"postCount": 0
}
```
### ListedPostVo ### ListedPostVo
```json title="ListedPostVo" <ListedPostVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.505Z",
},
"spec": {
"title": "string",
"slug": "string",
"releaseSnapshot": "string",
"headSnapshot": "string",
"baseSnapshot": "string",
"owner": "string",
"template": "string",
"cover": "string",
"deleted": false,
"publish": false,
"publishTime": "2022-11-20T13:06:38.505Z",
"pinned": false,
"allowComment": true,
"visible": "PUBLIC",
"priority": 0,
"excerpt": {
"autoGenerate": true,
"raw": "string"
},
"categories": [
"string"
],
"tags": [
"string"
],
"htmlMetas": [
{
"additionalProp1": "string"
}
]
},
"status": {
"permalink": "string",
"excerpt": "string",
"inProgress": true,
"commentsCount": 0,
"contributors": [
"string"
]
},
"categories": "List<#CategoryVo>",
"tags": "List<#TagVo>",
"contributors": [
{
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
}
],
"owner": {
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
},
"stats": {
"visit": 0,
"upvote": 0,
"comment": 0
}
}
```
- [#CategoryVo](#categoryvo) - [#CategoryVo](#categoryvo)
- [#TagVo](#tagvo) - [#TagVo](#tagvo)
- [#Contributor](#contributor)
### PostArchiveVo ### PostArchiveVo
```json title="PostArchiveVo" ```json title="PostArchiveVo"
{ {
"year": "string", "year": "string", // 年份
"months": [ "months": [ // 按月的文章集合
{ {
"month": "string", "month": "string", // 月份
"posts": "#ListedPostVo" "posts": "List<#ListedPostVo>" // 文章列表数据
} }
] ]
} }
@ -217,17 +91,17 @@ description: archives.html - /archives
```json title="UrlContextListResult<PostArchiveVo>" ```json title="UrlContextListResult<PostArchiveVo>"
{ {
"page": 0, "page": 0, // 当前页码
"size": 0, "size": 0, // 每页条数
"total": 0, "total": 0, // 总条数
"items": "List<#PostArchiveVo>", "items": "List<#PostArchiveVo>", // 文章归档数据
"first": true, "first": true, // 是否为第一页
"last": true, "last": true, // 是否为最后一页
"hasNext": true, "hasNext": true, // 是否有下一页
"hasPrevious": true, "hasPrevious": true, // 是否有上一页
"totalPages": 0, "totalPages": 0, // 总页数
"nextUrl": "string", "nextUrl": "string", // 下一页链接
"prevUrl": "string" "prevUrl": "string" // 上一页链接
} }
``` ```

@ -3,6 +3,8 @@ title: 文章分类集合
description: categories.html - /categories description: categories.html - /categories
--- ---
import CategoryTreeVo from "../vo/CategoryTreeVo.md"
## 路由信息 ## 路由信息
- 模板路径:`/templates/categories.html` - 模板路径:`/templates/categories.html`
@ -47,38 +49,6 @@ List<[#CategoryTreeVo](#categorytreevo)>
### CategoryTreeVo ### CategoryTreeVo
```json title="CategoryTreeVo" <CategoryTreeVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T14:18:49.230Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"description": "string",
"cover": "string",
"template": "string",
"priority": 0,
"children": [
"string"
]
},
"status": {
"permalink": "string",
"postCount": 0,
"visiblePostCount": 0
},
"children": "List<#CategoryTreeVo>",
"parentName": "string",
"postCount": 0
}
```
- [#CategoryTreeVo](#categorytreevo) - [#CategoryTreeVo](#categorytreevo)

@ -3,6 +3,11 @@ title: 分类归档
description: category.html - /categories/:slug description: category.html - /categories/:slug
--- ---
import CategoryVo from "../vo/CategoryVo.md"
import TagVo from "../vo/TagVo.md"
import Contributor from "../vo/Contributor.md";
import ListedPostVo from "../vo/ListedPostVo.md"
## 路由信息 ## 路由信息
- 模板路径:`/templates/category.html` - 模板路径:`/templates/category.html`
@ -61,164 +66,39 @@ description: category.html - /categories/:slug
### CategoryVo ### CategoryVo
```json title="CategoryVo" <CategoryVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"description": "string",
"cover": "string",
"template": "string",
"priority": 0,
"children": [
"string"
]
},
"status": {
"permalink": "string",
"postCount": 0,
"visiblePostCount": 0
},
"postCount": 0
}
```
### TagVo ### TagVo
```json title="TagVo" <TagVo />
{
"metadata": { ### Contributor
"name": "string",
"labels": { <Contributor />
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"color": "#F9fEB1",
"cover": "string"
},
"status": {
"permalink": "string",
"visiblePostCount": 0,
"postCount": 0
},
"postCount": 0
}
```
### ListedPostVo ### ListedPostVo
```json title="ListedPostVo" <ListedPostVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.505Z",
},
"spec": {
"title": "string",
"slug": "string",
"releaseSnapshot": "string",
"headSnapshot": "string",
"baseSnapshot": "string",
"owner": "string",
"template": "string",
"cover": "string",
"deleted": false,
"publish": false,
"publishTime": "2022-11-20T13:06:38.505Z",
"pinned": false,
"allowComment": true,
"visible": "PUBLIC",
"priority": 0,
"excerpt": {
"autoGenerate": true,
"raw": "string"
},
"categories": [
"string"
],
"tags": [
"string"
],
"htmlMetas": [
{
"additionalProp1": "string"
}
]
},
"status": {
"permalink": "string",
"excerpt": "string",
"inProgress": true,
"commentsCount": 0,
"contributors": [
"string"
]
},
"categories": "List<#CategoryVo>",
"tags": "List<#TagVo>",
"contributors": [
{
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
}
],
"owner": {
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
},
"stats": {
"visit": 0,
"upvote": 0,
"comment": 0
}
}
```
- [#CategoryVo](#categoryvo) - [#CategoryVo](#categoryvo)
- [#TagVo](#tagvo) - [#TagVo](#tagvo)
- [#Contributor](#contributor)
### UrlContextListResult<ListedPostVo\> ### UrlContextListResult<ListedPostVo\>
```json title="UrlContextListResult<ListedPostVo>" ```json title="UrlContextListResult<ListedPostVo>"
{ {
"page": 0, "page": 0, // 当前页码
"size": 0, "size": 0, // 每页条数
"total": 0, "total": 0, // 总条数
"items": "List<#ListedPostVo>", "items": "List<#ListedPostVo>", // 文章列表数据
"first": true, "first": true, // 是否为第一页
"last": true, "last": true, // 是否为最后一页
"hasNext": true, "hasNext": true, // 是否有下一页
"hasPrevious": true, "hasPrevious": true, // 是否有上一页
"totalPages": 0, "totalPages": 0, // 总页数
"nextUrl": "string", "nextUrl": "string", // 下一页链接
"prevUrl": "string" "prevUrl": "string" // 上一页链接
} }
``` ```

@ -3,6 +3,11 @@ title: 首页
description: index.html - / description: index.html - /
--- ---
import CategoryVo from "../vo/CategoryVo.md"
import TagVo from "../vo/TagVo.md"
import Contributor from "../vo/Contributor.md";
import ListedPostVo from "../vo/ListedPostVo.md"
## 路由信息 ## 路由信息
- 模板路径:`/templates/index.html` - 模板路径:`/templates/index.html`
@ -54,164 +59,39 @@ description: index.html - /
### CategoryVo ### CategoryVo
```json title="CategoryVo" <CategoryVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"description": "string",
"cover": "string",
"template": "string",
"priority": 0,
"children": [
"string"
]
},
"status": {
"permalink": "string",
"postCount": 0,
"visiblePostCount": 0
},
"postCount": 0
}
```
### TagVo ### TagVo
```json title="TagVo" <TagVo />
{
"metadata": { ### Contributor
"name": "string",
"labels": { <Contributor />
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"color": "#F9fEB1",
"cover": "string"
},
"status": {
"permalink": "string",
"visiblePostCount": 0,
"postCount": 0
},
"postCount": 0
}
```
### ListedPostVo ### ListedPostVo
```json title="ListedPostVo" <ListedPostVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.505Z",
},
"spec": {
"title": "string",
"slug": "string",
"releaseSnapshot": "string",
"headSnapshot": "string",
"baseSnapshot": "string",
"owner": "string",
"template": "string",
"cover": "string",
"deleted": false,
"publish": false,
"publishTime": "2022-11-20T13:06:38.505Z",
"pinned": false,
"allowComment": true,
"visible": "PUBLIC",
"priority": 0,
"excerpt": {
"autoGenerate": true,
"raw": "string"
},
"categories": [
"string"
],
"tags": [
"string"
],
"htmlMetas": [
{
"additionalProp1": "string"
}
]
},
"status": {
"permalink": "string",
"excerpt": "string",
"inProgress": true,
"commentsCount": 0,
"contributors": [
"string"
]
},
"categories": "List<#CategoryVo>",
"tags": "List<#TagVo>",
"contributors": [
{
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
}
],
"owner": {
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
},
"stats": {
"visit": 0,
"upvote": 0,
"comment": 0
}
}
```
- [#CategoryVo](#categoryvo) - [#CategoryVo](#categoryvo)
- [#TagVo](#tagvo) - [#TagVo](#tagvo)
- [#Contributor](#contributor)
### UrlContextListResult<ListedPostVo\> ### UrlContextListResult<ListedPostVo\>
```json title="UrlContextListResult<ListedPostVo>" ```json title="UrlContextListResult<ListedPostVo>"
{ {
"page": 0, "page": 0, // 当前页码
"size": 0, "size": 0, // 每页条数
"total": 0, "total": 0, // 总条数
"items": "List<#ListedPostVo>", "items": "List<#ListedPostVo>", // 文章列表数据
"first": true, "first": true, // 是否为第一页
"last": true, "last": true, // 是否为最后一页
"hasNext": true, "hasNext": true, // 是否有下一页
"hasPrevious": true, "hasPrevious": true, // 是否有上一页
"totalPages": 0, "totalPages": 0, // 总页数
"nextUrl": "string", "nextUrl": "string", // 下一页链接
"prevUrl": "string" "prevUrl": "string" // 上一页链接
} }
``` ```

@ -3,6 +3,10 @@ title: 独立页面
description: page.html - /:slug description: page.html - /:slug
--- ---
import SinglePageVo from "../vo/SinglePageVo.md"
import Contributor from "../vo/Contributor.md"
import ContentVo from "../vo/ContentVo.md"
## 路由信息 ## 路由信息
- 模板路径:`/templates/page.html` - 模板路径:`/templates/page.html`
@ -35,75 +39,15 @@ description: page.html - /:slug
### SinglePageVo ### SinglePageVo
```json title="SinglePageVo" <SinglePageVo />
{
"metadata": { - [#ContentVo](#contentvo)
"name": "string", - [#Contributor](#contributor)
"labels": {
"additionalProp1": "string" ### ContentVo
},
"annotations": { <ContentVo />
"additionalProp1": "string"
}, ### Contributor
"creationTimestamp": "2022-11-20T14:29:44.601Z",
}, <Contributor />
"spec": {
"title": "string",
"slug": "string",
"releaseSnapshot": "string",
"headSnapshot": "string",
"baseSnapshot": "string",
"owner": "string",
"template": "string",
"cover": "string",
"deleted": false,
"publish": false,
"publishTime": "2022-11-20T14:29:44.601Z",
"pinned": false,
"allowComment": true,
"visible": "PUBLIC",
"priority": 0,
"excerpt": {
"autoGenerate": true,
"raw": "string"
},
"htmlMetas": [
{
"additionalProp1": "string"
}
]
},
"status": {
"permalink": "string",
"excerpt": "string",
"inProgress": true,
"commentsCount": 0,
"contributors": [
"string"
]
},
"stats": {
"visit": 0,
"upvote": 0,
"comment": 0
},
"contributors": [
{
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
}
],
"owner": {
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
},
"content": {
"raw": "string",
"content": "string"
}
}
```

@ -3,6 +3,12 @@ title: 文章
description: post.html - /archives/:slug description: post.html - /archives/:slug
--- ---
import CategoryVo from "../vo/CategoryVo.md"
import TagVo from "../vo/TagVo.md"
import ContentVo from "../vo/ContentVo.md"
import Contributor from "../vo/Contributor.md"
import PostVo from "../vo/PostVo.md"
## 路由信息 ## 路由信息
- 模板路径:`/templates/post.html` - 模板路径:`/templates/post.html`
@ -35,148 +41,25 @@ description: post.html - /archives/:slug
### CategoryVo ### CategoryVo
```json title="CategoryVo" <CategoryVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"description": "string",
"cover": "string",
"template": "string",
"priority": 0,
"children": [
"string"
]
},
"status": {
"permalink": "string",
"postCount": 0,
"visiblePostCount": 0
},
"postCount": 0
}
```
### TagVo ### TagVo
```json title="TagVo" <TagVo />
{
"metadata": { ### Contributor
"name": "string",
"labels": { <Contributor />
"additionalProp1": "string"
}, ### ContentVo
"annotations": {
"additionalProp1": "string" <ContentVo />
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"color": "#F9fEB1",
"cover": "string"
},
"status": {
"permalink": "string",
"visiblePostCount": 0,
"postCount": 0
},
"postCount": 0
}
```
### PostVo ### PostVo
```json title="PostVo" <PostVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T12:45:43.888Z",
},
"spec": {
"title": "string",
"slug": "string",
"releaseSnapshot": "string",
"headSnapshot": "string",
"baseSnapshot": "string",
"owner": "string",
"template": "string",
"cover": "string",
"deleted": false,
"publish": false,
"publishTime": "2022-11-20T12:45:43.888Z",
"pinned": false,
"allowComment": true,
"visible": "PUBLIC",
"priority": 0,
"excerpt": {
"autoGenerate": true,
"raw": "string"
},
"categories": [
"string"
],
"tags": [
"string"
],
"htmlMetas": [
{
"additionalProp1": "string"
}
]
},
"status": {
"permalink": "string",
"excerpt": "string",
"commentsCount": 0,
"contributors": [
"string"
]
},
"categories": "List<#CategoryVo>",
"tags": "List<#TagVo>",
"contributors": [
{
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
}
],
"owner": {
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
},
"stats": {
"visit": 0,
"upvote": 0,
"comment": 0
},
"content": {
"raw": "string",
"content": "string"
}
}
```
- [#CategoryVo](#categoryvo) - [#CategoryVo](#categoryvo)
- [#TagVo](#tagvo) - [#TagVo](#tagvo)
- [#Contributor](#contributor)
- [#ContentVo](#contentvo)

@ -3,6 +3,11 @@ title: 标签归档
description: tag.html - /tags/:slug description: tag.html - /tags/:slug
--- ---
import CategoryVo from "../vo/CategoryVo.md"
import TagVo from "../vo/TagVo.md"
import Contributor from "../vo/Contributor.md";
import ListedPostVo from "../vo/ListedPostVo.md"
## 路由信息 ## 路由信息
- 模板路径:`/templates/tag.html` - 模板路径:`/templates/tag.html`
@ -61,164 +66,39 @@ description: tag.html - /tags/:slug
### CategoryVo ### CategoryVo
```json title="CategoryVo" <CategoryVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"description": "string",
"cover": "string",
"template": "string",
"priority": 0,
"children": [
"string"
]
},
"status": {
"permalink": "string",
"postCount": 0,
"visiblePostCount": 0
},
"postCount": 0
}
```
### TagVo ### TagVo
```json title="TagVo" <TagVo />
{
"metadata": { ### Contributor
"name": "string",
"labels": { <Contributor />
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"color": "#F9fEB1",
"cover": "string"
},
"status": {
"permalink": "string",
"visiblePostCount": 0,
"postCount": 0
},
"postCount": 0
}
```
### ListedPostVo ### ListedPostVo
```json title="ListedPostVo" <ListedPostVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.505Z",
},
"spec": {
"title": "string",
"slug": "string",
"releaseSnapshot": "string",
"headSnapshot": "string",
"baseSnapshot": "string",
"owner": "string",
"template": "string",
"cover": "string",
"deleted": false,
"publish": false,
"publishTime": "2022-11-20T13:06:38.505Z",
"pinned": false,
"allowComment": true,
"visible": "PUBLIC",
"priority": 0,
"excerpt": {
"autoGenerate": true,
"raw": "string"
},
"categories": [
"string"
],
"tags": [
"string"
],
"htmlMetas": [
{
"additionalProp1": "string"
}
]
},
"status": {
"permalink": "string",
"excerpt": "string",
"inProgress": true,
"commentsCount": 0,
"contributors": [
"string"
]
},
"categories": "List<#CategoryVo>",
"tags": "List<#TagVo>",
"contributors": [
{
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
}
],
"owner": {
"name": "string",
"displayName": "string",
"avatar": "string",
"bio": "string"
},
"stats": {
"visit": 0,
"upvote": 0,
"comment": 0
}
}
```
- [#CategoryVo](#categoryvo) - [#CategoryVo](#categoryvo)
- [#TagVo](#tagvo) - [#TagVo](#tagvo)
- [#Contributor](#contributor)
### UrlContextListResult<ListedPostVo\> ### UrlContextListResult<ListedPostVo\>
```json title="UrlContextListResult<ListedPostVo>" ```json title="UrlContextListResult<ListedPostVo>"
{ {
"page": 0, "page": 0, // 当前页码
"size": 0, "size": 0, // 每页条数
"total": 0, "total": 0, // 总条数
"items": "List<#ListedPostVo>", "items": "List<#ListedPostVo>", // 文章列表数据
"first": true, "first": true, // 是否为第一页
"last": true, "last": true, // 是否为最后一页
"hasNext": true, "hasNext": true, // 是否有下一页
"hasPrevious": true, "hasPrevious": true, // 是否有上一页
"totalPages": 0, "totalPages": 0, // 总页数
"nextUrl": "string", "nextUrl": "string", // 下一页链接
"prevUrl": "string" "prevUrl": "string" // 上一页链接
} }
``` ```

@ -2,6 +2,9 @@
title: 文章标签集合 title: 文章标签集合
description: tags.html - /tags description: tags.html - /tags
--- ---
import TagVo from '../vo/TagVo.md'
## 路由信息 ## 路由信息
- 模板路径:`/templates/tags.html` - 模板路径:`/templates/tags.html`
@ -33,29 +36,4 @@ List<[#TagVo](#tagvo)>
### TagVo ### TagVo
```json title="TagVo" <TagVo />
{
"metadata": {
"name": "string",
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z",
},
"spec": {
"displayName": "string",
"slug": "string",
"color": "#F9fEB1",
"cover": "string"
},
"status": {
"permalink": "string",
"visiblePostCount": 0,
"postCount": 0
},
"postCount": 0
}
```

@ -0,0 +1,33 @@
```json title="CategoryTreeVo"
{
"metadata": {
"name": "string", // 唯一标识
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T14:18:49.230Z", // 创建时间
},
"spec": {
"displayName": "string", // 显示名称
"slug": "string", // 别名,通常用于生成 status.permalink
"description": "string", // 描述
"cover": "string", // 封面图
"template": "string", // 自定义渲染模板名称
"priority": 0, // 排序字段
"children": [ // 下级分类,分类的 metadata.name 集合
"string"
]
},
"status": {
"permalink": "string", // 固定链接
"postCount": 0, // 文章数
"visiblePostCount": 0 // 已发布文章数
},
"children": "List<#CategoryTreeVo>", // 下级分类CategoryTreeVo 的集合
"parentName": "string",
"postCount": 0
}
```

@ -0,0 +1,31 @@
```json title="CategoryVo"
{
"metadata": {
"name": "string", // 唯一标识
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z", // 创建时间
},
"spec": {
"displayName": "string", // 显示名称
"slug": "string", // 别名,通常用于生成 status.permalink
"description": "string", // 描述
"cover": "string", // 封面图
"template": "string", // 自定义渲染模板名称
"priority": 0, // 排序字段
"children": [ // 下级分类,分类的 metadata.name 集合
"string"
]
},
"status": {
"permalink": "string", // 固定链接
"postCount": 0, // 文章数
"visiblePostCount": 0 // 已发布文章数
},
"postCount": 0
}
```

@ -0,0 +1,53 @@
```json title="CommentVo"
{
"metadata": {
"name": "string", // 唯一标识
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T12:16:19.788Z" // 创建时间
},
"spec": {
"raw": "string", // 原始文本,一般用于给编辑器使用
"content": "string", // 最终渲染的文本
"owner": { // 创建者关联
"kind": "string",
"name": "string",
"displayName": "string",
"annotations": {
"additionalProp1": "string"
}
},
"userAgent": "string", // 评论者 UserAgent 信息
"ipAddress": "string", // 评论者 IP 地址
"priority": 0, // 排序字段
"top": false, // 是否置顶
"allowNotification": true, // 是否允许通知
"approved": false,
"hidden": false,
"subjectRef": { // 引用关联,比如文章、自定义页面
"group": "string",
"version": "string",
"kind": "string",
"name": "string"
},
"lastReadTime": "2022-11-20T12:16:19.788Z"
},
"status": {
"lastReplyTime": "2022-11-20T12:16:19.788Z",
"replyCount": 0, // 回复数量
"unreadReplyCount": 0,
"hasNewReply": true // 是否有新回复
},
"owner": { // 创建者信息
"kind": "string",
"name": "string",
"displayName": "string",
"avatar": "string",
"email": "string"
}
}
```

@ -0,0 +1,6 @@
```json title="ContentVo"
{
"raw": "string", // 原始文本,一般用于给编辑器使用
"content": "string" // 最终渲染的文本
}
```

@ -0,0 +1,8 @@
```json title="Contributor"
{
"name": "string", // 用户名
"displayName": "string", // 显示名称
"avatar": "string", // 头像
"bio": "string" // 描述
}
```

@ -0,0 +1,64 @@
```json title="ListedPostVo"
{
"metadata": {
"name": "string", // 唯一标识
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.505Z", // 创建时间
},
"spec": {
"title": "string", // 标题
"slug": "string", // 别名,通常用于生成 status.permalink
"releaseSnapshot": "string",
"headSnapshot": "string",
"baseSnapshot": "string",
"owner": "string", // 创建者名称,即 Contributor 的 metadata.name非显示名称
"template": "string", // 自定义渲染模板
"cover": "string", // 封面图
"deleted": false,
"publish": false,
"publishTime": "2022-11-20T13:06:38.505Z", // 发布时间
"pinned": false, // 是否置顶
"allowComment": true, // 是否允许评论
"visible": "PUBLIC",
"priority": 0,
"excerpt": {
"autoGenerate": true, // 是否自动生成摘要
"raw": "string" // 摘要内容
},
"categories": [ // 分类的名称集合,即 Category 的 metadata.name 的集合
"string"
],
"tags": [ // 标签的名称集合,即 Tag 的 metadata.name 的集合
"string"
],
"htmlMetas": [
{
"additionalProp1": "string"
}
]
},
"status": {
"permalink": "string", // 固定链接
"excerpt": "string", // 最终生成的摘要
"inProgress": true,
"commentsCount": 0, // 评论数
"contributors": [ // 贡献者名称Contributor 的 metadata.name 的集合
"string"
]
},
"categories": "List<#CategoryVo>", // 分类的集合
"tags": "List<#TagVo>", // 标签的集合
"contributors": "List<#Contributor>", // 贡献者的集合
"owner": "#Contributor", // 创建者
"stats": {
"visit": 0, // 访问数量
"upvote": 0, // 点赞数量
"comment": 0 // 评论数量
}
}
```

@ -0,0 +1,56 @@
```json title="ListedSinglePageVo"
{
"metadata": {
"name": "string", // 唯一标识
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T14:31:00.876Z" // 创建时间
},
"spec": {
"title": "string", // 标题
"slug": "string", // 别名,通常用于生成 status.permalink
"releaseSnapshot": "string",
"headSnapshot": "string",
"baseSnapshot": "string",
"owner": "string", // 创建者名称,即 Contributor 的 metadata.name非显示名称
"template": "string", // 自定义渲染模板
"cover": "string", // 封面图
"deleted": false,
"publish": false,
"publishTime": "2022-11-20T14:31:00.876Z", // 发布时间
"pinned": false, // 是否置顶
"allowComment": true, // 是否允许评论
"visible": "PUBLIC",
"priority": 0,
"excerpt": {
"autoGenerate": true, // 是否自动生成摘要
"raw": "string" // 摘要内容
},
"htmlMetas": [
{
"additionalProp1": "string"
}
]
},
"status": {
"permalink": "string", // 固定链接
"excerpt": "string", // 最终生成的摘要
"inProgress": true,
"commentsCount": 0, // 评论数
"contributors": [ // 贡献者名称Contributor 的 metadata.name 的集合
"string"
]
},
"stats": {
"visit": 0, // 访问数量
"upvote": 0, // 点赞数量
"comment": 0 // 评论数量
},
"contributors": "List<#Contributor>", // 贡献者的集合
"owner": "#Contributor" // 创建者
}
```

@ -0,0 +1,34 @@
```json title="MenuItemVo"
{
"metadata": {
"name": "string", // 唯一标识
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T14:44:58.984Z", // 创建时间
},
"spec": {
"displayName": "string", // 显示名称,但是不要直接使用这个字段进行显示,最终字段为 status.displayName
"href": "string", // 链接,同样不要直接使用这个字段,最终字段为 status.href
"priority": 0, // 排序字段
"children": [ // 下级菜单项,菜单项的 metadata.name 集合
"string"
],
"targetRef": { // 与其他资源比如文章的关联,一般无需直接使用
"group": "string",
"version": "string",
"kind": "string",
"name": "string"
}
},
"status": {
"displayName": "string", // 显示名称
"href": "string" // 链接
},
"children": "List<#MenuItemVo>", // 下级菜单项MenuItemVo 的集合
"parentName": "string",
}
```

@ -0,0 +1,21 @@
```json title="MenuVo"
{
"metadata": {
"name": "string", // 唯一标识
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T14:44:58.984Z", // 创建时间
},
"spec": {
"displayName": "string", // 显示名称
"menuItems": [ // 菜单的菜单项名称集合,即 MenuItem 的 metadata.name 的集合
"string"
]
},
"menuItems": "List<#MenuItemVo>" // 菜单项的集合
}
```

@ -0,0 +1,65 @@
```json title="PostVo"
{
"metadata": {
"name": "string", // 唯一标识
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T12:45:43.888Z", // 创建时间
},
"spec": {
"title": "string", // 标题
"slug": "string", // 别名,通常用于生成 status.permalink
"releaseSnapshot": "string",
"headSnapshot": "string",
"baseSnapshot": "string",
"owner": "string", // 创建者名称,即 Contributor 的 metadata.name非显示名称
"template": "string", // 自定义渲染模板
"cover": "string", // 封面图
"deleted": false,
"publish": false,
"publishTime": "2022-11-20T13:06:38.505Z", // 发布时间
"pinned": false, // 是否置顶
"allowComment": true, // 是否允许评论
"visible": "PUBLIC",
"priority": 0,
"excerpt": {
"autoGenerate": true, // 是否自动生成摘要
"raw": "string" // 摘要内容
},
"categories": [ // 分类的名称集合,即 Category 的 metadata.name 的集合
"string"
],
"tags": [ // 标签的名称集合,即 Tag 的 metadata.name 的集合
"string"
],
"htmlMetas": [
{
"additionalProp1": "string"
}
]
},
"status": {
"permalink": "string", // 固定链接
"excerpt": "string", // 最终生成的摘要
"inProgress": true,
"commentsCount": 0, // 评论数
"contributors": [ // 贡献者名称Contributor 的 metadata.name 的集合
"string"
]
},
"categories": "List<#CategoryVo>", // 分类的集合
"tags": "List<#TagVo>", // 标签的集合
"contributors": "List<#Contributor>", // 贡献者的集合
"owner": "#Contributor", // 创建者
"stats": {
"visit": 0, // 访问数量
"upvote": 0, // 点赞数量
"comment": 0 // 评论数量
},
"content": "#ContentVo" // 内容
}
```

@ -0,0 +1,42 @@
```json title="ReplyVo"
{
"metadata": {
"name": "string", // 唯一标识
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T12:25:32.357Z" // 创建时间
},
"spec": {
"raw": "string", // 原始文本,一般用于给编辑器使用
"content": "string", // 最终渲染的文本
"owner": { // 创建者关联
"kind": "string",
"name": "string",
"displayName": "string",
"annotations": {
"additionalProp1": "string"
}
},
"userAgent": "string", // 评论者 UserAgent 信息
"ipAddress": "string", // 评论者 IP 地址
"priority": 0, // 排序字段
"top": false, // 是否置顶
"allowNotification": true, // 是否允许通知
"approved": false,
"hidden": false,
"commentName": "string", // 被回复的评论名称,即 Comment 的 metadata.name
"quoteReply": "string" // 被回复的回复名称,即 Reply 的 metadata.name
},
"owner": { // 创建者信息
"kind": "string",
"name": "string",
"displayName": "string",
"avatar": "string",
"email": "string"
}
}
```

@ -0,0 +1,57 @@
```json title="SinglePageVo"
{
"metadata": {
"name": "string", // 唯一标识
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T14:29:44.601Z", // 创建时间
},
"spec": {
"title": "string", // 标题
"slug": "string", // 别名,通常用于生成 status.permalink
"releaseSnapshot": "string",
"headSnapshot": "string",
"baseSnapshot": "string",
"owner": "string", // 创建者名称,即 Contributor 的 metadata.name非显示名称
"template": "string", // 自定义渲染模板
"cover": "string", // 封面图
"deleted": false,
"publish": false,
"publishTime": "2022-11-20T13:06:38.505Z", // 发布时间
"pinned": false, // 是否置顶
"allowComment": true, // 是否允许评论
"visible": "PUBLIC",
"priority": 0,
"excerpt": {
"autoGenerate": true, // 是否自动生成摘要
"raw": "string" // 摘要内容
},
"htmlMetas": [
{
"additionalProp1": "string"
}
]
},
"status": {
"permalink": "string", // 固定链接
"excerpt": "string", // 最终生成的摘要
"inProgress": true,
"commentsCount": 0, // 评论数
"contributors": [ // 贡献者名称Contributor 的 metadata.name 的集合
"string"
]
},
"stats": {
"visit": 0, // 访问数量
"upvote": 0, // 点赞数量
"comment": 0 // 评论数量
},
"contributors": "List<#Contributor>", // 贡献者的集合
"owner": "#Contributor", // 创建者
"content": "#ContentVo" // 内容
}
```

@ -0,0 +1,26 @@
```json title="TagVo"
{
"metadata": {
"name": "string", // 唯一标识
"labels": {
"additionalProp1": "string"
},
"annotations": {
"additionalProp1": "string"
},
"creationTimestamp": "2022-11-20T13:06:38.512Z", // 创建时间
},
"spec": {
"displayName": "string", // 显示名称
"slug": "string", // 别名,通常用于生成 status.permalink
"color": "#F9fEB1", // 背景颜色
"cover": "string" // 封面图
},
"status": {
"permalink": "string", // 固定链接
"visiblePostCount": 0, // 已发布文章数
"postCount": 0 // 文章数
},
"postCount": 0
}
```
Loading…
Cancel
Save