🧩 BookStackでタイトルのみのページを一括作成する(API利用)
🧭 はじめに
この手順書は、BookStack上に「タイトルのみの空ページ」をまとめて作成するための実務向けガイドである。 天文学史ノートのように、先に構造(ページ枠)を一気に用意し、内容は後から埋める運用を前提としている。
本手順では特に、章・記事(Page)には数値プレフィックスを付けないという方針を明確にする。
これはBookStackのソート仕様を正しく前提にした、長期運用向けの設計判断である。
🎯 この手順でできること
- 指定したChapter配下に 「意味だけを持つタイトル」のページを一括生成
- ページ順はBookStackのUIで自由に並び替え可能
- 本文は後から編集(最初は空に近い状態)
- BookStackの履歴・権限・URL構造を正しく維持
構造を壊さず、将来の挿入・削除に強いノート基盤を一気に用意できる。
🧱 前提条件
🔑 必須条件
-
BookStackがAPI対応バージョン(v0.27以降)
-
管理者権限ユーザー
-
対象の
- Bookshelf
- Book
- Chapter が事前に作成済み
ページは必ずChapter配下に作成する。
Book直下に作ると、後から構造整理が煩雑になる。
📐 タイトル設計の原則(重要)
🚫 数値プレフィックスを付けない
-
Chapter / Page は本の中で自由にソート可能
-
タイトルに番号を含めると:
- 挿入・削除時に欠番や重複が発生
- 分割時にタイトルが不自然になる
章・記事タイトルに番号を入れてはいけない。
それは将来の編集コストを確実に増やす。
✅ 正しい役割分担
- 順序管理:BookStackのUI(ドラッグ&ドロップ)
- 意味表現:タイトル文字列そのもの
順序はUI、意味はタイトル。
🔐 APIトークンの準備(初回のみ)
手順
-
BookStack管理画面にログイン
-
Users → 自分のユーザー
-
API Tokens セクションで新規トークン作成
-
以下を控える:
- Token ID
- Token Secret
Token Secretは二度と表示されない。
必ず安全な場所に保存する。
🧠 実装方針(なぜAPIを使うか)
BookStackは以下を内部で連動管理している:
- pages
- revisions
- permissions
- activity_log
DBを直接書き換えてはいけない。
履歴破損・権限不整合・アップデート不能の原因になる。
→ 公式APIを使うのが唯一の安全ルート。
🛠️ 実装手順(bash + curl)
① 作成するページタイトル一覧を定義(番号なし)
titles=(
"天文学とは何か"
"天文学史をどう見るか"
"先史・古代文明の天文学"
"メソポタミア・エジプト天文学"
"ギリシャ天文学"
"中国天文学"
"インド・イスラーム天文学"
"中世ヨーロッパの宇宙観"
"観測精度の限界と停滞"
"地動説の登場"
"観測革命"
"物理法則の導入"
"万有引力と宇宙"
"望遠鏡の進化"
"分光学と恒星の正体"
"恒星の進化と分類"
"銀河の発見"
"相対論と宇宙"
"ビッグバン宇宙論"
"現代の観測技術"
"系外惑星と生命探査"
)
タイトルは内容の意味のみを表し、順序は持たせない。
② API接続情報を設定
API_URL="https://your-bookstack.example.com/api/pages"
TOKEN_ID="xxxxx"
TOKEN_SECRET="yyyyy"
CHAPTER_ID=123
CHAPTER_IDは作成先ChapterのID- ChapterのURLから数値で確認できる
③ バッチでページを一括作成
for title in "${titles[@]}"; do
curl -s -X POST "$API_URL" \
-H "Authorization: Token $TOKEN_ID:$TOKEN_SECRET" \
-H "Content-Type: application/json" \
-d "{
\"name\": \"$title\",
\"html\": \"<p></p>\",
\"chapter_id\": $CHAPTER_ID
}"
done
htmlフィールドは空にできない。
`
✅ 実行後の確認
- Chapter配下に、タイトルのみのページが作成されている
- ページ順はUI上で自由に並び替え可能
- 各ページは通常どおり編集・分割・移動できる
この時点で「書くための器」だけが完成している状態。
🧠 運用上のベストプラクティス
-
初期本文は以下でも可:
<p><em>TODO</em></p> -
中身は1ページずつ順不同で書き始めてよい
-
後からページを分割・統合してもURLは壊れない
BookStackは「後から並び替える」ことを前提にした設計。