功能指南

付费文档

用 MDX frontmatter 创建带试读和会员解锁的文档页面

01MVP 的文档系统内置了付费解锁能力。你不需要单独写一个页面,只要在 MDX 文档顶部加上几个字段,就可以把普通文档变成带试读的会员内容。

基本用法

在任意文档的 frontmatter 里加入:

---
title: 拿到第一个付费用户的 7 天流程
description: 一套适合 MVP 早期使用的付费验证流程。
access: paid
previewRatio: 0.2
planId: 01mvp_lifetime
---

这里写正文内容。

这三个字段的含义:

字段说明
access文档访问权限。设为 paid 后,未解锁用户只能看到试读内容。
previewRatio试读比例。0.2 表示大约展示正文的 20%。可用范围是 0.050.8
planId解锁这篇文档需要购买的计划 ID。当前会员文档使用 01mvp_lifetime

如果不写 access,文档默认是免费内容。

创建一篇付费文档

新建 MDX 文件

文档一般放在 apps/01mvp-web/content/docs 下。比如要放到会员内容区,可以新建:

apps/01mvp-web/content/docs/pro/my-paid-guide.mdx

写入 frontmatter

最小配置如下:

---
title: 我的付费教程
description: 这篇教程会展示试读内容,会员解锁后可以阅读全文。
access: paid
previewRatio: 0.2
planId: 01mvp_lifetime
---

建议显式写上 planId,这样以后即使新增多个会员计划,也能清楚知道这篇文章绑定的是哪一个计划。

正常编写正文

正文仍然按普通 MDX 写法处理,可以使用标题、列表、代码块、表格、Callout、Steps 等组件。

## 第一部分

这里会进入试读内容。

## 第二部分

未解锁用户通常看不到这一段,会员可以继续阅读全文。

加入目录

如果这个文件所在目录有 meta.json,把新文件名加入 pages

{
  "title": "会员内容",
  "pages": ["index", "my-paid-guide"]
}

文件名不需要写 .mdx.zh.mdx 后缀。

阅读和解锁流程

付费文档在页面上的行为如下:

读者状态页面表现
未登录显示试读内容,并提示登录后继续解锁。
已登录但未购买显示试读内容,并展示订阅或购买入口。
已购买对应计划显示完整 MDX 正文和目录。

系统会根据当前登录用户的购买记录判断是否解锁。一次性购买成功后,只要购买记录匹配 planId 或对应支付产品,就会获得访问权限。

试读内容怎么生成

previewRatio 控制未解锁用户能看到多少正文。比如:

previewRatio: 0.2

表示大约展示 20% 的正文。系统会尽量按段落截断,不会强行把一句话切开。

需要注意:

  • 试读最少会保留一小段可读内容,避免页面只有一两行。
  • 试读比例会被限制在 0.050.8 之间。
  • 搜索索引、公开文本和 LLM 文档接口只会暴露试读部分,不会输出完整付费正文。

计划 ID 和支付配置

当前会员文档默认绑定 01mvp_lifetime。这个计划在支付配置里同时支持 Stripe 和 Waffo,价格信息来自当前启用的支付提供商。

常用环境变量:

# Stripe
NEXT_PUBLIC_STRIPE_PRICE_01MVP_LIFETIME=price_xxx
STRIPE_01MVP_LIFETIME_PRICE_ID=price_xxx

# Waffo
NEXT_PUBLIC_WAFFO_PRICE_01MVP_LIFETIME=prod_or_price_xxx
WAFFO_01MVP_LIFETIME_PRODUCT_ID=prod_or_price_xxx

页面会优先使用当前支付提供商下的 01mvp_lifetime 配置。如果支付产品 ID 还没配置,文档仍会显示试读,但购买按钮不能完成真实付款。

常见问题

相关文件

文件作用
apps/01mvp-web/content-collections.ts定义 accesspreviewRatioplanId 等 frontmatter 字段。
apps/01mvp-web/src/lib/docs/access.ts判断文档是否解锁,以及绑定哪个会员计划。
apps/01mvp-web/src/lib/docs/preview.ts生成试读内容,并限制公开搜索和 LLM 文本。
apps/01mvp-web/src/app/(main)/(docs)/docs/[[...path]]/page.tsx渲染付费文档的试读、购买提示和完整正文。