Qiita CLIとは
Qiita CLI とは、手元の環境で記事の執筆・プレビュー・投稿ができるツールです。
だそうです。
Node.js上で動くツールで、GitHubのREADME.md
に詳細な使い方が記載されています。
感想
個人的にはそれほどエディタにこだわりはないので、そこにはメリットはあまり感じていません。
ただし、オフラインイベントではしばしばネットワークが使えなくてプレビューできないことがあるので、手元でプレビューまでできるのはいいですね。手元で書き溜めておいて、ネットワークが使えるときに投稿する…ということができそうです。
Node.jsを食わず嫌いしていたのでnpm install
って言われたときにウッとなったのは内緒。
せっかくNode.jsをインストールしてみたので、何か作ってみようかな。
ぼやき
そこそこ使えそうな感じにできていますが、個人的に引っ掛かった点。
-
画像がアップロードできない -
既存の記事とQiita CLIから新規作成した記事でファイル名の命名規則が違う
- ファイル名は自由に変更はできる。Qiita CLIから新規作成した記事のデフォルトは
newArticle001.md
- 既存の記事は記事のUUIDになっている。例:
0ae72217f46c46dd76a4.md
- ファイル名は自由に変更はできる。Qiita CLIから新規作成した記事のデフォルトは
-
ファイル名と記事のタイトルは連動しなくてもいい
- 記事のタイトルのデフォルトが
title: newArticle001
なので、Obsidianみたいに連動させるルールなのかと思った
- 記事のタイトルのデフォルトが
-
自分の環境だとqiita publish
コマンドが上手く動かないカレントディレクトリの認識の問題かも
-
previewすると
public/public
が勝手に作成される(おそらくワークディレクトリ)のがちょっとイヤ- 実害は特にない
- これもカレントディレクトリの認識の問題かも
-
previewから記事を更新したとき、編集履歴は「コメントなし」になる
-
qiita publish
コマンドに指定するのはファイル名じゃなくてベース名。シェル補完だと拡張子が余分になる- ファイル名が
article.md
だったらnpx qiita publish article
を実行するということ - これは自分のわがまま。普通の実装だとは思う
- ファイル名が
色々試してみる
コマンドエラーのデバッグ
qiita publish
コマンドが上手く動かなかったので、ちゃんと確認してみる。
オチ:再起動したらなんか直った。
エラーメッセージがざっくりしている。エラーメッセージはこんな感じ。
# npx qiita publish _2023-0822-post-from-qiita-cli
Error: '_2023-0822-post-from-qiita-cli' is not found
原因がよく分からないので、古き良きprintfデバッグを試してみる。
まずツールがインストールされた場所の確認。
# npm list --depth=0
qiita@ C:\Users\ak-sakatoku\Documents\qiita
npm install @qiita/qiita-cli --save-dev
した場所のnode_modules以下にあるんですね。
こつこつそれっぽい場所にconsole.log
を仕込んでみる。
async loadItemByBasename(basename) {
const items = await this.getItemFilenames();
const itemFilename = this.getFilename(basename);
// printfデバッグ
console.log(itemFilename);
# npx qiita publish _2023-0822-post-from-qiita-cli
_2023-0822-post-from-qiita-cli.md
[Error: EISDIR: illegal operation on a directory, read] {
errno: -4068,
code: 'EISDIR',
syscall: 'read'
}
[Error: EISDIR: illegal operation on a directory, read] {
errno: -4068,
code: 'EISDIR',
syscall: 'read'
}
Successful!
いや成功してるー!
console.log
を仕込むために停止・再起動したときに直ったっぽい。