限制gatsby插件提要中的项目数
for似乎表明我们可以对提要中显示的帖子数量设置限制:限制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,
{
// 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!我在桌子上捶了几个小时之后,又走了另一条路。然而,您的工作代码为我提供了一个急需的健全性检查!