公開日:2026年9月1日 破壊的変更(Breaking):あり

破壊的変更(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.jsonbetter-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() だけになります。
    • 対応(管理画面):「設定」→「メディアの使用状況」を「準備完了」と表示されるまで開いたままにします。途中で閉じた場合は、もう一度開くと保存された進み具合から再開します。
  • 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 devnode_modules/.vite/deps_ssr のファイルが見つからずに起動しない問題が修正されました。
  • アクセストークンの期限が切れているときに、emdash content createcontent 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