Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124

使用重新设计的编辑器进行写作,向富文本添加视频,翻阅长集合,从管理后台将站点迁移到新域,并使用新的 upgrade-emdash CLI 升级站点。
EmDash 1.2 在 1.1 版本发布五天后推出。这是一个更大的版本:合并了 100 个拉取请求,来自 21 位社区贡献者以及核心团队。
大部分工作都在后台管理。内容编辑器采用了新的布局,富文本可以包含视频,收藏列表也增加了页码。网站可以迁移到新域名而不会丢失用户的登录信息,后台管理界面也翻译成了更多语言。
此次版本更新还新增了upgrade-emdash一个命令,用于更新项目的 EmDash 软件包,并为您或您的代理生成特定站点的升级指南。除此之外,本次更新还包含一系列常规的可靠性提升和错误修复。
亮点包括:
从这个版本开始,更新网站最快捷的方法是使用新的升级命令。请在项目目录中运行该命令:
npx upgrade-emdash@latest它会更新所有直接emdash依赖@emdash-cms/*项,运行包管理器,并写入.emdash/UPGRADE.md您正在修改的变更日志条目。您仍然可以手动更新:
pnpm up --latest emdash
# or if you are using Cloudflare
pnpm up --latest emdash @emdash-cms/cloudflare数据库迁移:此版本中无数据库迁移。1.1.0 和 1.2.0 版本之间没有新增或更改任何编号的核心迁移,因此无需应用任何架构或数据更改。部署前请阅读升级说明:部分更改会影响现有站点的电子邮件链接、插件、条目 ID 和站点地图。
内容编辑器采用了新的布局,更好地利用了空间,感觉不像是在填写表格,而更像是在编辑页面。

其他修改内容包括:
/bl以及Markdown本身,例如/#。其他可移植文本字段保留了框架式编辑器。新插入的 HTML、iframe 和代码块现在与页面加载时已存在的代码块具有相同的键盘行为。此重新设计已在#3710中发布。感谢@khoinguyenpham04 的开发。
在编辑器中输入/video文字,即可从媒体库中选择视频或上传视频。您也可以将视频文件拖放到文本中的任何位置。
在该网站上,组件会使用浏览器自带的播放器PortableText渲染视频块,并在视频下方显示字幕。媒体库视频会在配置好存储的公共 URL 后,从该 URL 播放。如果视频块的资源来自媒体提供商,则会渲染该提供商的嵌入内容。上传内容遵循默认大小限制,即 50 MiB。Videoemdash/uimaxUploadSize

现在提供的视频/_emdash/api/media/file/可以在 Safari 和 iOS 设备上播放。对于本地、S3 和 R2 存储适配器,媒体路由会响应Range请求206 Partial Content(#3828)。自定义存储适配器可以通过可选options.range参数 `range` 来添加范围支持download(),具体说明请参阅存储接口文档。忽略此参数的适配器仍然可以正常工作,返回整个文件。
部分网站需要对视频屏蔽进行更改(#3827):
video代码块,编辑器和网站会继续使用该插件的代码块。在 TypeScript 中,如果使用`now`PortableTextBlock进行筛选,则会返回 `false` ,因此读取插件自身的字段需要进行检查。_type === "video"PortableTextVideoBlock | PortableTextUnknownBlockportableTextToProsemirror`and` ,请向其架构添加具有属性`,` 、` ,`、` ,`和“ 的节点。prosemirrorToPortableTextvideoBlocksrcmediaIdprovidercaptionwidthheight"portable_text_video"。media-src。请参阅“为编辑器添加视频”和“查询并渲染一个条目”以进行渲染。
现在,管理后台的每个收藏列表都带有页码。“全部”和“回收站”标签页每次只加载一页,因此收藏列表打开时会显示 20 个条目,而不是 100 个。这两个标签页都使用媒体库的分页页脚(固定在屏幕底部),其中包含条目范围、每页显示 20、50 或 100 个条目的选项,以及跳转到任意页面的控件。选择会在页面之间保持不变。“回收站”徽章现在会统计所有已删除的条目,而不是只统计 50 个。

对于 API 客户端,GET /_emdash/api/content/{collection}其/trash路由接受一个基于 1 的page参数作为替代方案cursor。编号页面返回total,光标分页保持不变(#3773)。
将 EmDash 网站迁移到新域名后,之前所有功能都指向旧域名。电子邮件链接仍然使用网站搭建时使用的地址,插件也仍然指向同一个过时的地址,而且用户在新地址上无法使用密码登录后,所有功能都无法恢复。EmDash 1.2 在“设置”>“常规”中新增了完整的域名迁移流程。
更改域名会打开一个对话框,在更改网站 URL之前,先检查新域名是否适用于此网站。电子邮件和插件中的链接、网站地图robots.txt、hreflang 链接、社交图片 URL 以及 SEO 面板中设置的规范链接都会使用新域名。如果检查无法访问网站(例如,需要localhost登录才能访问),对话框会询问是否保存地址而不进行检查。

通行密钥仅在创建它们的地址有效,因此,搬家后还需要执行以下两个操作才能帮助人们登录:
users:manage权限,并且每个网站每小时最多可以发送 3 次。“站点 URL”字段现在为只读,只能通过对话框进行更改。当设置了 `<your-site-url>` siteUrl、 `<your-site-url>`EMDASH_SITE_URL或`<your-site-url>` 时,页面会显示该地址,并且电子邮件和插件中的链接将继续使用该地址。插件现在从 `<your-site-url>`和`<your-site-url> SITE_URL` 中读取相同的地址。更改后的站点 URL会在重启后或在 Cloudflare Workers 上启动新的隔离区时生效。ctx.site.urlctx.url()
升级前需要进行一项检查。如果您未进行配置siteUrl,电子邮件链接现在将使用“站点 URL”字段。如果该字段中包含的地址已失效,请参阅升级说明。
整个流程已在#3744中发布。感谢@swissky,他不仅完成了该流程,还在此版本中进行了 20 多项其他更改。有关步骤,请参阅“迁移到新域名” 。
译者们为此次版本发布付出了大量努力:
pt-PT)是一种新的语言环境,采用葡萄牙语日期格式。浏览器请求pt-PT使用欧洲葡萄牙语而不是巴西葡萄牙语,并且网站会将pt-PT邀请、登录和恢复电子邮件设置为使用该语言(#3796,感谢@DiogoDuart3)。现在,仅使用其中部分语言的网站可以通过以下方式将其余语言排除在管理软件包之外admin.locales(#3056):
emdash({
admin: { locales: ["en", "de"] },
});语言切换器中仅内置并提供列出的语言,并且en始终将其作为备用语言。未知代码会导致构建失败,并列出可用代码。未设置此选项的网站将保留所有语言。此外,管理员现在可以按需加载当前语言的日期选择器本地化,这为每个网站节省了约 220 KB 的 JavaScript 空间(#3923)。
公共网站也可以翻译评论。Comments并且CommentForm接受emdash/ui/comments一个labels属性来设置标题、会员徽章、点赞按钮、表单字段和状态消息。Comments还会根据页面语言环境格式化日期(#3697)。
upgrade-emdash是一个全新的、独立版本的 CLI,它从现有站点运行(#3804)。它的设计目的是使用 npx 运行,而不是安装在站点中:
npx upgrade-emdash@latestemdash它会解析每个直接依赖项的最新版本@emdash-cms/*,并保留每个依赖项的插入符号、波浪号或精确样式。它还会更新 pnpmcatalog:条目pnpm-workspace.yaml,运行项目的包管理器,并刷新项目的代理技能。如果任何步骤失败,它会恢复已更改的文件。
然后.emdash/UPGRADE.md,它会生成一份工作单,供您或编码代理使用。该工作单包含您已安装版本和目标版本之间完整的变更日志条目,这些条目取自每个软件包的确切发布标签。它还会比较安装前后的核心迁移。如果升级添加了迁移,则工作单要求在部署前成功构建、提供可恢复的恢复点并审核迁移目标。该命令不会编辑应用程序代码、应用迁移或进行部署。
用于--dry-run在不更改文件的情况下查看计划,--json以结构化数据形式查看计划,以及--yes跳过提示。该项目需要emdash安装 0.35.0 或更高版本,并且不支持 Yarn Plug’n’Play。有关完整步骤,请参阅“更新 EmDash” 。
多项修复措施旨在解决工人可能提前完成的工作,或D1强制执行的限制:
waitUntil,因此它们会在响应返回后完成,而不是被取消。这涵盖了 API 令牌的“上次使用”日期和过期记录清理(#3767),以及重定向命中计数和 404 日志条目(#3287)。感谢@danielmlr。此外comment:afterCreate,它还涵盖了之前沙盒插件无法完成的钩子操作:例如,一个向管理员发送新评论邮件的插件,之前无法发送任何邮件(#3631,感谢@DavidPivert)。too many SQL variables。此修复也解决了 WordPress 导入后导致此类文章缺少分类的问题(#3889)。插件ctx.storage getMany()支持deleteMany()任意数量的 ID(#3776)。entry.id始终包含语言环境前缀。此前,某些请求可能会缺少该前缀(#3922)。如果您的模板自行构建语言环境链接,请参阅升级说明。阅读完整的`emdash@1.2.0` 版本说明,然后按照更新 EmDash 的步骤备份、构建、部署和验证站点。