📝
Zennの執筆環境をVSCodeのdevcontainerで構築してみた
要約
- Zennの執筆環境をdevcontainerで作ってみたので運用含めて共有したい
ここまでやったこと
Githubリポジトリ連携
これについては公式記事を参考いただくのが間違いないのでご覧ください。
私の場合はすでにZennのサイト上でいくつか記事を書いていましたので、下記も参考にしました。
devcontainerとちょっとした便利コマンドを作る
エクスポートしてきたarticles
やscraps
のディレクトリと同階層に以下のファイルを作成します。
.devcontainer/devcontainer.json
{
"name": "Zenn-cli",
"build": {
"context": "../docker",
"dockerfile": "../docker/Dockerfile"
},
"customizations": {
"vscode": {
"extensions": [
"negokaz.zenn-editor",
"davidanson.vscode-markdownlint",
"yzhang.markdown-all-in-one"
]
}
},
"workspaceMount": "source=${localWorkspaceFolder},target=/home/node/workspace,type=bind",
"workspaceFolder": "/home/node/workspace"
}
docker/Dockerfile
FROM node:lts-bullseye-slim AS dev
RUN apt update && apt install git vim xclip -y && apt clean
RUN yarn global add zenn-cli textlint
ENV COMMAND_PATH /home/node/command
ENV WORK_PATH /home/node/workspace
USER node
WORKDIR $COMMAND_PATH
COPY command/ $COMMAND_PATH
WORKDIR $WORK_PATH
RUN { \
echo "source /usr/share/bash-completion/completions/git"; \
echo "export PATH=$HOME/command:$PATH"; \
} >> ~/.bashrc
docker/command/preview
#!/bin/sh
zenn preview --port 9876
preview
はzenn-cliのプレビュー機能を起動するコマンドです。なんとなくデフォルトポートから変えておきたかったのと、多用しそうなのでコマンドにしてしまうことにしました。
このファイルはローカルで作成したらcommand
ディレクトリ上でchmod 777 preview
と打ってパーミッションを変更しておく必要があります。
Dockerfileではgitのコード補完と、command
ディレクトリへのパス追加を行なっています。
ここまで行なったら、VSCode上でCommand+shift+P
してRebuild and Reopen in Container
を選択します。
一度ビルドしたら、以降はReopen in Container
でOKです。
記事の作成フロー(私の場合)
新規記事の作成
zenn new:article
ブランチを切る
main向きの任意のブランチ名を決めてgit checkout -b
します。
記事の執筆
VSCodeでがんばって書く。
記事のプレビューは作成したpreview
コマンドを活用します。
画像の添付
- Zenn公式のアップローダーでURLを取得する
- 記事に貼り付ける
commit/pushする
任意のタイミングでcommitしたりpushしたりします。
topicsを決めて公開フラグをONにする
記事に関連するだろう任意のtopicsを決めて、メタ情報のtopics欄を埋めます。
公開する場合は忘れずにpublished: true
にしておきます。
mergeする
書き上がったらmain
ブランチにマージします。
おわりに
以上です。この環境はまだ私自身も使い始めたばかりなので、随時ブラッシュアップして、新しい知見は共有したいと思います。
ではまた!
Discussion