
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
.
Installer les outils
- Installez cURL:
brew install curl
. - Installez Python:
brew install python
. - Installez pip:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
. - Installez doc2docx:
pip install doc2docx
.
Obtenir une clé API
- Dans Confluence, cliquez sur votre avatar et sélectionnez Settings.
- Dans la section Your settings, cliquez sur Password.
- Dans la section API token, cliquez sur Create and manage API tokens.
- Cliquez sur Create API token.
- Saisissez un Label et cliquez sur Create.
- Cliquez sur Copy et stockez le jeton dans un endroit sûr. Après avoir cliqué sur Close, vous ne pourrez plus accéder au jeton.
Si vous devez révoquer un jeton, vous pouvez le faire à partir de cette page.
Obtenir l’identifiant de la 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
).
Créer le script
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.