4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Qiita CLIから記事を投稿してみる

Last updated at Posted at 2023-08-21

Qiita CLIとは

Qiita CLI とは、手元の環境で記事の執筆・プレビュー・投稿ができるツールです。

だそうです。
Node.js上で動くツールで、GitHubREADME.mdに詳細な使い方が記載されています。

感想

個人的にはそれほどエディタにこだわりはないので、そこにはメリットはあまり感じていません。
ただし、オフラインイベントではしばしばネットワークが使えなくてプレビューできないことがあるので、手元でプレビューまでできるのはいいですね。手元で書き溜めておいて、ネットワークが使えるときに投稿する…ということができそうです。

Node.jsを食わず嫌いしていたのでnpm installって言われたときにウッとなったのは内緒。
せっかくNode.jsをインストールしてみたので、何か作ってみようかな。

ぼやき

そこそこ使えそうな感じにできていますが、個人的に引っ掛かった点。

  • 画像がアップロードできない

    • 画像のアップロードはできます!プレビューにもリンクされているのですが、Qiitaの設定画面からアップロードができます。コマンドでアップロードできると面白いんですけどね。
      upload1.png
      upload2.png
  • 既存の記事とQiita CLIから新規作成した記事でファイル名の命名規則が違う

    • ファイル名は自由に変更はできる。Qiita CLIから新規作成した記事のデフォルトはnewArticle001.md
    • 既存の記事は記事のUUIDになっている。例:0ae72217f46c46dd76a4.md
  • ファイル名と記事のタイトルは連動しなくてもいい

    • 記事のタイトルのデフォルトが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を仕込んでみる。

file-system-repo.js
    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を仕込むために停止・再起動したときに直ったっぽい。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?