前2回の記事での奮闘により、現在はEmDashの管理画面から記事を投稿できるようになりました。ただ、Astroから移行してきたこともあって、いくつか歴史的な負債というか、不自然な点を修正する必要があります。
公開日時の二重管理

図からわかるように、一番下の Publication date は以前Astroで静的MDXブログを書いていたときのpubDateの値です。一方、右側にはEmDash独自のPublish dateもありますが、この2つはどちらか1つだけ残せば十分です。ここではEmDash標準のものを残し、下のPublication dateは削除します。
対処法も簡単で、Content Types → Post に移動して publication date という項目を確認し、削除をクリックするだけです。
もちろん、関連するコードの修正についてはここでは詳しく触れません。Claude Codeに任せれば簡単に完了します。

予約投稿が成功しない
もう1つ問題があって、記事の予約投稿を設定しても、指定した時間になっても公開されませんでした。ただ、よく考えてみれば当然で、関連するCronを設定していなかったので、予約投稿が動くはずもありません。

解決方法も簡単で、公式ドキュメントを参考に、wrangler.jsonc ファイルに以下の設定を追加します。
{
"main": "./src/worker.ts",
"triggers": { "crons": ["* * * * *"] },
}# ./src/worker.ts
/**
* Cloudflare Worker entry.
*
* The Astro adapter's own entry only exports `fetch`, so nothing drives
* EmDash's scheduled work in production: the Cloudflare build sets
* `createScheduler = null` and expects a Cron Trigger to call
* `runScheduledTasks()` through a `scheduled()` handler. This re-export adds
* that handler to the same Worker, which is what `emdash doctor` checks for.
* Without it, scheduled posts stay `scheduled` past their publish time.
*/
export { default, PluginBridge } from "@emdash-cms/cloudflare/worker";その後、デプロイを進めると、以下のような設定が表示されていれば成功です。これで予約投稿機能を正常に使えます!

収集品を手に入れた· Item get
古代の歯車
ノーマル
- 地方
- 古代技術の高地
- 生息地
- Astro · Cloudflare
- 発見日
- 冒険時間
- 2 分 · これまでに 1 人の旅人が訪れた
この冒険を読み終えて手に入れた。読む人が増えるほど、レア度が上がる。


コメントを読み込み中…