1

我正在尝试为融合的页面标题添加唯一 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 成为搜索词并出现在所有菜单等中。

我找不到任何表明这是可能的,但它一定是,当然!?

4

2 回答 2

0

$content.setTitle("newtitle") 应该可以工作。但!您必须确保这只发生一次,否则每次呈现此宏时,您的标题都会重复地附加在您的文本前面。我想您可能会检查标题是否已经以您的前缀开头。然后您可能想要添加更改前缀的处理。

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

话虽如此,这似乎是解决您遇到的任何问题的一种非常笨拙的方法。我建议重新考虑这是否真的是你想要做的。

于 2012-04-11T21:36:15.750 回答
0

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

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

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 之前检查 title 是否包含页面 ID。

于 2016-09-30T21:12:05.813 回答