使用Confluence REST API创建一个排序的表

时间:2015-09-16 17:16:49

标签: confluence confluence-rest-api

我可以使用现有的API在Confluence中创建简单的表。它很棒。这可能会提出很多要求,但有一件事情不是通过wysiwyg编辑器在Confluence中创建的表格。

例如,我从手工制作的Confluence文档中复制表格的HTML,然后使用它们的api创建一个新文档。我把这个HTML粘贴到文档中:

myHtml = '<div class="table-wrap"><table class="confluenceTable tablesorter tablesorter-default stickyTableHeaders" style="padding: 0px;"><thead class="tableFloatingHeaderOriginal"><tr class="tablesorter-headerRow"><th class="confluenceTh sortableHeader tablesorter-headerAsc" data-column="0" tabindex="0" unselectable="on"><div class="tablesorter-header-inner">testcol</div></th><th class="confluenceTh sortableHeader" data-column="1" tabindex="0" unselectable="on"><div class="tablesorter-header-inner">&nbsp;</div></th><th class="confluenceTh sortableHeader" data-column="2" tabindex="0" unselectable="on"><div class="tablesorter-header-inner">&nbsp;</div></th></tr></thead><thead class="tableFloatingHeader" style="display: none;"><tr class="tablesorter-headerRow"><th class="confluenceTh sortableHeader" data-column="0" tabindex="0" unselectable="on"><div class="tablesorter-header-inner">testcol</div></th><th class="confluenceTh sortableHeader" data-column="1" tabindex="0" unselectable="on"><div class="tablesorter-header-inner">&nbsp;</div></th><th class="confluenceTh sortableHeader" data-column="2" tabindex="0" unselectable="on"><div class="tablesorter-header-inner">&nbsp;</div></th></tr></thead><tbody><tr><td class="confluenceTd">q</td><td class="confluenceTd">&nbsp;</td><td class="confluenceTd">&nbsp;</td></tr><tr><td class="confluenceTd">r</td><td class="confluenceTd">&nbsp;</td><td class="confluenceTd">&nbsp;</td></tr></tbody></table></div>'

curl -u username:password -X POST -H 'Content-Type: application/json' -d'{"type":"page","ancestors":[{"type":"page","id":6358857}],"title":"new page 4","space":{"key":"~theuser"},"body":{"storage":{"value":myHtml,"representation":"storage"}}}' https://confluence.macsales.com/rest/api/content/ | python -mjson.tool

一切看起来都很棒,除了桌子不会排序。我注意到从HTML中删除了一些像'data-column =“2”'这样的标签。有没有办法不剥离这些标签?

我看到另一篇帖子建议使用Confluence CLI,但这项技术到目前为止工作得很好。能够排序真是太好了。

1 个答案:

答案 0 :(得分:3)

这是我的一个愚蠢的错误。我正在复制渲染后生成的html而不是html源代码。通过使用Confluence的类,排序工作:

<table class="confluenceTable"><tbody><tr><th class="confluenceTh">test321</th><th class="confluenceTh"> </th></tr><tr><td class="confluenceTd">h</td><td class="confluenceTd"> </td></tr><tr><td class="confluenceTd">k</td><td class="confluenceTd"> </td></tr></tbody></table>