このページは原文を AI が翻訳したものです。

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

公開日時の二重設定

double-publish-date.webp

図からわかるように、一番下の Publication date は、以前Astroで静的MDXブログを書いていたときのpubDateの値です。一方、右側にはEmDash独自のPublish dateの値もありますが、この2つはどちらか1つだけ残せば十分です。ここではEmDash標準のものを残し、下のPublication dateを削除します。

対処法も簡単で、Content Types → Post に移動して publication date という項目を確認し、削除をクリックするだけです。

もちろん、関連するコードの修正についてはここでは詳しく説明しません。Claude Codeに任せれば簡単に完了できます。

post-custom-fields.png

予約投稿が成功しない

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

post-schedule-failed.png

解決方法も簡単で、公式ドキュメント を参考に、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";

その後、デプロイを進めると、以下のような設定が表示されれば成功です。これで予約投稿機能を正常に使えるようになります!

triggers.png

Epona
執筆Epona

There's nothing wrong with having a little fun

x.com/simura_epona

コメントを読み込み中…