付费文档

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

01MVP 的文档系统内置了会员试读能力。你不需要单独写页面,只要在 MDX 文档顶部加上 access: paid,这篇文章就会变成会员文档。

快速版

最小配置如下:

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

这里写正文内容。

字段含义:

字段说明
access文档访问权限。设为 paid 后,未解锁用户只能看到试读内容。
previewRatio试读比例。0.2 表示大约展示正文的 20%。可用范围是 0.050.8

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

接下来你可以:

  • 在需要会员解锁的 MDX 文件里添加 access: paid
  • 按内容价值调整 previewRatio
  • 在本地登录一个未购买账号,检查试读和开通会员入口
  • 用有效会员账号检查完整正文是否可读

会员文档的边界

access: paid 只表示这篇文章需要有效会员才能阅读全文。

MDX 里不要写这些内容:

  • 商品 ID
  • 支付 provider 的 price id
  • 单篇购买权益
  • 源码包 ID
  • 兑换码规则

这些属于支付、商品或交付系统,不属于文档内容本身。文档作者只需要关心这篇文章是否免费、试读多少。

创建一篇付费文档

新建 MDX 文件

文档一般放在 apps/01mvp-web/content/docs 下。比如:

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

写入 frontmatter

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

正常编写正文

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

## 第一部分

这里会进入试读内容。

## 第二部分

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

加入目录

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

{
  "title": "实战案例",
  "pages": [ "my-paid-guide"]
}

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

阅读和解锁流程

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

读者状态页面表现
未登录显示试读内容,并提示登录后继续。
已登录但不是会员显示试读内容,并展示开通会员入口。
有效会员显示完整 MDX 正文和目录。

V1 不支持单篇文档购买,也不支持兑换码解锁某篇文档。低价项目包、资料包、源码相关交付物走数字商品系统,一次性交付,不和会员文档权限绑定。

试读内容怎么生成

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

previewRatio: 0.2

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

需要注意:

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

相关文件

文件作用
apps/01mvp-web/content-collections.ts定义 accesspreviewRatio 等 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渲染付费文档的试读、购买提示和完整正文。
apps/01mvp-web/src/lib/payments/channels.ts维护站内 checkout 可用支付渠道。

常见问题