限制gatsby插件提要中的项目数

限制gatsby插件提要中的项目数,gatsby,gatsby-plugin-feed,Gatsby,Gatsby Plugin Feed,for似乎表明我们可以对提要中显示的帖子数量设置限制: { // Create a default RSS feed. Others may be added by using the format below. feeds: [ { query: ` { allMarkdownRemark( limit: 1000, sort: { order: DESC,

for似乎表明我们可以对提要中显示的帖子数量设置限制:

{
  // Create a default RSS feed. Others may be added by using the format below.
  feeds: [
    {
      query: `
      {
        allMarkdownRemark(
          limit: 1000,
          sort: {
            order: DESC,
            fields: [frontmatter___date]
          }
        ) {
          edges {
            node {
              frontmatter {
                title
                date
              }
              fields {
                slug
              }
              excerpt
              html
            }
          }
        }
      }
    `,
    ...
  ]
}

当我在
gatsby config.js
中尝试将自己的定义中的
limit
更改为
10
时,似乎没有效果。有没有一种标准的方法来限制RSS提要中的项目数量,这样我就不会有超过250篇的帖子了?

我在我的个人项目中使用的是
gatsby插件提要
。正如您在问题中建议的那样,我尝试在GraphQL查询中使用
limit
,在我的案例中效果很好

我猜您项目中的其他插件或代码会干扰xml生成。调试您的问题的唯一方法可能是创建一个基本项目,并首先尝试限制您的项目。我记得我曾经两次错误地列出了
gatsby plugin feed
,因此省略了第一个清单中的说明

这是我的密码。也许它可以帮助你:

//gatsby-config.js
{
解析:`gatsby插件提要`,
选项:{
查询:`
{
场地{
站点元数据{
标题
描述
站点URL
站点url:siteUrl
}
}
}
`,
提要:[
{
序列化:({query:{site,allmarkdownmark}})=>{
返回allMarkdownRemark.edges.map(edge=>{
返回Object.assign({},edge.node.frontmatter{
描述:edge.node.extract,
url:site.sitematadata.siteUrl+“/blog”+edge.node.fields.slug,
guid:site.siteMatadata.siteUrl+“/blog”+edge.node.fields.slug,
类别:[“启动”],
自定义元素:[
{“content:encoded”:edge.node.html},
{“author”:edge.node.frontmatter.author},
{“语言”:“en”},
],
});
});
},
查询:`
{
所有的标记(
排序:{order:DESC,字段:[frontmatter\uuuuuu\u date]},
筛选器:{fileAbsolutePath:{regex:“content/blog/”},
限额:2
) {
边缘{
节点{
节选
html
字段{slug}
前沿物质{
标题
日期
作者
}
}
}
}
}
`,
输出:“/rss.xml”,
标题:“博客”,
匹配:“^/blog/”,
},
],
},
},
@AlbertSkibinski在他的评论中帮助我意识到RSS提要只在
gatsby build
上生成。我正在进行更改并尝试运行
gatsby develope
,这对我在
public
文件夹中检查的输出没有影响

我不太喜欢覆盖不需要覆盖的默认值,所以我通过从
gatsby plugin feed/internal
导入默认值拼凑了自己的配置代码:

const gatsbyFeedOpts=require('gatsby-plugin-feed/internals'))
//复制和替换默认选项中的限制
让feedOpts=gatsbyFeedOpts.defaultOptions
feedOpts.feeds[0]。query=feedOpts.feeds[0]。query.replace(
‘限额:1000’,
‘限额:10’
)
module.exports={
站点元数据:{
//为简洁起见,排除在外
},
插件:[
//为简洁起见,排除了其他插件
{
解析:`gatsby插件提要`,
选项:feedOpts,
},
],
}

值得注意的是,尽管文档中说我们需要在提要配置中实现一个
序列化
方法,但我在这里使用的导入默认值中并没有包含该方法。这可能会导致未来版本的《盖茨比》插件提要出现问题,但它与我当前使用的版本(2.4.1)配合得很好。

您是否也在提要插件选项中添加了?@AlbertSkibinski中提到的
序列化
部分?您的文档链接非常有用。我想我并没有完全看透它。它帮助我看到RSS提要只在
gatsby build
上生成,而不是
gatsby develop
上生成。非常感谢您分享您的代码,Thomas!我在桌子上捶了几个小时之后,又走了另一条路。然而,您的工作代码为我提供了一个急需的健全性检查!