ローカルでZennの記事を書いて公開(デプロイ)してみた(GitHub)
Zenn の記事を Git 管理しながらローカルで作成することができたので試しにやってみました。
事前準備
① Zenn と Github の記事管理リポジトリを連携する
② ローカルでプレビューしながら記事を書くため Zenn CLI をインストール
ZennCLI で何ができるか見てみる
ZennCLI の help を見てみると以下のことができるそうです
% npx zenn --help
Command:
zenn init コンテンツ管理用のディレクトリを作成. 初回のみ実行
zenn preview コンテンツをブラウザでプレビュー
zenn new:article 新しい記事を追加
zenn new:book 新しい本を追加
zenn list:articles 記事の一覧を表示
zenn list:books 本の一覧を表示
zenn --version, -v zenn-cliのバージョンを表示
zenn --help, -h ヘルプ
👇 詳細
https://zenn.dev/zenn/articles/zenn-cli-guide
基本的に以下の流れで記事を書く感じですね。
-
$ npx zenn preview
でローカルの Zenn Editor を起動 -
$ npx zenn new:article
で記事を作成 -
article/
配下に作成された記事ファイル(.md
)を修正して記事を作成していく
※ちなみに`$ npm zenn init`をした後にはこちらのディレクトリ構成になりました。
.
├── README.md
├── articles
├── books
├── node_modules
│ └── zenn-cli
│ ├── LICENSE
│ ├── README.md
│ ├── dist
│ │ ├── client
│ │ │ ├── assets
│ │ │ │ ├── index-18fe6561.css
│ │ │ │ ├── index-24296a7f.js
│ │ │ │ └── index-d37fd9d5.js
│ │ │ ├── favicon.png
│ │ │ ├── index.html
│ │ │ ├── logo.svg
│ │ │ └── static-images
│ │ │ ├── book-cover.png
│ │ │ ├── copy-icon.svg
│ │ │ ├── folder-close.svg
│ │ │ └── folder-open.svg
│ │ └── server
│ │ ├── zenn.js
│ │ └── zenn.js.LICENSE.txt
│ └── package.json
├── package-lock.json
└── package.json
実際に記事を書いて公開してみる
実際にローカルで記事を書いて公開までやってみる。
1. ローカルエディタを起動
まず$ npx zenn preview
でローカルの Zenn Editor を起動します。
http://localhost:8000/
にアクセスすると Zenn Editor を見ることができました。
2. 記事作成
$ npx zenn new:article
で記事を作成します。
article/
配下に.md
ファイル作成されるので、プレビューで見ながら記事を書いていきます。
記事を作成したタイミングで.md
ファイル上部に以下の入力欄も自動で作成されるので、ここにタイトルやトピックの内容を入力します。
---
title: ""
emoji: "📘"
type: "tech" # tech: 技術記事 / idea: アイデア
topics: []
published: false
---
3.記事のデプロイ
記事が作成できたら差分を commit して push します。
Zenn の GitHub 連携ページで確認するとデプロイできてました。
あとはこちらの記事を公開したら ok です。
※published: true
にしてデプロイすることでも公開できます。
所感
実際にローカルで記事を書いてみて思ったのは、
・Zenn の記事投稿から直接書いた方が早く書ける(個人的な感想)
・記事に添付する画像も相対パスを指定しないといけない
など若干の煩わしさはあったので、人によるかなという感じです。
ですが Git で管理することで、
・記事の修正履歴が残る
・GitHub に草を生やすことができる
・お気に入りのエディタで記事を書ける
・エディタの拡張機能を利用できる(自動フォーマットなど)
などメリットもありそうなので、そういった面ではいいのかなと思いました。
自分はしばらくはローカルで記事を書いてみようかなと思ってます。
Discussion