ZennとQiitaの記事を同期するアクションを開発しました。
Zennに記事を投稿するにあたり、Qiitaにもついでに投稿したいと思ったことがきっかけです。
同様なアクションを既に開発されている方がいらっしゃいますが、Github Actionsの学習も兼ねて実装してみました。
本アクションでは片方の記事から他方の記事を生成、リポジトリにプッシュを自動化します。
ここでは簡単な紹介に留めたいと思います。
実際の使い方は、URLからREADMEを参照いただければと思います。
ご興味のある方はご使用いただければと思います。また不明点やバグ、使い勝手、実装の良し悪しなど、ご質問、ご指導いただけますと幸いです。
対象となる方
- ZennやQiitaで記事を執筆されている方
- 記事の執筆・管理を効率化したい方
特徴
- 記事を管理するリポジトリは、ZennとQiitaでそれぞれ別に管理します。
- 記事の生成とリポジトリへのプッシュをZennからQiita、QiitaからZennの両方向に使用できます。
機能
差分検知
git diff
を用いて、同期元リポジトリの前回と今回のプッシュの差分を取得し、変更のあったファイル(追加・更新・削除)のみを処理対象とします。
双方向のフォーマット変換
Zenn -> QiitaまたはQiita -> Zennの双方向にマークダウンのフォーマットを変換します。
- メタデータの変換: プラットフォーム独自のfront matterを変換します。
- コンテンツの変換: プラットフォーム独自のマークダウン記法を変換します。
同期先ファイルの削除
同期元のファイルが削除された場合、同期先のファイルも削除します。
リポジトリへのコミット&プッシュ
生成したファイルを同期先リポジトリへコミット&プッシュします。
ユーザ設定
コンフィグファイルによって、ユーザごとに変更可能な設定があります。
最後に
Github Actionsの学習を兼ねて、ZennとQiitaの記事を同期するアクションを開発しました。
できる限り多くの方にご利用いただけると嬉しいです。
画像URLについて
Zennには、画像をリポジトリで管理し自動でアップロードする機能がありますが、Qiitaにはそのような機能がありません。
そのためサービスへの手動アップロードなど、画像URLの運用には少し手間がかかります。
本アクションにおいても同様で、その辺の話を下記に記載しています。
一応、Qiitaも画像アップロードの手間を省く手段を検討するつもりではあるみたいです。
早めに開発してくれると嬉しい。。。
https://github.com/increments/qiita-discussions/discussions/513