2015-09-16 3 views
0

Je peux créer des tables simples dans Confluence en utilisant leur API existante. Cela fonctionne très bien. Cela peut demander beaucoup, mais une chose qu'il ne fait pas est de trier les tables créées dans Confluence via l'éditeur wysiwyg. Par exemple, je copie le code HTML d'une table à partir d'un document Confluence fabriqué à la main, puis crée un nouveau document en utilisant leur API. Je colle ce html dans le document:Utilisation de l'API REST Confluence pour créer une table qui trie

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 

Tout semble très bien, sauf que la table ne triera pas. J'ai remarqué que certaines balises comme 'data-column = "2"' ont été supprimées du HTML. Est-il possible de ne pas supprimer ces balises?

J'ai vu d'autres messages qui suggèrent d'utiliser Confluence CLI à la place, mais cette technique fonctionne très bien jusqu'ici. Ce serait bien de pouvoir trier.

Répondre

3

C'était une erreur stupide de ma part. Je copiais le html généré après le rendu au lieu de la source html. En utilisant les classes de Confluence, les travaux de tri sont les suivants:

<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>