1記事を書く
posts/YYYYMM/記事名.md に draft: true のまま書く。テンプレは posts/_template.md記事は Markdownで書いて、Pull Request(PR)を出すだけ。レビュー担当がOKを出してマージすると、公開・HPへの反映まで自動で進みます。書いている途中の記事は 本番には絶対に出ません。
posts/YYYYMM/記事名.md に draft: true のまま書く。テンプレは posts/_template.mddraft を触らないdraft: false にしてマージblog.tragend.com/YYYYMM/記事名/ が公開。feed.json と tragend.com のブログカードも自動更新draft: true の記事は、push してもマージしても本番には出ません。draft を書き忘れた場合も非公開扱いです。公開されるのは、レビュー担当が明示的に false にした記事だけです。Tragend/blog を開き、posts/_template.md の中身をコピーposts/ で Add file → Create new file。ファイル名を 202610/my-article.md のように入力(年月フォルダ/半角英数字とハイフン)画像は posts/YYYYMM/img/ に Add file → Upload files で上げて、本文に  と書く。
git clone → npm installgit switch -c post/my-article で記事ごとにブランチを切るposts/_template.md を posts/202610/my-article.md にコピーして書くnpm run dev → http://localhost:4399 で確認(下書きも見える)git push -u origin post/my-article → PRを作成Claude Code や Orca を使う場合も同じ。リポジトリ内で「テンプレから記事を作って」と頼めば、置き場所と frontmatter は自動で揃う。
---
title: "記事タイトル"
description: "一覧・HPカード・OGPに出る1文"
date: 2026-10-01
author: tragend
tags: ["claude-code", "ai"]
# thumbnail: /img/202610/my-article.png
draft: true
---
ここから下は普通の Markdown。
見出し・表・コードブロック・画像すべて使える。 | 項目 | 説明 |
|---|---|
title必須 | 記事タイトル |
description推奨 | 一覧・HPカード・OGPに出る1文 |
date必須 | 公開日 YYYY-MM-DD。一覧はこの順 |
author推奨 | src/lib/authors.ts にある自分の key。無ければ tragend |
tags任意 | src/lib/tags.ts にある key だけ。辞書に無い値はビルドが止まる。一覧は /tags/ |
thumbnail任意 | 1200×630 の画像を public/img/YYYYMM/ に置き /img/YYYYMM/… で指定 |
draft必須 | true の間は非公開。false にするのはレビュー担当 |
新しいタグを使いたい・自分の名前で署名したいときは、src/lib/tags.ts / src/lib/authors.ts に1行足す(同じPRに含めてOK)。
draft: false にしない--- の閉じ忘れ、tags が辞書に無い、date の形式を確認posts/YYYYMM/ 直下にあるか。_ で始まる名前は記事扱いされないdraft: false になっているか。Netlify の Deploys 画面でビルド結果を確認public/img/… にあり、パスが /img/… 始まりか確認--- で挟まれた設定部分drafttrue=非公開、false=公開