编辑汇合页面标题以添加其ID?

时间:2012-04-11 13:35:48

标签: macros confluence

我正在尝试在汇合处为页面标题添加唯一ID。

我设法添加了一个用户宏,它使用jQuery添加页面ID&标题的字符串前缀;

## @param _prefix:title=Prefix|type=string|required=true|desc=Prefix for the page ID

<script type="text/javascript">
jQuery("document").ready(function() {
  if ("${param_prefix}" != "${_prefix}")
    jQuery('#title-text a').prepend('${param_prefix}', '$content.getIdAsString()', ' ');
});
</script>

但是我希望这能够实际编辑标题,而不仅仅是在运行时添加。它需要始终保持一致,允许该ID成为搜索术语&amp;出现在所有菜单等中。

我找不到任何暗示这甚至是可能的东西,但肯定是!?

2 个答案:

答案 0 :(得分:0)

$ content.setTitle(“newtitle”)应该有效。但!你必须确保这只发生一次,否则每次渲染这个宏时你的标题都会反复出现。我想你可能会检查标题是否已经以你的前缀开头。然后你可能想要添加更改前缀的处理。

有关详细信息,请参阅http://confluence.atlassian.com/display/CONF35/Guide+to+User+Macro+Templates#GuidetoUserMacroTemplates-OtherObjectsAvailabletoyourMacro

话虽这么说,这似乎是解决你遇到的任何问题的一种非常好的方式。我建议重新考虑这是否真的是你想做的事。

答案 1 :(得分:0)

您可以使用实际的Confluence页面ID或页面微小链接,而不是生成您自己的ID。这两个都是静态的。

在任何Confluence页面上,输入“k”以查看超链接。您可能会惊讶地发现它还包含一个小链接。即使您移动并重命名页面(https://jira.atlassian.com/browse/CONF-27049),Atlassian也会确认微小链接保持不变。这是使用固定URL引用同一页面的一致方法。另一种方法是使用PageID中内置的Confluence。

Confluence知识库:如何获取Confluence页面ID https://confluence.atlassian.com/confkb/how-to-get-confluence-page-id-648380445.html

  • 确保当前用户具有查看和编辑权限的权限 页面导航到特定页面
  • 点击编辑按钮进入编辑模式或按'e'键

进入编辑模式后,地址栏中的URL将会更改 页面ID将显示为URL中的参数,例如:进入编辑模式时,URL将更改为http://my.domain.com/pages/editpage.action?pageId=1540132 在上面的示例中, 1540132 是页面ID。

使用宏获取页面ID: ContentEntityObject contentEntityObject = conversionContext.getEntity(); System.out.println(“pageId:”+ contentEntityObject.getId());

更改标题:content.setTitle(“newtitle”)。 请记住,在设置title = title + page ID之前,请检查标题是否包含页面ID。