Confluence使用html发布wiki

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的保留字符,所以如果文本中出现<>需要转义成&lt;&gt;。进入html代码中查看,发现粘贴前的html代码中的&lt;&gt;在粘贴后,在HTML Marco编辑器里都被解码成<>了。但是为什么又有部分正确显示了呢?原来被<span>标签包围的可以正确显示,没有span包围的就无法显示了。于是将Marco编辑器里的没有span包围的<>都改成<span><</span>和<span>></span>。这应该是HTML Marco的bug,因为如果hmtl不是粘贴进来的而是手打的,就不会有问题。

参考文献

https://jira.atlassian.com/browse/CONFSERVER-34691

https://community.atlassian.com/t5/Confluence-questions/HTML-Macro-with-css-and-JS-not-working/qaq-p/1730184

https://jira.atlassian.com/browse/CONFSERVER-54107

https://community.developer.atlassian.com/t/paste-html-character-entity-references-like-lt-is-immediately-decoded-by-macro-body-editors/36796

Share

You may also like...

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注