菜单
本页目录

getByName(forumPostName)

forumPostFinder.getByName(forumPostName);

描述

根据 metadata.name 获取帖子。

参数

  1. forumPostName:string - 帖子的唯一标识 metadata.name

返回值

#ForumPostVo

示例

<div th:with="forumPost = ${forumPostFinder.getByName('forum-forumPost-foo')}">
  <a th:href="@{${forumPost.status.permalink}}" th:text="${forumPost.spec.title}"></a>
</div>

content(forumPostName)

forumPostFinder.content(forumPostName);

描述

根据帖子的 metadata.name 单独获取帖子内容。

参数

  1. forumPostName:string - 帖子的唯一标识 metadata.name

返回值

#ContentVo

示例

<div th:with="content = ${forumPostFinder.content('forum-forumPost-foo')}">
  <div th:utext="${content.content}"></div>
</div>

cursor(forumPostName)

forumPostFinder.cursor(forumPostName);

描述

根据帖子的 metadata.name 获取相邻的帖子(上一篇 / 下一篇)。

参数

  1. forumPostName:string - 帖子的唯一标识 metadata.name

返回值

#NavigationForumPostVo

示例

<div th:with="forumPostCursor = ${forumPostFinder.cursor(forumPost.metadata.name)}">
  <a
    th:if="${forumPostCursor.hasPrevious()}"
    th:href="@{${forumPostCursor.previous.status.permalink}}"
  >
    <span th:text="${forumPostCursor.previous.spec.title}"></span>
  </a>
  <a
    th:if="${forumPostCursor.hasNext()}"
    th:href="@{${forumPostCursor.next.status.permalink}}"
  >
    <span th:text="${forumPostCursor.next.spec.title}"></span>
  </a>
</div>

listAll()

forumPostFinder.listAll();

描述

获取所有帖子。

参数

返回值

List<#ListedForumPostVo>

示例

<ul th:with="forumPosts = ${forumPostFinder.listAll()}">
  <li th:each="forumPost : ${forumPosts}">
    <a th:href="@{${forumPost.status.permalink}}" th:text="${forumPost.spec.title}"></a>
  </li>
</ul>

list(page,size)

forumPostFinder.list(page, size);

描述

根据分页参数获取帖子列表。

参数

  1. page:int - 分页页码,从 1 开始
  2. size:int - 分页条数

返回值

#ListResult<ListedForumPostVo>

示例

<ul th:with="forumPosts = ${forumPostFinder.list(1,10)}">
  <li th:each="forumPost : ${forumPosts.items}">
    <a th:href="@{${forumPost.status.permalink}}" th:text="${forumPost.spec.title}"></a>
  </li>
</ul>

list(page,size,type)

forumPostFinder.list(page, size, type);

描述

根据类型标识和分页参数获取帖子列表。

参数

  1. page:int - 分页页码,从 1 开始
  2. size:int - 分页条数
  3. type:string - 类型标识

返回值

#ListResult<ListedForumPostVo>

示例


{
  "essence",                                   // 精华
  "question",                                  // 问答
  "vote",                                      // 投票
}
<ul th:with="forumPosts = ${forumPostFinder.list(1,10,'essence')}">
  <li th:each="forumPost : ${forumPosts.items}">
    <a th:href="@{${forumPost.status.permalink}}" th:text="${forumPost.spec.title}"></a>
  </li>
</ul>

listByPlate(page,size,plateName)

forumPostFinder.listByPlate(page, size, plateName);

描述

根据板块标识和分页参数获取帖子列表。

参数

  1. page:int - 分页页码,从 1 开始
  2. size:int - 分页条数
  3. plateName:string - 帖子板块唯一标识 metadata.name

返回值

#ListResult<ListedForumPostVo>

示例

<ul th:with="forumPosts = ${forumPostFinder.listByPlate(1,10,'forum-plate-foo')}">
  <li th:each="forumPost : ${forumPosts.items}">
    <a th:href="@{${forumPost.status.permalink}}" th:text="${forumPost.spec.title}"></a>
  </li>
</ul>

listByTopic(page,size,topic)

forumPostFinder.listByTopic(page, size, topic);

描述

根据话题标识和分页参数获取帖子列表。

参数

  1. page:int - 分页页码,从 1 开始
  2. size:int - 分页条数
  3. topic:string - 帖子话题唯一标识 metadata.name

返回值

#ListResult<ListedForumPostVo>

示例

<ul th:with="forumPosts = ${forumPostFinder.listByTopic(1,10,'forum-topic-foo')}">
  <li th:each="forumPost : ${forumPosts.items}">
    <a th:href="@{${forumPost.status.permalink}}" th:text="${forumPost.spec.title}"></a>
  </li>
</ul>

listByTag(page,size,tag)

forumPostFinder.listByTag(page, size, tag);

描述

根据标签标识和分页参数获取帖子列表。

参数

  1. page:int - 分页页码,从 1 开始
  2. size:int - 分页条数
  3. tag:string - 帖子标签唯一标识 metadata.name

返回值

#ListResult<ListedForumPostVo>

示例

<ul th:with="forumPosts = ${forumPostFinder.listByTag(1,10,'forum-tag-foo')}">
  <li th:each="forumPost : ${forumPosts.items}">
    <a th:href="@{${forumPost.status.permalink}}" th:text="${forumPost.spec.title}"></a>
  </li>
</ul>

listByOwner(page,size,owner)

forumPostFinder.listByOwner(page, size, owner);

描述

根据创建者用户名和分页参数获取帖子列表。

参数

  1. page:int - 分页页码,从 1 开始
  2. size:int - 分页条数
  3. owner:string - 创建者用户名 name

返回值

#ListResult<ListedForumPostVo>

示例

<ul th:with="forumPosts = ${forumPostFinder.listByOwner(1,10,'admin')}">
  <li th:each="forumPost : ${forumPosts.items}">
    <a th:href="@{${forumPost.status.permalink}}" th:text="${forumPost.spec.title}"></a>
  </li>
</ul>

类型定义

TopicVo

{
  "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"                                   // 封面图
  },
  "status": {
    "permalink": "string",                              // 固定链接
    "visibleForumPostCount": 0,                         // 已发布帖子数
    "forumPostCount": 0                                 // 帖子数
  },
  "forumPostCount": 0
}

TagVo

{
  "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"                                   // 封面图
  },
  "status": {
    "permalink": "string",                              // 固定链接
    "visibleForumPostCount": 0,                         // 已发布帖子数
    "forumPostCount": 0                                 // 帖子数
  },
  "forumPostCount": 0
}

PlateVo

{
  "metadata": {
    "name": "string",                                         // 唯一标识
    "labels": {
      "additionalProp1": "string"
    },
    "annotations": {
      "additionalProp1": "string"
    },
    "creationTimestamp": "2024-08-19T16:04:57.998191969Z",    // 创建时间
  },
  "spec": {
    "displayName": "string",                                  // 显示名称
    "slug": "string",                                         // 别名,通常用于生成 status.permalink
    "description": "string",                                  // 描述
    "cover": "string",                                        // 封面图
    "owner": "string",
    "deleted": false,
    "publish": true,                                          
    "publishTime": "2024-08-19T16:04:57.998191969Z",          // 发布时间
    "visible": "PUBLIC",
    "priority": 0,
    "categories": [                                           // 分类的名称集合,即 Category 的 metadata.name 的集合
        "string"
    ]
  },
  "status": {
    "permalink": "string",                                    // 固定链接
    "visibleForumPostCount": 0,                               // 已发布帖子数
    "forumPostCount": 0,                                      // 帖子数
    "contributors": [                                         // 版主名称,Contributor 的 metadata.name 的集合
        "string"
    ],
    "lastModifyTime": "2022-11-20T13:06:38.505Z",             // 最后修改时间
  },
  "categories": "List<#PlateCategoryVo>",                     // 分类的集合
  "contributors": "List<#ContributorVo>",                     // 版主的集合
  "owner": "#ContributorVo",                                  // 创建者
  "forumPostCount": 0
}

ForumPostType

enum Target {
  DEFAULT,                                     // 标准
  QUESTION,                                    // 提问
}

ForumPostPinned

{
  0,                                     // 不置顶
  1,                                     // 置顶
  2,                                     // 超级置顶
  3,                                     // 全局置顶
}

ContributorVo

{
  "name": "string",                                   // 用户名
  "displayName": "string",                            // 显示名称
  "avatar": "string",                                 // 头像
  "bio": "string",                                    // 描述
  "permalink": "string",                              // 作者的文章归档页面链接
  "metadata": {
    "name": "string",                                 // 唯一标识
    "labels": {
      "additionalProp1": "string"
    },
    "annotations": {
      "additionalProp1": "string"
    },
    "creationTimestamp": "2022-11-20T13:06:38.512Z",  // 创建时间
  }
}

ForumPostVo

{
  "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",                                  // 创建者名称,即 ContributorVo 的 metadata.name,非显示名称
    "cover": "string",                                  // 封面图
    "video": "string",                                  // 视频
    "deleted": false,
    "publish": false,
    "publishTime": "2022-11-20T13:06:38.505Z",          // 发布时间
    "pinned": "ForumPostPinned",                        // 置顶
    "allowComment": true,                               // 是否允许评论
    "essence": true,                                    // 精华
    "type": "#ForumPostType",                           // 类型
    "visible": "PUBLIC",
    "priority": 0,
    "excerpt": {
      "autoGenerate": true,                             // 是否自动生成摘要
      "raw": "string"                                   // 摘要内容
    },
    "plate": "#PlateVo",                                // 板块的名称,即 Plate 的 metadata.name 
    "topics": [                                         // 话题的名称集合,即 Topic 的 metadata.name 的集合
      "string"
    ],
    "tags": [                                           // 标签的名称集合,即 Tag 的 metadata.name 的集合
      "string"
    ],
    "htmlMetas": [
      {
        "additionalProp1": "string"
      }
    ]
  },
  "status": {
    "permalink": "string",                              // 固定链接
    "excerpt": "string",                                // 最终生成的摘要
    "inProgress": true,
    "lastModifyTime": "2022-11-20T13:06:38.505Z",       // 最后修改时间
    "lastReplyTime": "2022-11-20T13:06:38.505Z",        // 最后回复时间
    "commentsCount": 0,                                 // 评论数
    "contributors": [                                   // 贡献者名称,Contributor 的 metadata.name 的集合
      "string"
    ]
  },
  "plate": "List<#PlateVo>",                            // 板块
  "topics": "List<#TopicVo>",                           // 话题的集合
  "tags": "List<#TagVo>",                               // 标签的集合
  "contributors": "List<#ContributorVo>",               // 贡献者的集合
  "owner": "#ContributorVo",                            // 创建者
  "stats": {
    "visit": 0,                                         // 访问数量
    "upvote": 0,                                        // 点赞数量
    "downvote": 0,                                      // 反对数量
    "favorite": 0,                                      // 收藏数量
    "comment": 0                                        // 评论数量
  },
  "content": "#ContentVo"                               // 内容
}

ContentVo

{
  "raw": "string",                                   // 原始文本,一般用于给编辑器使用
  "content": "string"                                // 最终渲染的文本
}
{
  "previous": "#ForumPostVo",                                   // 上一篇帖子
  "current": "#ForumPostVo",                                    // 当前帖子
  "next": "#ForumPostVo"                                        // 下一篇帖子
}

ListedForumPostVo

{
  "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",                                  // 创建者名称,即 ContributorVo 的 metadata.name,非显示名称
    "cover": "string",                                  // 封面图
    "video": "string",                                  // 视频
    "deleted": false,
    "publish": false,
    "publishTime": "2022-11-20T13:06:38.505Z",          // 发布时间
    "pinned": "ForumPostPinned",                        // 置顶
    "allowComment": true,                               // 是否允许评论
    "essence": true,                                    // 精华
    "type": "#ForumPostType",                           // 类型
    "visible": "PUBLIC",
    "priority": 0,
    "excerpt": {
      "autoGenerate": true,                             // 是否自动生成摘要
      "raw": "string"                                   // 摘要内容
    },
    "plate": "#PlateVo",                                // 分类的名称集合,即 Plate 的 metadata.name 的集合
    "topics": [                                         // 话题的名称集合,即 Topic 的 metadata.name 的集合
      "string"
    ],
    "tags": [                                           // 标签的名称集合,即 Tag 的 metadata.name 的集合
      "string"
    ],
    "htmlMetas": [
      {
        "additionalProp1": "string"
      }
    ]
  },
  "status": {
    "permalink": "string",                              // 固定链接
    "excerpt": "string",                                // 最终生成的摘要
    "inProgress": true,
    "lastModifyTime": "2022-11-20T13:06:38.505Z",       // 最后修改时间
    "lastReplyTime": "2022-11-20T13:06:38.505Z",        // 最后回复时间
    "commentsCount": 0,                                 // 评论数
    "contributors": [                                   // 贡献者名称,Contributor 的 metadata.name 的集合
      "string"
    ]
  },
  "plate": "List<#PlateVo>",                            // 板块
  "topics": "List<#TopicVo>",                           // 话题的集合
  "tags": "List<#TagVo>",                               // 标签的集合
  "contributors": "List<#ContributorVo>",               // 贡献者的集合
  "owner": "#ContributorVo",                            // 创建者
  "stats": {
    "visit": 0,                                         // 访问数量
    "upvote": 0,                                        // 点赞数量
    "downvote": 0,                                      // 反对数量
    "favorite": 0,                                      // 收藏数量
    "comment": 0                                        // 评论数量
  },
}

ListResult<ListedForumPostVo>

{
  "page": 0,                                   // 当前页码
  "size": 0,                                   // 每页条数
  "total": 0,                                  // 总条数
  "items": "List<#ListedForumPostVo>",              // 帖子列表数据
  "first": true,                               // 是否为第一页
  "last": true,                                // 是否为最后一页
  "hasNext": true,                             // 是否有下一页
  "hasPrevious": true,                         // 是否有上一页
  "totalPages": 0                              // 总页数
}