迁移时的常见错误
以下是从Forestry迁移到TinaCMS时可能遇到的常见问题列表。
迁移包含非字母数字字符的字段
在TinaCMS中,所有字段只能包含字母数字字符或下划线。而在Forestry中,你可以使用包含非字母数字字符的字段,例如my-field-name或my field name。
TinaCMS提供了一个nameOverride属性,允许你指定如何输出包含特殊字符的字段。
例如:
Forestry迁移工具(npx @tinacms/cli init)在导入模板时应自动应用nameOverride。
迁移块
_template vs template
在TinaCMS中,使用块作为字段类型的概念(以前在Forestry中可用)被支持为在对象字段中提供模板。在迁移过程中,迁移工具会将你的块转换为模板。
在TinaCMS中,我们默认使用_template键而不是template键。Forestry迁移工具会自动处理这一点,为Forestry站点设置templateKey为"template",但需要注意这一点。
在块名称中使用破折号
在TinaCMS中,前置元数据模板的名称中通常会有-。TinaCMS本身不支持字段名称中使用破折号,但它支持使用nameOverride属性来处理这种情况。
例如,如果你有一个看起来像这样的前置元数据模板。
以及看起来像这样的内容
那么在TinaCMS中,你的块字段将如下所示:
你的输出内容将继续如下所示:
常见错误信息及其修复方法
错误:块模板"TemplateName"未为字段"FieldName"定义
在Forestry中,你可以有一个块字段,其中包含一个未在前置元数据模板中定义的模板。在TinaCMS中,这是不允许的。你需要将Forestry中的模板添加到块字段的模板列表中,并为该模板定义字段。
在管理后台获取内容时出错
这可能由于多种原因发生。一些常见原因是你尝试获取的数据
- 格式不正确
- 缺少必填字段
- 缺少
_template键。 如果你查看终端中的错误信息,你应该能看到导致问题的确切错误。
例如,如果你缺少_template,你将看到类似这样的错误
这可以通过在文件的前置元数据中添加_template键来修复。
其中"my_template"是文件所属集合中的模板名称。
错误 YAMLException: duplicated mapping key
当你的Markdown文件的前置元数据中有两个相同的键时会发生这种情况。在Forestry中,这是允许的,但在TinaCMS中不允许。你需要删除其中一个键。
例如,如果你有一个看起来像这样的文件
需要更改为
信息:Match被转换为newMatch
在TinaCMS中,match属性的工作方式与在Forestry中有所不同。在Forestry中,match属性是一个包含文件扩展名的glob模式。在TinaCMS中,match属性是一个不包含文件扩展名的glob模式。
在TinaCMS中,match属性为每个集合设置并嵌套。
查看match属性文档以获取更多信息。
由于此迁移工具是从Forestry转换到TinaCMS,它将自动将match属性转换为TinaCMS格式。最好仔细检查它是否匹配正确。