markdown-confluence cliでmarkdownをConfluenceに同期する
開発に関連するあれこれ(ADRで決めるような内容)をGitリポジトリ内のdocs
ディレクトリにmarkdownで記載して管理するスタイルをとってきた。
ただ、非開発者でも経緯などを把握できた方がいいことを考えるとリポジトリに置いておくだけでは不十分だと考えて、代替ソリューションを探していてたどり着いた。
検討していた/実施してみた代替手段
Section titled “検討していた/実施してみた代替手段”- Astroなどmarkdownを元に静的サイトを生成できるフレームワークを使ってS3に配置・公開する
- フロントエンドがメイン領域の自身が運用する分にはなんの問題もないが、フロントエンド経験が乏しいとメンテナンスが継続できないと判断してやめた
- 上記に関連するが、継続的にバージョンを上げていくなどメンテナンスする意識がないとすぐに陳腐化する
- 最初からConfluenceに書く
- 手元のリポジトリでサクッと見ることができなくなる
- コンテキストがリポジトリとConfluenceに分散するので移動が煩わしく感じる
- 単純にConfluenceのエディタが好きになれない
@markdown-confluence/cliで同期する
Section titled “@markdown-confluence/cliで同期する”- 基本的な記法を網羅している
- 画像などもアップロードできる
- フォルダ構造を維持したままアップロードできる
- Obsidian向けのプラグインも存在するみたいなので、Obsidian使いでも使える
- 同期先となるフォルダーページのID
- ここで指定したページ配下にmarkdownが同期される
- ATLASSIAN_API_TOKEN
- 自身のConfluenceのベースURL(ex. https://example.atlassian.net)
ディレクトリ構成
Section titled “ディレクトリ構成”.obsidian
ディレクトリが存在する場合、デプロイから除外されるがドット始まりのディレクトリやmarkdownファイルはそのままデプロイされてしまうので注意。
.└── root/ ├── docs/ │ ├── .hidden-dir │ ├── foo.md │ └── bar/ │ └── baz.md ├── src ├── .markdown-confluence.json ├── package.json └── README.md
.markdown-confluence.jsonで設定を管理する
- confluenceBaseUrl:デプロイ先ConfluenceのベースURL
- confluenceParentId: デプロイ先Confluenceの親ページID
- atlassianUserName: Atlassianアカウントのユーザ名
- folderToPublish: デプロイしたいフォルダのパス。デフォルトは
.
(ルート) - firstHeadingPageTitle: # Heading1をページのタイトルにするか
{ "confluenceBaseUrl": "https://example.atlassian.net", "confluenceParentId": "12345678", "atlassianUserName": "username@example.com", "folderToPublish": "path/to/folder", "firstHeadingPageTitle": true }
デプロイ・アップロード
Section titled “デプロイ・アップロード”export ATLASSIAN_API_TOKEN=""
npx @markdown-confluence/cli
書き方・公開方法など
Section titled “書き方・公開方法など”下書き・非公開
Section titled “下書き・非公開”---connie-publish: false---
# this is draft
公開済みファイルを削除した場合、どうなる?
Section titled “公開済みファイルを削除した場合、どうなる?”自動的に削除してくれるわけではないので、自分でConfluence上で手動操作等で削除する必要がある
Wikilinksの実現方法
Section titled “Wikilinksの実現方法”下記のように [[markdownファイル名]]
形式で記載してあげれば、リンクに変換される。※ 拡張子はつけない
Obsidianを使っていれば、全く意識しなくても問題ない。
※ #
でヘッダーを指定するときに日本語でもうまく動くのかは未確認。
# title
- [[markdown-filename]]- [[markdown-filename|Alias]]- [[markdown-filename#Heading]]