Confluence自帶非常完善的富文本編輯器,但是有時(shí)候某些文檔使用MarkDown編寫,而Confluence對(duì)MarkDown的支持并不是很好,不支持代碼語法高亮。同時(shí)MarkDown在不同渲染器下渲染出來的效果也天差地別。所以這時(shí)候希望能將MarkDown轉(zhuǎn)成我們希望的html樣式,再以html的形式發(fā)布到Confluence上。
MarkDown轉(zhuǎn)html,一般的MD編輯器都支持,而Confluence使用html發(fā)布,卻還有很多坑,這里一一做記錄。
插入html
Confluence原生支持HTML Marco


將html源碼粘貼進(jìn)html編輯框時(shí),不能使用CMD+V,而要右鍵粘貼,否則所有html源碼會(huì)被隔開,被當(dāng)做多段html。
css無法渲染
HTML Marco的preview正常,頁面的preview也正常


但是保存后,就是無法渲染css。表現(xiàn)為所有背景顏色或者代碼高亮全部無效。

這是因?yàn)檎迟N進(jìn)來的html有head和body標(biāo)簽。把這兩個(gè)標(biāo)簽刪除了,但是保留標(biāo)簽內(nèi)的內(nèi)容,就可以了。
<>符號(hào)消失
部分文本代碼塊中的<>符號(hào)消失,部分又沒消失。由于<>本身是html的保留字符,所以如果文本中出現(xiàn)<>需要轉(zhuǎn)義成<>。進(jìn)入html代碼中查看,發(fā)現(xiàn)粘貼前的html代碼中的<>在粘貼后,在HTML Marco編輯器里都被解碼成<>了。但是為什么又有部分正確顯示了呢?原來被<span>標(biāo)簽包圍的可以正確顯示,沒有span包圍的就無法顯示了。于是將Marco編輯器里的沒有span包圍的<>都改成<span><</span>和<span>></span>。這應(yīng)該是HTML Marco的bug,因?yàn)槿绻鹔mtl不是粘貼進(jìn)來的而是手打的,就不會(huì)有問題。
參考文獻(xiàn)
https://jira.atlassian.com/browse/CONFSERVER-34691