0

我克隆了这个 gatsby netlify cms 入门博客并尝试添加自定义预览。我已按照所有说明进行操作,但仍然无法正常工作。这是我的config.yml


...
collections:
  - name: "blog"
    label: "Blog"
    folder: "content/blog"
    create: true
    fields:
      - { name: path, label: Path }
      - { name: date, label: Date, widget: date }
      - { name: title, label: Title }
      - { name: description, label: Description }
      - { name: body, label: Body, widget: markdown }

我添加了gatsby-plugin-netlify-cms这样的:

plugins: [
    {
      resolve: 'gatsby-plugin-netlify-cms',
      options: {
        modulePath: `${__dirname}/src/cms/cms.js`,
      },
    },

在我的cms.js,我有:

import CMS from 'netlify-cms-app'

import BlogPostPreview from './preview-templates/BlogPostPreview'

CMS.registerPreviewTemplate('blog', BlogPostPreview)

而我BlogPostPreview只是渲染BlogPostTemplate

import React from 'react'
import { BlogPostTemplate } from '../../templates/blog-post'

const BlogPostPreview = ({ entry, widgetFor }) => {

  return (
    <BlogPostTemplate
      body={widgetFor('body')}
      title={entry.getIn(['data', 'title'])}
      date={new Date()}
    />
  )
}

export default BlogPostPreview

我错过了什么吗?我不这么认为。我将我的配置与官方的 starter repo 进行了比较,没有发现任何差异。当我转到管理门户上的新博客文章时,我只看到默认的纯 html。任何帮助将不胜感激。

你可以在这里查看我的回购

4

1 回答 1

1

你说

import { BlogPostTemplate } from '../../templates/blog-post'

但我在该文件夹中看不到该名称的文件?

这是你的回购和官方启动器之间的不同,它应该是

import { PostTemplate } from '../../templates/post-template'
于 2020-07-24T12:48:30.937 回答