🐥

ZennとQiitaの記事を同期するアクション

に公開

ZennとQiitaの記事を同期するアクションを開発しました。
Zennに記事を投稿するにあたり、Qiitaにもついでに投稿したいと思ったことがきっかけです。
同様なアクションを既に開発されている方がいらっしゃいますが、Github Actionsの学習も兼ねて実装してみました。

本アクションでは片方の記事から他方の記事を生成、リポジトリにプッシュを自動化します。
ここでは簡単な紹介に留めたいと思います。
実際の使い方は、URLからREADMEを参照いただければと思います。

ご興味のある方はご使用いただければと思います。また不明点やバグ、使い勝手、実装の良し悪しなど、ご質問、ご指導いただけますと幸いです。

https://github.com/r-dev95/sync-zenn-qiita-articles

対象となる方

  • ZennやQiitaで記事を執筆されている方
  • 記事の執筆・管理を効率化したい方

特徴

  • 記事を管理するリポジトリは、ZennとQiitaでそれぞれ別に管理します。
  • 記事の生成とリポジトリへのプッシュをZennからQiita、QiitaからZennの両方向に使用できます。

機能

差分検知

git diffを用いて、同期元リポジトリの前回と今回のプッシュの差分を取得し、変更のあったファイル(追加・更新・削除)のみを処理対象とします。

双方向のフォーマット変換

Zenn -> QiitaまたはQiita -> Zennの双方向にマークダウンのフォーマットを変換します。

  • メタデータの変換: プラットフォーム独自のfront matterを変換します。
  • コンテンツの変換: プラットフォーム独自のマークダウン記法を変換します。

同期先ファイルの削除

同期元のファイルが削除された場合、同期先のファイルも削除します。

リポジトリへのコミット&プッシュ

生成したファイルを同期先リポジトリへコミット&プッシュします。

ユーザ設定

コンフィグファイルによって、ユーザごとに変更可能な設定があります。

最後に

Github Actionsの学習を兼ねて、ZennとQiitaの記事を同期するアクションを開発しました。
できる限り多くの方にご利用いただけると嬉しいです。


Discussion