功能指南
付费文档
用 MDX frontmatter 创建带试读和会员解锁的文档页面
01MVP 的文档系统内置了付费解锁能力。你不需要单独写一个页面,只要在 MDX 文档顶部加上几个字段,就可以把普通文档变成带试读的会员内容。
基本用法
在任意文档的 frontmatter 里加入:
---
title: 拿到第一个付费用户的 7 天流程
description: 一套适合 MVP 早期使用的付费验证流程。
access: paid
previewRatio: 0.2
planId: 01mvp_lifetime
---
这里写正文内容。这三个字段的含义:
| 字段 | 说明 |
|---|---|
access | 文档访问权限。设为 paid 后,未解锁用户只能看到试读内容。 |
previewRatio | 试读比例。0.2 表示大约展示正文的 20%。可用范围是 0.05 到 0.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.05到0.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 | 定义 access、previewRatio、planId 等 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 | 渲染付费文档的试读、购买提示和完整正文。 |