Confluence自带非常完善的富文本编辑器,但是有时候某些文档使用MarkDown编写,而Confluence对MarkDown的支持并不是很好,不支持代码语法高亮。同时MarkDown在不同渲染器下渲染出来的效果也天差地别。所以这时候希望能将MarkDown转成我们希望的html样式,再以html的形式发布到Confluence上。
MarkDown转html,一般的MD编辑器都支持,而Confluence使用html发布,却还有很多坑,这里一一做记录。
插入html
Confluence原生支持HTML Marco
将html源码粘贴进html编辑框时,不能使用CMD+V,而要右键粘贴,否则所有html源码会被隔开,被当做多段html。
css无法渲染
HTML Marco的preview正常,页面的preview也正常
但是保存后,就是无法渲染css。表现为所有背景颜色或者代码高亮全部无效。
这是因为粘贴进来的html有head和body标签。把这两个标签删除了,但是保留标签内的内容,就可以了。
<>符号消失
部分文本代码块中的<>符号消失,部分又没消失。由于<>本身是html的保留字符,所以如果文本中出现<>需要转义成<>。进入html代码中查看,发现粘贴前的html代码中的<>在粘贴后,在HTML Marco编辑器里都被解码成<>了。但是为什么又有部分正确显示了呢?原来被<span>标签包围的可以正确显示,没有span包围的就无法显示了。于是将Marco编辑器里的没有span包围的<>都改成<span><</span>和<span>></span>。这应该是HTML Marco的bug,因为如果hmtl不是粘贴进来的而是手打的,就不会有问题。
参考文献
https://jira.atlassian.com/browse/CONFSERVER-34691