我正在使用Confluence进行文档编写,其中包括终端用户文档和内部开发文档。
Confluence的问题在于它不允许有重复的页面标题,因为URL只包含标题而不是整个树结构。
是否有任何方法可以更改这种行为?
有一个插件可以做到这一点,而且功能很多。 "功能很多" 这一部分是问题所在,因为该插件相当昂贵,尤其是如果只使用其中的一个功能 (https://marketplace.atlassian.com/plugins/com.k15t.scroll.scroll-versions)。
我正在使用Confluence进行文档编写,其中包括终端用户文档和内部开发文档。
Confluence的问题在于它不允许有重复的页面标题,因为URL只包含标题而不是整个树结构。
是否有任何方法可以更改这种行为?
有一个插件可以做到这一点,而且功能很多。 "功能很多" 这一部分是问题所在,因为该插件相当昂贵,尤其是如果只使用其中的一个功能 (https://marketplace.atlassian.com/plugins/com.k15t.scroll.scroll-versions)。
当我们在维基中添加“虚拟员工文件夹”时,我们遇到了相同的问题。我们想要构建以下页面结构:
Employee 1
Personal Data
Contract Data
Training
...
Employee 2
Personal Data
Contract Data
Training
...
Employee X
Personal Data
Contract Data
Training
...
我们用了一个有点脏但非常有效的解决方法:首先通过添加特定于员工的前缀使页面名称唯一:
Employee 1
Employee 1 - Personal Data
Employee 1 - Contract Data
Employee 1 - Training
...
Employee 2
Employee 2 - Personal Data
Employee 2 - Contract Data
Employee 2 - Training
...
Employee X
Employee X - Personal Data
Employee X - Contract Data
Employee X - Training
...
我们定义了自己的“标签”来标记页面标题中不应出现在Confluence前端的部分:Employee 1
[hide]Employee 1 - [/hide]Personal Data
[hide]Employee 1 - [/hide]Contract Data
[hide]Employee 1 - [/hide]Training
...
Employee 2
[hide]Employee 2 - [/hide]Personal Data
[hide]Employee 2 - [/hide]Contract Data
[hide]Employee 2 - [/hide]Training
...
Employee X
[hide]Employee X - [/hide]Personal Data
[hide]Employee X - [/hide]Contract Data
[hide]Employee X - [/hide]Training
...
剩余的部分需要一点 JavaScript 魔法,嵌入到 Confluence 管理员 > 自定义 HTML 中:
<script>(function() {
var expr = /\[hide\].*?\[\/hide\]/g,
blacklist = ['textarea', 'form', 'pre', 'script', 'style'];
$(document)
.ajaxSuccess(hideTextParts)
.on('ready', hideTextParts);
function isChildOfBlacklistedTag(node) {
while(node = node.parentNode) {
if (node.nodeType === Node.ELEMENT_NODE && blacklist.indexOf(node.nodeName.toLowerCase()) > -1) {
return true;
}
}
return false;
}
function hideTextParts() {
var root = document,
walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, null, false),
node;
while (node = walker.nextNode()) {
console.info(node.parentNode);
if (expr.test(node.textContent) && !isChildOfBlacklistedTag(node)) {
node.textContent = node.textContent.replace(expr, " ");
}
};
}
})();
</script>
黑名单确保“标签”不会在需要显示的位置隐藏。例如,在页面编辑屏幕的标题字段中以及在空间管理中的CSS编辑字段中。您可能希望扩展到
黑名單可確保"標籤"不在需要顯示的地方被隱藏。例如在頁面編輯屏幕的標題欄位中以及在空間管理中的CSS編輯欄位中。您可能希望擴展至
虽然我知道有些晚了,但是如果还有其他人需要这个解决方案,我的解决方案不需要任何JavaScript诡计或特殊插件,只需要一个看不见的ASCII代码。
我在标题末尾添加ASCII字符255(或者根据需要添加多个)。它显示为空格,因此不会出现在标题中。只有在您不关心将标题作为URL的一部分时,这才是有效的选项,因为Confluence将通过页面ID链接到该页面(例如:https://confluence.yourcompany.com/pages/viewpage.action?pageId=44335161)。
如果您不知道如何输入ASCII代码,只需在数字键盘上按住Alt键,然后键入255(或任何其他ASCII代码)。
MongoDB
Installation
Linux
Windows
Mac
Security
Data Model