EmDash 0.36.0
破壊的変更(Breaking)と対応
- Node.js 22.16以上が必要に:
sqlite()とEmDashのCLIが、Node.jsに組み込まれたSQLiteのドライバーを使うようになりました。Node.jsで動かす場合に、ネイティブアドオンのbetter-sqlite3をコンパイルやダウンロードする必要がなくなりました。既存のSQLiteのデータベースファイルとsqlite({ url })の設定はそのまま使えます。- 対応:
node --versionでバージョンを確認し、22.16より前の場合は、EmDashを更新する前にNode.jsを更新します。 - 対応:
package.jsonのbetter-sqlite3がEmDashのためだけに入っている場合は、更新後に削除します。 - Node.js 22では、SQLiteのアダプターを読み込むときに
ExperimentalWarning: SQLite is an experimental featureという標準の警告が表示されます。Node.js 24では表示されません。
- 対応:
- メディア使用状況の定期回復処理の削除:メディアの使用状況の追跡は、管理者が設定ページを開いている間だけ進むようになりました。CHANGELOGは、この変更で
mediaUsageCronを設定しているCloudflareのデプロイと、独自のCronSchedulerを渡しているNode.jsの連携が動かなくなると明記しています。- 対応(Cloudflare):メディア使用状況専用のCron Triggerと
mediaUsageCronオプションを削除します。一般のCron Triggerはそのまま残します。代わりのトリガーは不要です。 - 対応(独自のNode.jsスケジューラー):
setMediaUsageMaintenance()を削除します。独自のCronSchedulerが実装するのはstart()、stop()、reschedule()、setSystemCleanup()だけになります。 - 対応(管理画面):「設定」→「メディアの使用状況」を「準備完了」と表示されるまで開いたままにします。途中で閉じた場合は、もう一度開くと保存された進み具合から再開します。
- 対応(Cloudflare):メディア使用状況専用のCron Triggerと
LiveSearchの検索範囲の変更(CHANGELOGの表記:Behaviour change):LiveSearchが、使われているページのロケールのエントリーだけを検索するようになりました。Astroのi18nを設定し、すべてのロケールをまとめて検索する動作に頼っていたサイトでは、結果が減ります。i18nを設定していないサイトは影響を受けません。- 対応:以前と同じくすべてのロケールを検索する場合は
locale={null}を渡します。別のロケールを検索する場合は、そのロケールをlocaleに渡します。
- 対応:以前と同じくすべてのロケールを検索する場合は
- プラグインの公開方法の変更(プラグイン開発者向け):プラグインのバンドル、アイコン、バナー、スクリーンショットは、既定で公開者のPDS(Personal Data Server)にblobとして置かれるようになりました。PDSのblobだけで配布されるリリースをインストールするには、サイト側のEmDashを先に更新する必要があります。
- 対応:公開用のスクリプトから
--artifact-base-urlを外し、一覧用の画像を事前にアップロードする処理をやめます。実験的なreleaseView.mirrorsを使っている箇所はreleaseView.artifactCaches ?? []に置き換えます。ログイン済みの状態でMISSING_BLOB_SCOPEと表示された場合は、emdash-plugin logoutのあと、もう一度ログインします。
- 対応:公開用のスクリプトから
新機能
- メディアライブラリにフォルダーが追加されました。編集者はフォルダーの作成・名前の変更・削除ができ、メディアをドラッグしてフォルダーに入れられます。フォルダーを削除しても、中のメディアはメインのライブラリに戻るだけで、ファイルやURLは変わりません。データベースのマイグレーション
072_media_foldersが含まれます。 - 画像フィールドに、ダークモードのときに表示する2枚目の画像を設定できるようになりました。フィールドごとに
darkVariantオプションで有効にします。 - ローカルの画像にフォーカルポイントを設定できるようになりました。サムネイルやギャラリーで切り抜かれても、指定した部分が表示されます。
- メディアライブラリで、ページ番号によるページ送りと、1ページの表示件数の変更ができるようになりました。
- メディアの使用状況の追跡を設定で切り替えられるようになりました。新しいサイトでは初期設定のときに有効になります。
- 信頼済みのプラグインが
content:beforeSaveフックからContentSaveRejectedErrorを投げると、編集者にメッセージを表示して保存を拒否できるようになりました。 - 管理画面とビジュアル編集のコードブロックで、LuaとZigを選べるようになりました。
主な修正
- AVIF画像のアップロードが「File type not allowed」で拒否される問題が修正されました。
- コードブロックに構文の色分けが付き、TabとShift+Tabでインデントを増減できるようになりました。
- 管理画面のサイドバーでコンテンツタイプの並べ替えがサーバーエラーになる問題が修正されました。
- 新しいCloudflareのプロジェクトで、
astro devがnode_modules/.vite/deps_ssrのファイルが見つからずに起動しない問題が修正されました。 - アクセストークンの期限が切れているときに、
emdash content createとcontent updateが失敗する問題が修正されました。 - SQLiteとD1で、中断した更新によって執筆者の割り当てのテーブルが残り、エントリーが表示されなくなる問題が修正されました。次のマイグレーションでテーブルが復元されます。
- Cloudflare Streamなどの配信サービスの動画が、メディアライブラリでプレビューできるようになりました。
原文:emdash の変更履歴
根拠にした公式ページ
- emdash の変更履歴(0.36.0):https://github.com/emdash-cms/emdash/blob/main/packages/core/CHANGELOG.md#0360
- 公開日:npm(emdash 0.36.0、2026-09-01T13:41:24Z=日本時間9月1日):https://www.npmjs.com/package/emdash/v/0.36.0