Publié le 25 mai 2023 par Andrew Owen (2 minutes)
J’ai déjà écrit sur l’exportation des notes de publication de Jira au format XML. C’était relativement trivial. Cette semaine, j’ai eu besoin d’exporter une page Confluence au format Word XML (.docx
). Cela s’est avéré beaucoup plus compliqué. Sur n’importe quelle page de Confluence, si vous cliquez sur More Actions ( … ) et sélectionnez ensuite Export > Export to Word, vous obtiendrez un document avec une extension .doc
que Word peut ouvrir. Mais ce n’est pas ce que la plupart des outils de conversion reconnaîtraient comme un document Word standard. Et si vous avez besoin d’un document au format XML, vous devez encore l’ouvrir et le réenregistrer. Il faut également interagir avec la page web. Je voulais une meilleure solution.
L’inconvénient est que cela ne fonctionnera que sur macOS ou Windows, et que Word doit être installé sur la machine où vous exécutez le script. Python 3, cURL, pip et doc2docx doivent également être installés. Comme toujours, je recommande d’utiliser un gestionnaire de paquets (Homebrew sur macOS ou Scoop sur Windows). Je vais donner des exemples pour macOS, mais sous Windows vous pouvez simplement remplacer brew
par scoop
.
brew install curl
.brew install python
.curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
.pip install doc2docx
.Si vous devez révoquer un jeton, vous pouvez le faire à partir de cette page.
Naviguez vers la page dans Confluence. L’URL devrait ressembler à ceci:
https://<instance>.atlassian.net/wiki/spaces/<space-id>/pages/<page-id>/<page-name>
Prenez note de l’identifiant de la page (page-id
).
Vous pouvez maintenant rassembler tous ces éléments dans un script.
curl -u $email_address:$api_token -H "Content-Type: application/msword” \
"https://<instance>.atlassian.net/wiki/exportword?pageId=$page_id” -o word.doc
doc2docx word.doc word.docx
Sous Windows, doc2docx utilise win32.com, tandis que sous macOS, il utilise JXA. Il ouvre automatiquement le document dans Word et en enregistre une copie au format docx
. Vous pourriez étendre le script pour analyser un ensemble d’identifiants connus. Mais comme il faut que Word soit installé sur le système, il n’y a pas de moyen facile d’automatiser le script sous Linux. Cependant, vous pourriez peut-être le faire fonctionner en utilisant Wine.