使用 TinaCMS 作为网站构建器

TinaCMS 支持基于块的编辑,因此您的编辑者可以使用您预定义的块(即 页面部分)构建完整的页面。

假设您希望编辑者构建一个页面,并且您有 3 种主要的“块”类型可以开始:

  • 一个“英雄”块
  • 一个“功能”块
  • 一个“主要内容”块

我们希望允许编辑者在每个页面上使用各种块。

定义我们的模式

我们将使用 object 类型,并提供一个 templates 列表,其中每个“模板”代表一个独特的块类型。

我们已经定义了 3 个块(contentfeatureshero)的结构,以及我们的主要块字段:blocks

查询块数据

因为块列表中的每个项目可以有一个独特的模式,所以查询这些数据不像其他类型的字段那么简单。我们需要使用 GraphQL 的片段语法来查询每种块类型的适当数据形状。

片段名称是根据集合名称和父字段名称自动生成的。例如,如果集合是 pages,字段是 blocks,块的名称是 hero,则片段将命名为 PagesBlocksHero

有关如何使用 TinaCMS 的 GraphQL API 查询数据的更多信息,请查看 查询文档

渲染我们的块

我们可以通过创建一个新的 Blocks 组件来渲染页面上的块,该组件将在 switch 语句中有条件地渲染每种块类型。

注意,每个块上的 __typename{CollectionName}{FieldName}{BlockTemplateName}

在我们的例子中:

  • CollectionName: "Pages"
  • FieldName: "Blocks"
  • BlockTemplateName: "Content" | "Hero" | "Features"

添加可视化块选择器(实验性)

这是一个实验性功能,API 可能会发生变化。有任何想法吗?请在聊天中告诉我们,或者通过我们的社区渠道之一联系我们

这个可视化块选择器允许编辑者从一组图像中选择块,而不是文本。

首先,要启用可视化块选择器,必须在 UI 键中将 visualSelector 属性设置为 true。

要设置块选择器,必须为您希望预览图像的每个块提供预览图像。每个块的基本结构如下所示。

previewSrc 是将在可视化选择器中渲染的图像 URL。如果没有提供预览,块仍然可以通过点击标题来使用,只是不会显示预览图像。

可选地 可以提供一个 category,允许块分组到不同的类别中。

视频教程

对于那些更喜欢从视频中学习的人,可以查看我们 "TinaCMS 深入探讨" 系列中的“设置块”片段。

Last Edited: March 26, 2025