#javascript #reactjs #rss #gatsby
Вопрос:
На моем сайте «Гэтсби» я пытаюсь создать RSS-каналы для каждого автора. Тем не менее, это оказывается непросто. Проблема в том, что я не могу передать какие-либо переменные данные в output
раздел, в котором находился бы мой желаемый RSS-путь. Например: вывод: blog/feed-${authorName}-posts.xml
. Теоретически это приведет к созданию RSS-канала для каждого автора.
Кому-нибудь это удалось? Я ценю любой совет.
РЕДАКТИРОВАТЬ: Я использую gatsby-plugin-feed
плагин для создания RSS-канала. https://www.gatsbyjs.com/plugins/gatsby-plugin-feed/
Вот мой код до сих пор:
const blogAuthor = {
serialize: ({ query: { site, allContentfulAuthor } }) => {
return allContentfulAuthor.nodes.map(author => {
return Object.assign(
{},
{},
{
custom_elements: [
{ 'dc:creator': author.name },
{
posts: author.blog___post?.map(post => ({
title: post.title,
description: post.description.description,
date: post.date,
url: site.siteMetadata.siteUrl '/blog/' post.slug,
})),
},
],
description: author.description,
},
);
});
},
query: `
{
allContentfulAuthor(sort: {order: ASC, fields: name}) {
nodes {
name
description
blog___post {
slug
title
date
categories {
name
}
description {
description
}
author {
name
description
}
}
}
}
}
`,
output: `blog/feed-${authorName}-posts.xml`,
title: `Aiven Blog | ${authorName}`,
match: `^/blog-${authorName}-posts/`,
};
Комментарии:
1. Вы не указываете, как вы создаете свои RSS-каналы. Похоже, вы используете плагин, которому не хватает достаточной конфигурации. Вероятно, проще просто генерировать каналы, используя более универсальные библиотеки, и
fs.writeFile
записывать их на диск вместо того, чтобы ограничиваться плагином.2. @coreyward Спасибо за ваш комментарий! Ты правильно подметил. Я использую плагин. Это называется
gatsby-plugin-feed
. Я только что обновил вопрос. Я новичок в создании RSS-каналов. Вы упомянули библиотеки общего назначения иfs.writeFile
. У вас есть какие-нибудь примеры, на которые можно посмотреть? Или вам приходят на ум какие-то конкретные библиотеки? Спасибо за вашу помощь!3. Я уже много раз пользовался этим .
4. Это
fs.writeFile
было как раз то, что мне было нужно. Я последовал этому примеру, чтобы начать: geeksforgeeks.org/node-js-fs-writefile-method .