这里记录配置Confluence的过程。通过右上角的按钮进入Confluence的站点管理页面,后继除了空间独有的设置项外,其他大部分的通用选项都从这里进行配置。

配置站点标题和基本URL

这里注意一点,站点的基本URL对登录影响很大,如果不从基本URL进行登录,那么Confluence会提示基本URL不匹配并要求更新基本URL。比如,虽然从https://midlane.top/confluence/https://www.midlane.top/confluence/都可以访问到本网站,但这俩对应不同的基本URL。实际需要根据情况配置基本URL,再从基本URL进行登录。基本URL不影响访问用户,访客只需要IP地址解析正确,可以从任何URL访问Confluence页面。

配置时间格式

Confluence默认的时间格式是12小时制,这里改成24小时制,修改“格式和国际化设置->时间格式”,将默认的H:mm a 改成HH:mm即可。

配置全局样式表

这里修改的是全局的页面样式,主要调整默认的字体和大小,以及优化等宽字体、也就是行内代码的显示风格,格式参考思源笔记,修改“外观->样式表”,在全局样式表中增加以下内容:

/* 调整字体和大小,优化中文显示效果 */
.wiki-content {
	font-family: "Helvetica Neue", "Luxi Sans", "DejaVu Sans", "Hiragino Sans GB", "Microsoft Yahei", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols";
	font-variant-ligatures: no-common-ligatures !important;
	font-size: 16px;
	text-rendering: optimizeLegibility !important;
}

/* 优化等宽字体,也就是行内代码的显示效果 */
code {
    padding: 1px 5px 1px 5px; 
    font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;
    background-color: #eeeeee;
}

除了全局样式表,Confluence中的每个空间也可以单独设置样式,方法是在“空间管理->外观->样式表”中进行修改,修改方法类似。

禁用右侧目录随页面滚动

Confluence可以通过分栏,并在右侧插入目录宏的方式实现右侧目录显示功能,但坑爹的是这个目录是随页面滚动的,而我们在浏览时一般都需要目录固定以便随时跳转,这里通过全局样式表实现目录固定功能,参考上一节,在全局样式表中新增以下内容:

/* 固定右侧目录,使之不随页面滚动 */
div.cell.aside>.innerCell>.toc-macro {
	position:fixed;
	top:100px;
	height: 75%;
	overflow-y:scroll !important;
	overscroll-behavior: contain !important;
}
/* 不显示目录的滚动条 */
.toc-macro::-webkit-scrollbar {display:none}

禁用保护管理员事务

Confluence默认对管理员相关的功能启用了管理员事务保护,也就是管理员即使已经登录了,在操作管理员相关功能时,也需要再次登录一次,如果要禁用的话,在“用户&安全→安全配置”中,去掉默认勾选的保护管理员事务即可。

修改synchrony最大堆内存

synchrony是Confluence用协同编辑的功能,默认堆内存为2G,这里可以修改成1G,或是禁用掉。

参考:

https://confluence.atlassian.com/doc/configuring-synchrony-858772125.html
https://confluence.atlassian.com/doc/recognized-system-properties-190430.html
https://confluence.atlassian.com/doc/configuring-system-properties-168002854.html

编辑/opt/atlassian/confluence/bin/setenv.sh文件,未尾增加如下内容:

重启服务,修改效果可以从“站点管理→协同编辑”进行查看,如下:

如果没有协同编辑需求,那么可以把这个功能关掉,这样在编辑页面还会出现预览选项,可以先预览再发布。

调整备份路径

参考: https://confluence.atlassian.com/conf710/configuring-backups-1031840918.html#ConfiguringBackups-configoption 

自定义HTML

Confluence最强大的定制功能是自定义HTML,用户可以通过自定义HTML为Confluence中的每个页面都添加HTML代码,从而实现源码级定制。

自定义HTML可以插入到页面的三个位置中:

  • HEAD尾部
  • BODY头部
  • BODY尾部

实际使用中,HEAD尾部一般插入JavaScript代码和CSS引用,BODY尾部一般插入自定义的HTML元素。下面讲解如果通过自定义HTML为页面增加更加丰富的定制功能。

使用JavaScript

参考:https://confluence.atlassian.com/confkb/how-to-use-javascript-in-confluence-313458839.html

这里需要注意的是,Confluence自带了JQuery,这就为操作页面元素提供了巨大的便利。虽然可以在HEAD尾部通过<script>标签引入标准的JQuery库,但强烈推荐使用Confluence内置的JQuery,否则可能出现意想不到的问题,比如本站在尝试引入标准JQuery库和Bootstrap之后,出现过空间目录不显示内容的情况。

Confluence的JQuery通过AJS.$的方式来使用,以下是一个示例:

AJS.$('div.foo');

如果想要通过AJS来执行代码,比如函数,那么必须将代码放到toInit函数中执行,这样就可以保证代码一定是在AJS被初始化之后再调用,如下:

AJS.toInit(function(){
	console.log("hello");
});

导航栏添加自定义链接

参考:https://confluence.atlassian.com/confkb/how-do-i-add-links-to-confluence-5-x-s-top-global-header-navigation-bar-358908020.html

这里在导航栏上添加一个“空间目录”链接以直达空间目录列表,并将原来的“空间”下拉列表删除,方法如下,在HEAD尾部增加以下代码:

<script>
    AJS.toInit(function(){
        AJS.$('.aui-header-primary .aui-nav').append('<li><a href="/confluence/spacedirectory/view.action" class=" aui-nav-imagelink">空间目录</a></li>');
        AJS.$('.aui-header-primary .aui-nav li').first().css("display", "none");
    });
</script>

效果如下:

自定义页脚并注明备案号

这里调整一下Confluence的默认页脚,删除不需要的信息,把备案号和工信部网站备案查询的链接加上,方法如下,在HEAD尾部增加以下代码:

<style>
    .no-after:after {
        content: none;
    }
</style>
<script>
    AJS.$('#poweredby').prepend('<li><a href="https://beian.miit.gov.cn">浙ICP备2021003588号</a></li>');
    AJS.$('#poweredby > li').slice(-3).remove();
    AJS.$('#poweredby > li').last().addClass('no-after');
    });
</script>

效果如下:

实现back-to-top

Confluence默认没有回到顶部按钮,这里通过自定义HTML和JavaScript把这个功能补全。按钮的样式源码来自知乎,操作如下,首先在BODY尾部增加按钮图标,并通过CSS将其固定在右下角:

<button id="back-to-top" style="position: fixed; bottom: 12px; right: 12px; width: 40px; height: 40px; color: #8590a6; background-color: transparent; border-radius: 4px; border: none; outline:none; display:none;">
    <svg fill="currentColor" viewBox="0 0 24 24" width="24" height="24">
        <path
            d="M16.036 19.59a1 1 0 0 1-.997.995H9.032a.996.996 0 0 1-.997-.996v-7.005H5.03c-1.1 0-1.36-.633-.578-1.416L11.33 4.29a1.003 1.003 0 0 1 1.412 0l6.878 6.88c.782.78.523 1.415-.58 1.415h-3.004v7.005z">
        </path>
    </svg>
</button>

然后在HEAD尾部增加自定义JavaScript代码,实现按钮的淡入和淡出,以及点击回到顶部的功能:

<script>
    AJS.toInit(function(){
        AJS.$(document).ready(function () {
            // 初始时回到顶部按钮为dysplay:none,根据滑动条位置控制是否显示回到顶部按钮
            AJS.$(window).scroll(function () {
                if (AJS.$(this).scrollTop() > 50) {
                    AJS.$('#back-to-top').fadeIn();
                } else {
                    AJS.$('#back-to-top').fadeOut();
                }
            });
            // 点击回到顶部
            AJS.$('#back-to-top').click(function () {
                AJS.$('body,html').animate({
                    scrollTop: 0
                }, 200);
                return false;
            });
            // 鼠标悬停和离开时改变风格
            AJS.$('#back-to-top').mouseover(function () {
                AJS.$('#back-to-top').css("background-color", "#d3d3d3")
            }).mouseout(function () {
                AJS.$('#back-to-top').css("background-color", "transparent")});
        });
    });
</script>

实际效果参考本站即可。

编写用户宏

简单来说,可以把宏看成是Confluence内置的超级模板,宏可以插入到编辑器中,根据宏的功能和参数,在实际渲染后,宏就可以显示成各种不同的功能。以本站主页为例,页面显示的空间列表和最近更新都是通过宏来插入的。

Confluence内置了一系列宏,这些宏可以实现诸如显示目录,显示空间列表,最近更新,标签云,页面树等功能,具体可以参考Confluence编辑技巧

除了使用内置的宏,用户还可以编写自己宏以实现更加复杂的功能,这里以jsMind宏为例,这个宏可以在页面中插入freemind格式的思维导图,效果如下:


参考:

https://developer.atlassian.com/server/confluence/confluence-user-macro-guide/
https://confluence.atlassian.com/doc/writing-user-macros-4485.html
https://confluence.atlassian.com/doc/user-macro-template-syntax-223906130.html
























  • 无标签