EmailSubscribe
使用 EmailSubscribe 组件在任意文档页面添加新闻订阅或更新日志订阅表单:原生支持七家服务商,其余可嵌入。
<EmailSubscribe> 可在文档页面内嵌一个邮件订阅表单。若已在仪表板中连接服务商,它会渲染一个由 Jamdesk 托管的表单,将新订阅者添加到你的受众列表。若未连接,它也可以托管其他服务的粘贴式嵌入代码。适用于更新日志和发布说明页面。
快速开始
在仪表板中连接一个服务商,然后使用该服务商的 id 添加标签:
<EmailSubscribe provider="resend" />
这会渲染一个带标签的邮箱字段和一个 Subscribe 按钮。Jamdesk 会将每个提交的地址添加到你所连接的受众列表中。同一标签适用于任何已连接的原生服务商(mailchimp、kit、loops、beehiiv、brevo 或 sendgrid)。
添加可选的标题和补充说明:
<EmailSubscribe
provider="resend"
title="Get release notes"
description="One email when we ship something new. No spam."
/>
属性
| 属性 | 类型 | 用途 |
|---|---|---|
provider | string | 服务商 id:resend、mailchimp、kit、loops、beehiiv、brevo、sendgrid、buttondown 或 substack。 |
title | string | 显示在表单上方的可选标题。 |
description | string | 标题下方的可选补充说明。 |
collapsed | boolean | 仅限原生服务商。初始显示为紧凑的 Subscribe 按钮,点击后展开为完整表单。 |
username | string | Buttondown / Substack 账户用户名(仅限嵌入式服务商)。 |
snippet | string | 任何服务商的原始嵌入标记。备用方案(见下文)。 |
className | string | 包装器上的额外 CSS 类。 |
原生服务商与嵌入服务商
你传入的 provider 决定表单的行为方式:
- 原生服务商(
resend、mailchimp、kit、loops、beehiiv、brevo、sendgrid)渲染由 Jamdesk 托管的表单。Jamdesk 捕获地址并通过你连接的密钥添加。这些服务商需要先在仪表板中连接。 - 仅嵌入式服务商(
buttondown、substack)渲染该服务自身的表单或 iframe。你无需连接密钥,只需传入你的username。访客直接向该服务商提交。
未在仪表板中连接的原生服务商不会捕获任何内容。请先连接该服务商。
仅支持嵌入的服务商
Buttondown 和 Substack 无需仪表板连接即可使用。传入你的账户用户名:
<EmailSubscribe provider="buttondown" username="acme" />
<EmailSubscribe provider="substack" username="acme" />
特殊情况:粘贴任意嵌入代码
将任意服务商的嵌入标记粘贴到 snippet 中。它会在已发布页面上原样渲染:
<EmailSubscribe snippet={`<form action="https://example.com/subscribe">...</form>`} />
snippet 会在你的页面上运行服务商自身的代码。某些服务商提供的脚本只执行一次,如果读者在未完全重新加载的情况下在页面间导航,脚本将不会重新运行。请将基于脚本的嵌入代码放置在专用的、可直接加载的页面(如更新日志)上,而不要深埋在导航流程中。
紧凑模式
设置 collapsed 可将原生表单初始显示为 Subscribe 按钮。点击后会在行内展开完整字段,无需重新加载页面:
<EmailSubscribe provider="resend" collapsed title="Subscribe to updates" />
按钮标签取自 title,默认为 "Subscribe to updates"。紧凑模式仅适用于原生服务商,嵌入式服务商渲染其自身的标记。
已订阅的读者
浏览器会记住通过原生表单订阅的读者。下次访问时,读者看到的是一行简短提示,而非表单:You're subscribed to the newsletter.
该提示带有一个 "Use a different email?" 控件,可重新打开完整表单。此记忆是按浏览器保存的,存储于 localStorage,而非你的受众列表中。清除站点数据或切换浏览器后,表单会再次显示。原生表单无需任何配置即可实现此功能。
在更新日志页面自动放置
无需手动添加标签,即可在更新日志页面挂载表单。在 docs.json 中将新闻订阅集成的 placement 设置为 changelog:
{
"integrations": {
"newsletter": {
"provider": "resend",
"title": "Get release notes",
"placement": "changelog"
}
}
}
表单随后会挂载到每个更新日志页面(任何设置了 rss: true 的页面)。若要在某一页面跳过,请在该页面的 frontmatter 中设置 newsletter: false。已手动放置 <EmailSubscribe> 的页面不会再出现第二个表单。
完整的 integrations.newsletter 配置块接受与组件相同的字段(provider、title、description、collapsed、username、snippet、height),另外还支持 placement(none,默认值;或 changelog)。
仪表板中的 Email Signups 卡片包含 Form title 和 Form subtitle 输入框。当 docs.json 未提供 title 和 description 时,自动放置的表单会使用这些内容。仅当需要覆盖仪表板文案时,才在 docs.json 中设置 title/description。
