💻

Zenn CLI × GitHub連携で記事管理を快適にする方法

に公開

はじめに

こんにちは、田中涼平(@RyoheiTanaka)です。
Zennは手軽に技術記事を投稿できる素晴らしいサービスですが、Webエディタだけでは少し物足りなさを感じる場面もあります。たとえば、

  • スラッグ(URL末尾)を自由に決められない
  • 普段使い慣れたエディタで作業できない
  • 修正履歴の管理がしにくい

こういった課題を解決するために、Zenn CLIとGitHub連携を導入しました。今回はその方法と、効率的な記事運用のための工夫をご紹介します。

なぜCLI&GitHub連携を導入したのか

CLIとGitHubを使えば、以下のようなメリットがあります:

  • スラッグを自由に決められる
  • Gitで修正履歴を明確に管理できる
  • お気に入りのエディタで快適に執筆可能
  • 記事や画像をローカルで一元管理できる

Zenn CLIのインストールと初期化

npm install zenn-cli -g
mkdir zenn-contents && cd zenn-contents
zenn init

GitHubリポジトリの準備と連携

git init
git remote add origin https://github.com/yourname/zenn-contents.git
git add .
git commit -m "initial commit"
git push -u origin main

記事テンプレート作成スクリプトの活用

毎回手作業で記事ファイルを作るのは手間がかかるので、以下のようなスクリプトを使って記事テンプレートを一発生成しています:

#!/bin/bash

TITLE="$1"
SLUG="$2"

if [ -z "$TITLE" ] || [ -z "$SLUG" ]; then
  echo "❌ タイトルとスラッグを両方指定してください。"
  echo "例: ./scripts/create-article.sh \"Pest導入メモ\" \"laravel-pest-intro\""
  exit 1
fi

FILENAME="articles/${SLUG}.md"

cat > "$FILENAME" <<EOL
---
title: "${TITLE}"
emoji: "🧪"
type: "tech"
topics: ["Laravel", "PHP", "テスト"]
published: false
slug: "${SLUG}"
summary: ""
---

## はじめに

こんにちは、田中涼平([@RyoheiTanaka](https://github.com/RyoheiTanaka))です。

<!-- 本文ここから -->

---

## 🚀 田中涼平の他の活動

- 🌐 ポートフォリオ: [https://coolat.net](https://coolat.net)
- 🧑‍💻 GitHub: [https://github.com/RyoheiTanaka](https://github.com/RyoheiTanaka)
- 🐦 X (Twitter): [https://x.com/ryohei_dev](https://x.com/ryohei_dev)
- 📝 Zenn: [https://zenn.dev/ryohei_tanaka](https://zenn.dev/ryohei_tanaka)

---
EOL

echo "✅ 記事ファイルを作成しました: ${FILENAME}"

これを scripts/create-article.sh として保存しておけば、以下のように一発で記事作成が可能です:

./scripts/create-article.sh "記事タイトル" "記事スラッグ"

テンプレートにはプロフィールやリンクも自動で挿入されるので、毎回のコピペの手間が省けて超便利です。

画像管理と設置ルール

  • 画像は images/{スラッグ}/ に配置
  • Markdownからは相対パスで参照
![図解](/images/laravel-pest-intro/setup.png)

Git管理と運用ルール

  • 記事作成は feature/スラッグ名 ブランチで行う
  • コミットは粒度を小さく、差分がわかりやすいように
  • main ブランチは常に公開できる状態に保つ
  • ローカルプレビューは npx zenn preview で確認

README.md & CONTRIBUTING.md による運用ルールの明文化

リポジトリ構成(README.mdより抜粋)

articles/         # 記事ファイル(.md)
images/{スラッグ}/ # 記事ごとの画像
scripts/          # 記事作成スクリプト
.github/          # アイデア投稿テンプレートなど

記事作成ルール(CONTRIBUTING.mdより抜粋)

  • スラッグ=ファイル名=URL末尾
  • Frontmatterを必ず記述
  • Markdownからは画像を相対パスで参照

ブランチ&進捗管理

  • feature/ ブランチで作業
  • GitHub Issuesで記事アイデア投稿+進捗管理(idea, draft, review, published

まとめ

Zenn CLI × GitHub連携のメリットは以下の通りです:

  • スラッグ・ファイル・画像を自由に管理
  • Gitでバージョン管理しやすい
  • VS Codeなどで快適に執筆
  • スクリプトでテンプレ化して効率化
  • 運用ルールを明文化して迷いゼロ

Zennを開発の一部として捉えるなら、この運用は非常におすすめです。ぜひ取り入れて、あなたの執筆ライフを快適にしてみてください!

🚀 田中涼平の他の活動

Discussion