使用 Confluence REST API 创建一个 table 排序
Using Confluence REST API to create a table that sorts
我可以使用现有的 API 在 Confluence 中创建简单的 table。它很好用。这可能要求很多,但它没有做的一件事是类似于通过所见即所得编辑器在 Confluence 中创建的 tables。
例如,我从手工制作的 Confluence 文档中将 HTML 复制为 table,然后使用其 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"> </div></th><th class="confluenceTh sortableHeader" data-column="2" tabindex="0" unselectable="on"><div class="tablesorter-header-inner"> </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"> </div></th><th class="confluenceTh sortableHeader" data-column="2" tabindex="0" unselectable="on"><div class="tablesorter-header-inner"> </div></th></tr></thead><tbody><tr><td class="confluenceTd">q</td><td class="confluenceTd"> </td><td class="confluenceTd"> </td></tr><tr><td class="confluenceTd">r</td><td class="confluenceTd"> </td><td class="confluenceTd"> </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
一切看起来都很好,除了 table 不会排序。我确实注意到一些标签,如 'data-column="2"' 从 HTML 中删除了。有没有办法不去除这些标签?
我看到了另一篇建议改用 Confluence CLI 的帖子,但该技术目前运行良好。能排序就好了。
我犯了一个愚蠢的错误。我正在复制生成 post 渲染的 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>
我可以使用现有的 API 在 Confluence 中创建简单的 table。它很好用。这可能要求很多,但它没有做的一件事是类似于通过所见即所得编辑器在 Confluence 中创建的 tables。
例如,我从手工制作的 Confluence 文档中将 HTML 复制为 table,然后使用其 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"> </div></th><th class="confluenceTh sortableHeader" data-column="2" tabindex="0" unselectable="on"><div class="tablesorter-header-inner"> </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"> </div></th><th class="confluenceTh sortableHeader" data-column="2" tabindex="0" unselectable="on"><div class="tablesorter-header-inner"> </div></th></tr></thead><tbody><tr><td class="confluenceTd">q</td><td class="confluenceTd"> </td><td class="confluenceTd"> </td></tr><tr><td class="confluenceTd">r</td><td class="confluenceTd"> </td><td class="confluenceTd"> </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
一切看起来都很好,除了 table 不会排序。我确实注意到一些标签,如 'data-column="2"' 从 HTML 中删除了。有没有办法不去除这些标签?
我看到了另一篇建议改用 Confluence CLI 的帖子,但该技术目前运行良好。能排序就好了。
我犯了一个愚蠢的错误。我正在复制生成 post 渲染的 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>