首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在gatsby-plugin-feed中从RSS返回图像

在gatsby-plugin-feed中从RSS返回图像
EN

Stack Overflow用户
提问于 2019-12-05 22:19:43
回答 1查看 263关注 0票数 0

我试着从一篇博客文章的头条中返回一张作者的图片。前面的事情就是这样构造的;

代码语言:javascript
复制
---
title: XXX
date: "XXX"
description: "XXX"
featuredImage: './featured-image.jpg'
avatar: './author.jpg'
author: 'XXX'
---

在gatsby-config中,我有这样的gatsby-plugin-feed设置-

代码语言:javascript
复制
{
      resolve: `gatsby-plugin-feed`,
      options: {
        query: `
          {
            site {
              siteMetadata {
                title
                author
                siteUrl
                site_url: siteUrl
              }
            }
          }
        `,
        feeds: [
          {
            serialize: ({ query: { site, allMarkdownRemark } }) => {
              return allMarkdownRemark.edges.map(edge => {
                return Object.assign({}, edge.node.frontmatter, {
                  description: edge.node.frontmatter.description,
                  date: edge.node.frontmatter.date,
                  url: site.siteMetadata.siteUrl + edge.node.fields.slug,
                  avatar: edge.node.frontmatter.avatar,
                  custom_elements: [{ "content:encoded": edge.node.html }],
                })
              })
            },
            query: `
              {
                allMarkdownRemark(
                  sort: { order: DESC, fields: [frontmatter___date] },
                ) {
                  edges {
                    node {
                      excerpt
                      html
                      fields { slug }
                      frontmatter {
                        title
                        date
                        author
                        description
                        avatar
                      }
                    }
                  }
                }
              }
            `,
            output: "/rss.xml",
            title: "Your Site's RSS Feed",
          },
        ],
      },
    },

这会导致一个错误Error: Field "avatar" of type "File" must have a selection of subfields. Did you mean "avatar { ... }"?,我该如何更改它,以便在RSS提要中返回一个图像URL?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-12-06 04:46:31

初始查询需要调用image_urlrssMetadata,还缺少正常工作所需的RSS-plugin查询的一部分代码

guid: rssMetadata.site_url + edge.node.fields.slug

Gatsby RSS Feed Docs也是非常有用的

代码语言:javascript
复制
query: `
        {
          site {
            siteMetadata {
              rssMetadata {
                site_url
                title
                author
                image_url
              }
            }
          }
        }
      `,
        feeds: [
          {
            serialize: ({ query: { site, allMarkdownRemark } }) => {
              return allMarkdownRemark.edges.map(edge => {
                return Object.assign({}, edge.node.frontmatter, {
                  description: edge.node.frontmatter.description,
                  date: edge.node.frontmatter.date,
                  url: rssMetadata.site_url + edge.node.fields.slug,
                  guid: rssMetadata.site_url + edge.node.fields.slug,
                  avatar: edge.node.frontmatter.avatar,
                  custom_elements: [{ "content:encoded": edge.node.html }],
                })
              })
            },

最后,可能需要将avatar作为custom_element调用

代码语言:javascript
复制
custom_elements: [
                    { "avatar": edge.node.frontmatter.avatar},
                    { "content:encoded": edge.node.html }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59197162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档