qiita cliが今年の8月にリリースされていました
せっかくので今回のAdvent Calenderをqiita cliを使って書いてみようと思っていました
そう思ったのは良いんですが、投稿日ぎりぎりに着手したために準備をしていたら投稿日になってしまいました
今から記事を書くと間に合わないので、やっていたことをまとめてみようかなと思いました
今回はdev containerを使って執筆環境を作りました
1. qiita cliのインストール
package.jsonにqiita cliを追加しておきます
{
"name": "qiita-content",
"version": "1.0.0",
"description": "",
"private": true,
"devDependencies": {
"@qiita/qiita-cli": "^1.3.0"
}
}
2. credentials.jsonの作成
qiita cliのreadme.mdを参考にトークンを発行しておきます
こちらは本来npx qiita login
を実行すると$XDG_CONFIG_HOME/qiita-cli
もしくは$HOME/.config/qiita-cli
にcredentials.jsonを作成してくれますが、今回はコンテナ内にマウントしたいためプロジェクト内に作ろうと思います
このファイルにはqiitaのAPIトークンが含まれているため、先に.gitignore
に追加しておきます
ついでにnode_modules
やqiita cliで作られるフォルダも追加しておきます
credentials.json
node_modules
.remote
credentials.jsonを作成します
{
"default": "qiita",
"credentials": [
{
"name": "qiita",
"accessToken": "先ほど発行したトークン"
}
]
}
3. devcontainerの設定
cmd + shift + p
を押してDev Containers: Add Dev Container Configuration Files...
を選択します
qiita cliを動かすためにはnode.jsが必要なので、node.jsのdevcontainerを選択します
また、今回はpnpmを使おうと思うので、pnpmを選択しておきます
.devcontainer
にdevcontainer.json
が作成されたと思います
qiita cliはデフォルトでは8888ポートを使うようなので、forwardPorts
に8888を追加しておきます
今回はpnpmを使用しているので、postCreateCommand
をpnpm install
に変更します
先ほど作成したcredentials.jsonをコンテナ内にマウントするためにmounts
を追加しています
{
"name": "Node.js",
"image": "mcr.microsoft.com/devcontainers/javascript-node:1-20-bullseye",
"features": {
"ghcr.io/devcontainers-contrib/features/pnpm:2": {}
},
"forwardPorts": [8888],
"postCreateCommand": "sudo chown node node_modules && pnpm install",
"mounts": [
"source=qiita-content-node_modules,target=${containerWorkspaceFolder}/node_modules,type=volume",
"source=${localWorkspaceFolder}/credentials.json,target=/home/node/.config/qiita-cli/credentials.json,type=bind,consistency=cached"
],
"customizations": {
"vscode": {
"extensions": [
"DavidAnson.vscode-markdownlint",
"streetsidesoftware.code-spell-checker"
]
}
}
}
cmd + shift + p
を押してDev Containers: Reopen in Container
を選択し起動します
3. qiita cliでの記事作成
1回だけqiita init
を実行しておきます
pnpm qiita init
これによってqiita.config.json
やgithub actionsの設定ファイルが作成されます
preview
pnpm qiita preview
でpreviewを確認できます
新規作成
pnpm qiita new
を実行するかpreview上の新規作成ボタンから作成ができます
pnpm qiita new 記事のファイルのベース名
記事の公開
qiita cliのreadmeを参考にgithub actionsで公開するように設定します
4. vscode拡張機能
devcontainer.json
のcustomizations
に拡張機能を追加することができます
{
"customizations": {
"vscode": {
"extensions": [
"DavidAnson.vscode-markdownlint"
]
}
}
}
text-lintのような執筆が楽になるような拡張機能を追加しておきたいです
最後に
qiita cliによってvscodeで記事が書けるようになったので、記事の執筆が捗りますね