2

我正在尝试使用带有 Hugo ssg 的 Netlify CMS。

我用:

netlify-cms@1.0
hugo@0.29

我有一个简单的 netlify-cms config.yml 有两个集合:帖子和作者。

  backend:
    name: github
    repo: sebhewelt/atlas
    branch: master

  display_url: https://mypage.com
  publish_mode: editorial_workflow  
  media_folder: "static/uploads"
  public_folder: "/uploads"
  collections:

    - label: "Posts"
      name: "post"
      folder: "content"
      create: true
      slug: "{{year}}-{{month}}-{{day}}-{{slug}}"
      fields:
        - { label: "Title", name: "title", widget: "string" }
        - { label: "Publish Date", name: "date", widget: "datetime" , format: "YYYY-MM-DD hh:mma"}
        - { label: "Body", name: "body", widget: "markdown" }


    - label: "Authors"
      name: "author"
      folder: "data"
      create: true
      fields:
        - {label: "Name", name: "name", widget: "string"}
        - {label: "About", name: "about", widget: "string"}

文档区分了两种集合类型,我假设我应该选择文件集合,因为我想将作者数据保存在一个文件中。

我希望能够通过管理仪表板添加作者并将其保存到数据文件夹中的文件中。文档没有提供保存作者的文件应该是什么样子的示例(或者 cms 是否自动生成?)。

我当前的配置遇到错误。当我保存“新作者”时,我得到了这个:

无法持久化条目:错误:集合必须具有作为有效条目标识符的字段名称

为什么我会收到此错误?

4

1 回答 1

6

您的作者文件需要位于顶级集合之下。此外,如果您希望能够将多个作者添加到文件中,则需要将“名称”和“关于”小部件包装在“列表”类型的小部件中。

例子:

  collections:
    - label: "Settings"
      name: "settings"
      files:
        - name: "authors"
          label: "Authors"
          file: "data/authors.yml"
          extension: "yml"
          fields:
            - label: "Author"
              name: "author"
              widget: "list"
              fields:
                - {label: "Name", name: "name", widget: "string"}
                - {label: "About", name: "about", widget: "string"}

用于文件集合的 CMS 文档:https ://www.netlifycms.org/docs/collection-types/#file-collections

列表小部件的 CMS 文档:https ://www.netlifycms.org/docs/widgets/#list

于 2017-12-09T16:45:37.890 回答