メインコンテンツへスキップ

# 🧩 BookStackでタイトルのみのページを一括作成する(API利用)

🧭 はじめに

この手順書は、BookStack上に「タイトルだけの空ページ」をまとめて作成するための実務向けガイドである。 天文学史ノートのように、先に構造(ページ枠)を一気に用意し、内容は後から埋める運用を前提としている。

目的は以下の3点に集約される:

  • 手作業を避け、短時間・低ミスでページ枠を作る
  • BookStackの内部構造を壊さず、安全に作成する
  • 再実行・再利用できるバッチ処理にする

🎯 この手順でできること

  • 指定したChapter配下に 「1〜21のタイトルだけを持つページ」を一括生成
  • 本文は後から編集可能(最初は空に近い状態)
  • BookStackの履歴・権限・URL構造を正しく維持

ノート作成の初動コストを極限まで下げられる。


🧱 前提条件

🔑 必須条件

  • BookStackがAPI対応バージョン(v0.27以降)

  • 管理者権限ユーザー

  • 対象の

    • Bookshelf
    • Book
    • Chapter が事前に作成済み

ページは必ずChapter配下に作成する。
Book直下に作ると後で構造整理が面倒になる。


🔐 APIトークンの準備(初回のみ)

手順

  1. BookStack管理画面にログイン

  2. Users → 自分のユーザー

  3. API Tokens セクションで新規トークン作成

  4. 以下を控える:

    • Token ID
    • Token Secret

Token Secretは二度と表示されない。
必ず安全な場所に保存する。


🧠 実装方針(重要)

なぜAPIを使うのか

  • BookStackは以下の情報を内部で連動管理している:

    • pages
    • revisions
    • permissions
    • activity_log

DBを直接書き換えてはいけない。
履歴破損・アップデート不能の原因になる。

公式APIを使うのが唯一の安全ルート


🛠️ 実装手順(bash + curl)

① 作成するページタイトル一覧を定義

titles=(
"1. 天文学とは何か"
"2. 天文学史をどう見るか"
"3. 先史・古代文明の天文学"
"4. メソポタミア・エジプト天文学"
"5. ギリシャ天文学"
"6. 中国天文学"
"7. インド・イスラーム天文学"
"8. 中世ヨーロッパの宇宙観"
"9. 観測精度の限界と停滞"
"10. 地動説の登場"
"11. 観測革命"
"12. 物理法則の導入"
"13. 万有引力と宇宙"
"14. 望遠鏡の進化"
"15. 分光学と恒星の正体"
"16. 恒星の進化と分類"
"17. 銀河の発見"
"18. 相対論と宇宙"
"19. ビッグバン宇宙論"
"20. 現代の観測技術"
"21. 系外惑星と生命探査"
)

番号プレフィックスを付けることで、並び順が将来も安定する。


② 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配下に

    • タイトルのみのページが21個並んでいる
  • 各ページは通常通り編集可能

  • URL・履歴・権限が正しく付与されている

この時点で「書くための器」は完成。


🧠 運用上のベストプラクティス

  • 初期本文は以下でも可:

    <p><em>TODO</em></p>
    
  • 中身を書き始めるのは1ページずつでよい

  • 後からページを分割・移動してもURLは壊れない

BookStackは「後から整理する」ことを前提にした設計。
最初から完璧を目指さない。


🚀 次の一手(推奨)

  1. この手順で21ページを一括生成
  2. 「2. 天文学史をどう見るか」だけを最初に埋める
  3. 他は空のまま放置して問題なし

構造を先に作ると、学習と執筆が驚くほど楽になる。