conflr: R MarkdownをConfluenceに投稿するRパッケージ

Data LabsのYutaniです。

このたび、R MarkdownAtlassian Confluenceに投稿するためのRパッケージ・conflrをOSSとして公開しました。本記事では、このパッケージの開発に至った背景と、使い方について説明します。

https://line.github.io/conflr/

RユーザとConfluence

Confluenceはドキュメンテーションのための定番ツールです。私が所属するData Analysisチームでも、分析レポートや様々なノウハウを共有する手段の一つとしてConfluenceを活用しています。

一方、Rユーザにとっては、ドキュメンテーションの定番ツールといえばR Markdownです。ここには大きな分断があります。R Markdownから生成されたレポートをConfluenceに載せるためには、コードや図をコピーアンドペーストするしかありません。せっかくR Markdownを活用して再現可能性の高い分析フローを作っても、それがConfluenceの手前で断ち切られてしまうのです。

conflrは、この分断を取り除くために開発されたパッケージです。conflrを使えば、R Markdownから生成されたドキュメントをそのままConfluenceにアップロードすることができます。

conflrのインストール

conflrはCRANにリリースされていないので、 devtools::install_github() でインストールしてください。

devtools::install_github("line/conflr")

また、conflrは、Confluence APIにアクセスするために以下の情報を必要とします。

  • ConfluenceのURL( CONFLUENCE_URL 環境変数)
  • ユーザ名( CONFLUENCE_USERNAME 環境変数)
  • パスワード( CONFLUENCE_PASSWORD 環境変数)

conflrの関数実行時に以下のようなポップアップが現れるので、求められた情報を入力してください。

あらかじめ ~/.Renviron に対応する環境変数(上のリストの括弧内)を設定しておくこともできます。たとえばURLであれば以下のように設定します。

CONFLUENCE_URL=https://confluence.example.com

conflrの使い方

conflrはRStudioのアドインとして使います。conflrをインストールすると、RStudioの「Addins」に「Post to Confluence」というメニューが追加されます。

まず、Confluenceに投稿したいR MarkdownファイルをRStudioで開いてください。そのファイルが表示されている状態で「Post to Confluence」を選ぶと、knitが始まります。

knitが無事に終わると、以下のようなプレビュー画面が立ち上がります。

プレビューを確認して問題なければ、以下の項目を入力して右上の「Publish」をクリックしてください。Confluenceへのアップロードが始まります。

  • type: ページの種類(pageは通常のwikiページ、blogpostはブログ記事)
  • Space Key: 投稿するスペースのキー(スペースのキーがわからなければ、ブラウザで対象のConfluenceスペースを開いて、左下の「スペースツール(歯車アイコン)」の「概要」から確認できます)
  • Parent page ID: 親ページのID(省略可能)

アップロードが完了すれば、自動的にブラウザが開き、完成したConfluenceのページに飛びます。

既存のページの更新

既存のページを更新するには、変更を加えたR Markdownファイルを再度「Post to Confluence」するだけです。conflrは、指定したスペースに同じタイトルのページがあればそれを更新します。

おわりに

このように、conflrを使えば、R Markdownファイルを簡単にConfluenceにアップロードすることができます。R Markdownで快適なConfluence生活を送りましょう。Confluenceへの変換は、完全に互換性があるわけではないのですが、画像や表、簡単な数式程度であれば対応しています。もし不具合を発見されましたら https://github.com/line/conflr/issues までご報告いただけるとありがたいです。

また、Data Analysis チームではプロジェクトマネージャー・データサイエンティストを募集中です。ご興味のある方はぜひご応募をご検討ください!

Related Post