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

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

🧭 はじめに

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


🎯 この手順でできること

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

構造を壊さず、将来の挿入・削除に強いノート基盤を一気に用意できる。


🧱 前提条件

🔑 必須条件

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

  • 管理者権限ユーザー

  • 対象の

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

ページは必ずChapter配下に作成する。
Book直下に作ると、後から構造整理が煩雑になる。


📐 タイトル設計の原則(重要)

🚫 数値プレフィックスを付けない

  • Chapter / Page は本の中で自由にソート可能

  • タイトルに番号を含めると:

    • 挿入・削除時に欠番や重複が発生
    • 分割時にタイトルが不自然になる

章・記事タイトルに番号を入れてはいけない。
それは将来の編集コストを確実に増やす。


✅ 正しい役割分担

  • 順序管理:BookStackのUI(ドラッグ&ドロップ)
  • 意味表現:タイトル文字列そのもの

順序はUI、意味はタイトル。


🔐 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=(
"天文学とは何か"
"天文学史をどう見るか"
"先史・古代文明の天文学"
"メソポタミア・エジプト天文学"
"ギリシャ天文学"
"中国天文学"
"インド・イスラーム天文学"
"中世ヨーロッパの宇宙観"
"観測精度の限界と停滞"
"地動説の登場"
"観測革命"
"物理法則の導入"
"万有引力と宇宙"
"望遠鏡の進化"
"分光学と恒星の正体"
"恒星の進化と分類"
"銀河の発見"
"相対論と宇宙"
"ビッグバン宇宙論"
"現代の観測技術"
"系外惑星と生命探査"
)

タイトルは内容の意味のみを表し、順序は持たせない。


② 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フィールドは空にできない。
`

`<p></p> のような最小ダミーを必ず入れる。


✅ 実行後の確認

  • Chapter配下に、タイトルのみのページが作成されている
  • ページ順はUI上で自由に並び替え可能
  • 各ページは通常どおり編集・分割・移動できる

この時点で「書くための器」だけが完成している状態。


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

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

    <p><em>TODO</em></p>
    
  • 中身は1ページずつ順不同で書き始めてよい

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

BookStackは「後から並び替える」ことを前提にした設計。