Exporter une page Confluence vers Word XML

illustrations illustrations illustrations illustrations illustrations illustrations illustrations

Publié le 25 mai 2023 par Andrew Owen (2 minutes)

post-thumb

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

  1. Installez cURL: brew install curl.
  2. Installez Python: brew install python.
  3. Installez pip: curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py.
  4. Installez doc2docx: pip install doc2docx.

Obtenir une clé API

  1. Dans Confluence, cliquez sur votre avatar et sélectionnez Settings.
  2. Dans la section Your settings, cliquez sur Password.
  3. Dans la section API token, cliquez sur Create and manage API tokens.
  4. Cliquez sur Create API token.
  5. Saisissez un Label et cliquez sur Create.
  6. 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.