これは

Backlog Advent Calendar 2018は、Backlog活用術、プロジェクトマネジメント、 #JBUG コミュニティ活動、API、Wiki、GitなどなどBacklogに関することなら何でも書いてみてください!来年1月26日にはBacklogWorld2019も開催されますし、大いに盛り上げていきましょう...

adventar.org

Backlog Advent Calendar 2018 の第 7 日目の記事です.

集え、初老丸達よ。初老丸達による世界に向けた技術的(又はそれに関連する)な物語を綴るカレンダーです。我こそ初老丸という方、初老丸予備軍の方も奮ってご参加下さい。ジーク・初老丸!

qiita.com

初老丸アドベントカレンダー 2018 の第 7 日目の記事です.

本当は

furikake について書こうと思っていたのですが, たまたま出張で飛行機に乗ることがあり, インターネットが使えない, もしくは遅くて使い物にならない環境でも Backlog Wiki を更新したいなあと思ったので, 出張先のホテルでザクッと作ってみた daimyo というツールについて紹介させて頂きます.

Backlog Wiki をオフラインで編集, 更新することを目的にした小さなツールです. Contribute to inokappa/daimyo development by creating an account on GitHub.

github.com

ちなみに, 好きなエディタで Wiki を書きたいという方にもピッタリなのではと考えています. 残念ながら Markdown のプレビュー機能は備わっていませんが, 別のプレビューツールと組み合わせて快適な Wiki 編集環境を築けるのではないかと思います.

daimyo = 大名

daimyo は

Backlog の Wiki をローカルマシンのダウンロードしてきて, ローカルマシン上の好きなエディタで更新し, 更新内容をアップロードする際に簡単な差分チェックを行い, 更新をアップロードするツールです. daimyo という名前はヌーラボさんの福岡オフィスがたしか福岡市中央区大名にあったよなあと思って付けました. すいません.

daimyo の使い方

daimyo のインストールについては, README.md をご一読ください. 以下, 既に daimyo がインストールされている前提で書かせて頂きます.

.daimyo.yml の作成

.daimyo.yml に Backlog のスペースキー, Backlog API キーを設定します.

space_id: 'your-space-name'
top_level_domain: 'jp'
api_key: 'your-api-key'

プロジェクトの Wiki 一覧を出力する

以下を実行してプロジェクトの wiki 一覧を出力することが出来ます.

bundle exec daimyo list --project-id=your-backlog-project

以下のように出力されます.

+--------+--------------------------------------------+----------------------+----------------------+
| ID     | Name                                       | Created              | Updated              |
+--------+--------------------------------------------+----------------------+----------------------+
| xxxxx1 | Home                                       | 2017-05-15T05:51:52Z | 2018-12-07T03:02:03Z |
| xxxxx2 | Lambda 送信テスト                          | 2018-11-16T10:01:24Z | 2018-12-07T02:47:20Z |
| xxxxx3 | ディレクトリ/サブディレクトリ/うぃきうぃき | 2018-12-07T03:30:57Z | 2018-12-07T03:30:57Z |
+--------+--------------------------------------------+----------------------+----------------------+

プロジェクト単位での Wiki の書き出す

以下を実行してプロジェクト単位で wiki を export します.

bundle exec daimyo export --project-id=your-backlog-project

一応, Wiki の階層構造がそのままディレクトリ構造になるようにしています.

$ tree your-space -N
your-space
└── YOUR-PJ
    ├── xxxxx1_Home.md
    ├── xxxxx2_Lambda 送信テスト.md
    └── ディレクトリ
        └── サブディレクトリ
            └── xxxxx3_うぃきうぃき.md

3 directories, 5 files

Wiki を更新する

ローカルマシン上で Wiki を修正したら, 以下を実行して変更の差分を確認します.

bundle exec daimyo publish --project-id=YOUR-PJ --dry-run

以下のように差分を確認出来ます.

$ c --dry-run
your-space/YOUR-PJ/ディレクトリ/サブディレクトリ/xxxxx3_うぃきうぃき.md
 # ディレクトリ/サブディレクトリ/うぃきうぃき
+
+## テスト
+
+* テスト

インターネットがつながる環境になったら, 以下を実行して Wiki を更新します.

bundle exec daimyo publish --project-id=YOUR-PJ

いい感じです.

Wiki を更新したら, 改めて export を実行してローカルマシン上の Wiki ファイル (Markdown) を更新するようにしましょう.

色々とやりたい

出張先のホテルでザクッと作った daimyo ですが, まだまだ色々と課題があります.

  • 差分比較の比較元について, ローカルだけではなく, Wiki と直接比較出来るようにしたい
  • 複数のスペース, 複数のプロジェクトを跨いで管理出来るようにしたい
  • とにかくコードが汚いので…直すぞ!

ということで

ということで, 飛行機等の長距離移動の際, インターネット環境が無いような場所でも Wiki が更新出来るようになって自分は嬉しいのですが, もし, よろしければ, daimyo をお試し頂きフィードバックをいただけると嬉しいです.

ありがとうございました.

元記事こちら

Backlog Wiki をオフラインでも管理したいと思ったので daimyo を作ってみました