Jamdesk Documentation logo

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."
/>

属性

属性类型用途
providerstring服务商 id:resend、mailchimp、kit、loops、beehiiv、brevo、sendgrid、buttondown 或 substack。
titlestring显示在表单上方的可选标题。
descriptionstring标题下方的可选补充说明。
collapsedboolean仅限原生服务商。初始显示为紧凑的 Subscribe 按钮,点击后展开为完整表单。
usernamestringButtondown / Substack 账户用户名(仅限嵌入式服务商)。
snippetstring任何服务商的原始嵌入标记。备用方案(见下文)。
classNamestring包装器上的额外 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。

接下来做什么?

连接服务商

设置 Resend、Mailchimp、Kit、Loops、beehiiv、Brevo 或 SendGrid

Update 组件

编写订阅者会收到的更新日志条目