Confluence Cloud 匹配空间标题/Key规则的链接列表展示方案问询
适配Confluence Cloud的空间前缀筛选列表实现方案
以下方案按优先级从高到低排列,优先覆盖新旧编辑器通用需求:
方案1:自定义HTML宏(新旧编辑器通用,最优推荐)
该方案依赖Confluence原生开放的REST API实现,不需要额外安装第三方插件,匹配规则完全可自定义:
- 先向Confluence管理员申请开通自定义HTML宏的使用权限,管控严格的企业可申请仅开放给指定页面的编辑权限
- 在目标页面插入HTML宏,填入如下代码,可按需修改正则规则适配不同前缀要求:
<script> // 匹配规则可自行修改,示例为匹配space key或空间标题以RD开头的空间,支持任意正则规则 const matchRule = /^RD.*/i; // 调用官方API拉取当前登录用户可见的全量空间,limit参数可按企业空间总量调整 fetch("/wiki/rest/api/space?limit=1000", { credentials: "same-origin", headers: { "Accept": "application/json" } }) .then(res => res.json()) .then(data => { // 按规则过滤符合要求的空间 const validSpaces = data.results.filter(space => { return matchRule.test(space.key) || matchRule.test(space.name); }); // 生成和原生Children Display宏完全一致的列表样式 let listHtml = `<ul class="childpages-macro">`; validSpaces.forEach(space => { listHtml += `<li><a href="/wiki/spaces/${space.key}" target="_blank">${space.name} (${space.key})</a></li>`; }); listHtml += `</ul>`; document.currentScript.parentElement.innerHTML = listHtml; }) </script>
- 优点:支持任意正则匹配规则,无匹配误判,展示效果和原生宏一致,新旧编辑器全兼容,权限逻辑和Confluence原生一致不会越权展示
- 缺点:需要管理员开放HTML宏权限
方案2:第三方Space List类插件(新旧编辑器通用,次选)
如果企业允许采购第三方插件,可选择Atlassian市场内的空间列表类插件:
- 这类插件原生支持按space key前缀、空间标题前缀筛选,部分支持正则匹配
- 配置时直接在插件参数内填写匹配规则(如
RD*)即可自动生成样式统一的空间列表 - 优点:配置零代码,维护成本低
- 缺点:需要付费采购,走企业内部插件审批流程
方案3:CQL字段限定搜索折中方案(无权限时备选)
如果拿不到HTML宏权限也无法采购插件,可通过限定搜索字段解决之前的误判问题:
- 旧版编辑器:使用Search Result Macro,搜索关键词填写
space.key:RD*,限定仅搜索space key字段,不会命中空间标题里包含子串的其他部门空间 - 新版编辑器:使用CQL Query插件,填写CQL语句为
space.key ~ "RD*",配置展示字段仅保留空间名称和链接即可 - 优点:不需要额外权限或插件,可快速实现
- 缺点:通配符能力有限,仅支持简单前缀匹配,展示样式需要手动调整
内容的提问来源于stack exchange,提问作者fsteff
相关产品推荐
相关产品推荐

