Qiita CLI で pull すると
Qiita CLI の導入まで済ませてとりあえず npx qiita pull
で既存の記事を pull
してくると public
ディレクトリに以下の様な感じで <id>.md
という書式で降りてくる。
e3308b3dcc83ece119d3.md
e3a83eb8e2342e817290.md
e3d3831db7cc758446ee.md
e5da37cfa030a59eb6a2.md
e66353a799444183072a.md
e665b49b84ddfe4cf6e3.md
e67ddb91231109ff2160.md
e68483e65923b89605ca.md
...
好きなエディタで編集出来るというウリだがさすがにこれではどれが何の記事なのかさっぱり分からないので好きな markdown エディタ、特に Obsidian のようにタイトル = ファイル名のエディタで管理するのは難しいだろう。
リネーマーを書いた
ということで、リネーマースクリプトを書いた。
記事のファイル名は好きにして良いと言うことだったので、ついでに手動である程度ディレクトリを分け、非公開記事は private-on-qiita
に入れていざ commit
&& push
!!
こんな感じ:
public
├── DB-SQL
│ └── SQL - ランダムに行を取得したい.md
├── SublimeText
│ └── SublimeText3 - バッククオートを自動ペア入力するコンフィグ.md
├── docker
│ └── Docker - OCI runtime create failed エラー.md
├── git
│ ├── ...
│ └── git - status 表示で untracked を無視させる.md
├── misc
│ └── Windows Subsystem for Linux + Docker for Windows を使えるようにするまでメモ.md
├── perl
│ ├── ...
│ └── perl - 動的 use lib 実装.md
├── private-on-qiita
│ ├── ...
│ └── コミットメッセージルールめも.md
└── sh
└── bash - 隠しファイルのみ表示.md
しかし元の木阿弥
GitHub Actions が終わった頃合いを見て git pull
するとなぜかローカルにまたハッシュ値めいたファイル名がずらり!
e3308b3dcc83ece119d3.md
e3a83eb8e2342e817290.md
e3d3831db7cc758446ee.md
e5da37cfa030a59eb6a2.md
e66353a799444183072a.md
e665b49b84ddfe4cf6e3.md
e67ddb91231109ff2160.md
e68483e65923b89605ca.md
...
Oh...
どうやら、Qiita CLI がセットアップする GitHub Actions は GitHub 側で qiita pull
を実行して commit
する仕様の様だ・・・。
気を取り直して public ディレクトリに記事ファイルを置いてみる
まあ、この記事自身を public/renamer-for-qiita-cli.md
として保存してみた。
そして commit
&& push
!!
が、GitHub Actions がコケる
GitHub Actions のログを見てみると以下の様なエラーが出ている。
Run qiita publish --all --root .
renamer-for-qiita-cli: titleは文字列で入力してください
renamer-for-qiita-cli: tagsは配列で入力してください
renamer-for-qiita-cli: privateの設定はtrue/falseで入力してください
renamer-for-qiita-cli: updated_atは文字列で入力してください
renamer-for-qiita-cli: idは文字列で入力してください
renamer-for-qiita-cli: organization_url_nameは文字列で入力してください
renamer-for-qiita-cli: slideの設定はtrue/falseで入力してください(破壊的な変更がありました。詳しくはリリースをご確認ください https://github.com/increments/qiita-cli/releases/tag/v0.5.0)
Error: Process completed with exit code 1.
どうも自分で書いた記事も Forn Matter1 とやらを付けなくてはいけないようだが、さすがに id
は分からんよなあ、、、という。
なるほどならば npx qiita new
だ
$ npx qiita new renamer-for-qiita-cli
Error: 'renamer-for-qiita-cli.md' is already exist
・・・なるほどね、先に自分でファイルを作っちゃダメなのね、なるほどね。。。
削除して再び npx qiita new
する。
$ git rm -f public/renamer-for-qiita-cli.md
rm 'public/renamer-for-qiita-cli.md'
$ npx qiita new renamer-for-qiita-cli
created: renamer-for-qiita-cli.md
作成された renamer-for-qiita-cli.md
の中身を見てみると以下の様な感じになっている。
---
title: renamer-for-qiita-cli
tags:
- ''
private: false
updated_at: ''
id: null
organization_url_name: null
slide: false
ignorePublish: false
---
# new article body
なるほどね、これで Front Matter1 とやらが自動的に付与されるのね、なるほどね。。。
これを編集2 して今度こそ commit
&& push
だ!!
ようやく公開される
GitHub Actions の処理が終わったところでようやく Qiita に公開された。
まとめ
GitHub Pages のような感じで記事を管理できると考えていたが、ちょっと違うものだった。
Qiita CLI を用いた記事作成のワークフローは以下の様になる。
-
npx qiita new "記事名"
で記事名.md
ファイルを作る(日本語ファイル名も大丈夫みたい) -
記事名.md
の Front Matter1 部分にタイトルやタグを書く2 - 記事の本文を書く
- プレビューを見たいなら
npx qiita preview
で立ち上がるプレビュー Web アプリで確認する -
記事名.md
をcommit
&&push
- GitHub Actions の処理が終わると Qiita に公開される。
- Front Matter1 部分が更新されているので
pull
しておく
つまりすでに id
がファイル名として割り当てられている既存の記事のリネームには対応していないと思われる。
Qiita Preview はどうなのか
公式の説明では Qiita Preview から「新規記事」を作る事もできる、とあるのでやってみた。
結論としては:
- ファイル名が
newArticle001
という感じで固定+連番になる模様 - 記事内容の編集は一切出来無い
ので、最初から npx qiita new "記事名"
で好きなファイル名を自分で付けた方が良さそう。
まあ、あくまで記事のプレビュー用アプリでオマケとして記事ファイルの作成(≠編集)機能がある、というものなんでしょうね。
追記: 日本語ファイル名とサブディレクトリ
その後、一応日本語ファイル名とサブディレクトリについても検証したところ以下の結果となった。
- 日本語ファイル名 → OK
- サブディレクトリ → 全て無視される
サブディレクトリが使えないのは手痛い。
大量の限定共有記事が HEX なファイル名でフラットに並んでいる状況でサブディレクトリも使えないのでは新規記事の整理もキビシイものがある。