@delmaredigital/payload-page-tree

中文文档
0.4.1发布于 2026/11/10MITTypeScriptES Module构建来源已验证近 30 天下载 2355

带有可视树管理的基于文件夹的分级 URL shalls 的有效载荷 CMS 插件

中文使用文档
文档目录7 节
  1. 安装
  2. 快速启动
  3. 1. 添加插件
  4. 2. 定义您的收藏
  5. 3. 前端路线
  6. 访问控制
  7. 许可证

@delmaredigital/活页-树

一个将内置文件夹功能扩展至自动生成分级 URL satters 的有效载荷 CMS 插件 。 文件夹定义了 URL 结构,页面选择一个文件夹,而 satters 是自动生成的.

Starter Template - Use This

Deploy with Vercel

Ask DeepWiki

联合国 插件.delmaredigital.com/docs/页面树 • 妇女 概览

安装

pnpm add @delmaredigital/payload-page-tree

快速启动

1. 添加插件

// src/payload.config.ts
import { buildConfig } from 'payload'
import { pageTreePlugin } from '@delmaredigital/payload-page-tree'
import { Pages } from './collections/Pages'

export default buildConfig({
  collections: [Pages],
  plugins: [
    pageTreePlugin(),  // Auto-detects 'pages' and 'posts' if they exist
  ],
})

2. 定义您的收藏

您的收藏 必须 有个 slug 字段。 插件使它从文件夹路径+页面段中只读和自动生成值.

// src/collections/Pages/index.ts
import type { CollectionConfig } from 'payload'

export const Pages: CollectionConfig = {
  slug: 'pages',
  fields: [
    { name: 'title', type: 'text', required: true },
    {
      name: 'slug',
      type: 'text',
      required: true,
      unique: true,
      index: true,
    },
  ],
}

重要内容: 不使用有效载荷 slugField() 帮手 使用一个纯文本字段——插件通过自己的钩子来管理 sults.

3. 前端路线

// app/[...slug]/page.tsx
export default async function Page({ params }: { params: { slug: string[] } }) {
  const fullSlug = params.slug.join('/')

  const { docs } = await payload.find({
    collection: 'pages',
    where: { slug: { equals: fullSlug } },
    limit: 1,
  })

  // ...
}

就这样! 该插件添加 folder, (中文(简体) ), pageSegment, (中文(简体) ), sortOrder,以及 slugHistory 字段,然后在 /admin/page-tree。 。 。 .


访问控制

树观在下面叫十四个终点 /api/page-tree/*。两层决定谁可以使用它们:

  1. 端口门 - 那个 access 选项在每一个终点之前运行。 默认情况下,它需要一个经认证的有效载荷用户(401 没有用户, 403 他们否认真主.
  2. 收集访问规则 - 阅读和撰写用户运行的文档 overrideAccess: false 作为请求用户,所以 access 执行关于页面和文件夹收藏的规则。 URL维护(slug exceptry,相撞检查,级联目录)读取可信赖的访问权限,但只有用户能读取的文件夹下方. 见 出入控制 关于细节.
pageTreePlugin({
  // Only admins may use the tree endpoints
  access: ({ req }) => req.user?.role === 'admin',
})

从0.3.16或更早升级: 这些版本注册了没有认证的终点,并绕过收藏访问规则。 升级和审查 access 在您的页面和文件夹收藏上的规则 – 它们现在管理树 。 见 变化。 。 。 .

许可证

麻省理工学院

版本与发布记录

@delmaredigital/payload-page-tree 共发布 24 个版本,首次发布于 2026/01/11;过去 12 个月发布了 24 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.4.1latest2026/11/103 天前
0.4.02026/11/093 天前
0.3.182026/11/085 天前
0.3.172026/09/092 个月前
0.3.162026/06/075 个月前
0.3.152026/06/075 个月前

关于 @delmaredigital/payload-page-tree 的常见问题

@delmaredigital/payload-page-tree 是什么?

带有可视树管理的基于文件夹的分级 URL shalls 的有效载荷 CMS 插件

如何安装 @delmaredigital/payload-page-tree?

在项目目录运行 npm install @delmaredigital/payload-page-tree,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:next(>=14.0.0 || >=15.0.0 || >=16.0.0)、react(>=18.0.0 || >=19.0.0)、payload(>=3.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@delmaredigital/payload-page-tree 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@delmaredigital/payload-page-tree 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@delmaredigital/payload-page-tree 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js ^18.20.2 || >=20.9.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@delmaredigital/payload-page-tree 可以商用吗?

@delmaredigital/payload-page-tree 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@delmaredigital/payload-page-tree 的下载量有多少?

根据 npm 官方下载统计,@delmaredigital/payload-page-tree 在 2026/10/12 – 2026/11/10 这 30 天内被下载 2,355 次,日均约 79 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@delmaredigital/payload-page-tree 还在维护吗?

最新版本 0.4.1 发布于 2026/11/10(3 天前);至今共发布 24 个版本,其中过去 12 个月发布了 24 个;首次发布于 2026/01/11。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。