Finder 数据接口与嵌入示例

适用范围:当前适配 Halo 2.26.0 及以上版本的言答Issue。旧版插件的界面与构建方式可能不同。

Finder 名称为 issueFinder、issueSubjectFinder。可用方法:

issueSubjectFinder.get(subjectName)
issueSubjectFinder.getSubjectBasicInfo(subjectName)
issueSubjectFinder.getSubjectStats(subjectName)
issueFinder.get(issueName)
issueFinder.list(page, size, subjectName, issueState)
issueFinder.listByLabel(page, size, labelName, subjectName)
issueFinder.listAllIssueComments(issueName)

issueState 支持 PROGRESS、AWAIT、CLOSED、all;分页从 1 开始。例如在文章侧栏仅展示链接,可完全不加载插件的 CSS/JS:

<ul th:with="result=${issueFinder.list(1, 5, '替换成实际subject名称', 'PROGRESS')}">
    <li th:each="item : ${result.items}">
        <a th:href="${'/subject/' + item.spec.subjectName + '/issues/' + item.metadata.name}" th:text="${item.spec.title}"></a>
    </li>
</ul>

此类调用依赖插件已启用。普通文章、首页不会自动获得插件路由模型;不能只插入完整创建/详情片段便期望所有变量存在。跨页面展示建议使用 Finder 返回数据自行渲染链接或摘要。