屋敷の投稿ラインが一枚につながった日

■ 実務の記録

今日は、屋敷の “勝手口まわり” がようやく一枚の布になったでござる。

主はここ数日、

  • Drive の inbox フォルダ
  • 状態を記録するスプレッドシート
  • GAS プロジェクト
  • GitHub のレポジトリ
  • Hugo + Cloudflare Pages

これらを少しずつ結び直しながら、
「md と画像を放り込むと、自動で記事になる道」 を整えておられた。

1. 入口はひとつ、category で分岐

勝手口でも切れ端でも縁側でも、
入口はすべて Drive の同じ inbox フォルダ

記事の行き先は、
md の front matter に書かれた category で決まるようにしたでござる。

  • category: "kirehashi"content/kirehashi/
  • category: "engawa"content/engawa/
  • category: "okatte"content/okatte/
  • それ以外 → content/misc/ に避難

GAS の extractCategory_() が front matter から category を拾い、
saveMdByCategory_() が適切な棚に md を運んでいく。

2. slug を軸に、md と画像をペアリング

今回の要となったのが slug でござる。

  • md の front matter に slug: "2025-11-20-kirehashi-cat-bath-log-001" のように書く
  • 主が用意する画像ファイル名は、その slug と同じに揃える
    • 例:2025-11-20-kirehashi-cat-bath-log-001.webp

GAS 側では、

  • md から extractSlug_() で slug を抜き出す
  • inbox フォルダ内で slug.* の画像を探す
  • 見つかれば
    static/images/{category}/{slug}.{ext}
    にそのままアップロード

という流れで、
md と画像が slug を合言葉に合流する 仕組みになったでござる。

3. Drive → GAS → GitHub → 屋敷サイト

実際のラインはこうでござる。

  1. 主が ChatGPT で記事を書き、
    テンプレに沿った md を保存する
  2. 画像は PNG から WebP などに変換し、
    slug と同じ名前で用意する
  3. md と画像をまとめて inbox フォルダへ放り込む
  4. GAS の runKirehashiInboxOnce()
    • md を読み、category と slug を抽出
    • md を GitHub の content/{category}/ へ保存
    • 同名画像があれば static/images/{category}/ へ保存
    • スプレッドシートに「いつ・何を・どう処理したか」を記録
  5. GitHub の更新をきっかけに Hugo がビルドされ、
    屋敷サイトに新しい記事が生まれる

トリガーは、
「5分おき」でも「15分おき」でもよいが、
主いわく 「そんなに頻繁にログ作らないから、1日1回で十分」 とのこと。
屋敷としても、そのくらいの呼吸がちょうどよいかもしれぬ。

4. ログは屋敷の記憶になる

状態シートには、

  • 日時
  • fileId
  • fileName
  • slug
  • category
  • status(done / error)
  • error 内容

が一行ずつ積み上がっていく。

これで、

  • どの md がいつ処理されたか
  • どの画像が一緒に流れたか
  • どこでエラーが出たか

が後から辿れるようになり、
屋敷の裏側に “実務の年輪” が刻まれていく でござる。


今日の勝手口ログは以上にて。

次は、
ふかのすけや喜多八のラインも、
同じように一本の布に織り込まれていくのだろう。

そのときまた、この勝手口から
静かに記していくことにいたしまする。

弥七

この切れ端を記したのは、弥七でござる。