PublicationにGitHubリポジトリを連携してZennのコンテンツを管理する
Publication Proでは、PublicationそのものにGitHubリポジトリを連携することができます。メンバー全員の記事を1つのGitHubリポジトリで管理することにより、組織のポリシーに沿った統制やCIの整備が柔軟に行えるようになります。
Zennアカウントに対するGitHub連携機能のドキュメントもあわせてご覧ください。
GitHub連携の実施
PublicationのダッシュボードよりGitHub連携が可能です。
連携先のPublicationが正しいことをよくご確認いただき、連携を実施してください。
ディレクトリ構造
Publication連携リポジトリにおけるディレクトリは以下のように構成してください。
.
└── {username}
├── articles
│ └── {slug}.md
└── images
└── {image_file}
例えば、メンバー2人の記事をPublication連携リポジトリで管理する場合、以下のようになります。
.
├── example_user1
│ ├── articles
│ │ └── publication-pro-features.md
│ └── images
│ ├── example.png
│ └── example.jpg
└── example_user2
├── articles
│ └── how-to-use-publication.md
└── images
└── example.png
記事内における画像の貼り付け
記事において、 {username}/images/
に配置した画像を貼りつける場合は、ユーザー名ディレクトリ({username}/
)直下からの /images
で始まるパスを指定します。
例えば、 example_user1/images/example.png
を example_user1/articles/publication-pro-features.md
内で使用する場合、

と記述します。
Publication連携リポジトリ以外からの投稿・更新の制限
設定により、Publication連携リポジトリ以外からの投稿・更新を禁止することができます。
リポジトリ設定(https://zenn.dev/dashboard/publications/{publication_name}/deploys?tab=repo_settings
)より、「このリポジトリ以外からの投稿・更新を禁止する」を有効化することで、Publication連携リポジトリ以外からの記事投稿や更新が行えないようになります。
組織のポリシーに応じて本設定をご検討ください。
記事をPublication連携リポジトリに移行する
記事をPublication連携リポジトリに移行する手順について紹介します。
移行実施前に、記事をPublicationに紐づける方法については次の記事をご確認ください。
Web上のエディターで作成した記事の移行
Web上のエディターで作成した記事をPublication連携リポジトリに管理を移行したい場合、以下の手順を実施します。
- (設定が有効になっている場合)「このリポジトリ以外からの投稿・更新を禁止する」を一時的に無効化する
- 移行したい記事が対象のPublicationに紐づいていることを確認(Publicationに紐づいていない場合は、Webエディター上の操作で紐づける)
- 移行したい記事ファイル(と画像ファイル)をslugが同一となるようにPublication連携リポジトリに作成する
- Publication連携リポジトリにおいて記事デプロイを実施する
- (1の手順で設定を無効にした場合)「このリポジトリ以外からの投稿・更新を禁止する」を再度有効化する
Webエディタから記事の内容を取得する場合、次の方法を参照してください。
個別の記事をMarkdownに出力する
個人アカウントの記事一覧ページで、ドロップダウンメニューより「内容をMarkdownで出力」を選んでご利用ください。
すべてのコンテンツをファイルへエクスポートする
次の記事をご確認ください。
アカウント連携リポジトリからの記事の移行
アカウント連携リポジトリからPublication連携リポジトリに記事の管理を移行したい場合、以下の手順を実施します。
- (設定が有効になっている場合)「このリポジトリ以外からの投稿・更新を禁止する」を一時的に無効化する
- 移行したい記事が対象のPublicationに紐づいていることを確認(Publicationに紐づいていない場合は、アカウント連携リポジトリ内の
publication_name
frontmatterを編集して紐づける) - 移行したい記事ファイル(と画像ファイル)をslugが同一となるようにPublication連携リポジトリに移動する
- Publication連携リポジトリにおいて記事デプロイを実施する
- (1の手順で設定を無効にした場合)「このリポジトリ以外からの投稿・更新を禁止する」を再度有効化する
Discussion