diff --git a/packages/docusaurus-plugin-content-blog/src/__tests__/__snapshots__/generateBlogFeed.test.ts.snap b/packages/docusaurus-plugin-content-blog/src/__tests__/__snapshots__/generateBlogFeed.test.ts.snap index a313661647..8f1e5accc8 100644 --- a/packages/docusaurus-plugin-content-blog/src/__tests__/__snapshots__/generateBlogFeed.test.ts.snap +++ b/packages/docusaurus-plugin-content-blog/src/__tests__/__snapshots__/generateBlogFeed.test.ts.snap @@ -1,18 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`blogFeed atom can show feed without posts 1`] = ` -" - - https://docusaurus.io/blog - Hello Blog - 2015-10-25T23:29:00.000Z - https://github.com/jpmonette/feed - - Hello Blog - https://docusaurus.io/image/favicon.ico - Copyright -" -`; +exports[`blogFeed atom should not show feed without posts 1`] = `null`; exports[`blogFeed atom shows feed item for each post 1`] = ` " @@ -49,20 +37,7 @@ exports[`blogFeed atom shows feed item for each post 1`] = ` " `; -exports[`blogFeed rss can show feed without posts 1`] = ` -" - - - Hello Blog - https://docusaurus.io/blog - Hello Blog - Sun, 25 Oct 2015 23:29:00 GMT - https://validator.w3.org/feed/docs/rss2.html - https://github.com/jpmonette/feed - Copyright - -" -`; +exports[`blogFeed rss should not show feed without posts 1`] = `null`; exports[`blogFeed rss shows feed item for each post 1`] = ` " diff --git a/packages/docusaurus-plugin-content-blog/src/__tests__/generateBlogFeed.test.ts b/packages/docusaurus-plugin-content-blog/src/__tests__/generateBlogFeed.test.ts index 7bc33a1bda..9a6d4aba39 100644 --- a/packages/docusaurus-plugin-content-blog/src/__tests__/generateBlogFeed.test.ts +++ b/packages/docusaurus-plugin-content-blog/src/__tests__/generateBlogFeed.test.ts @@ -32,7 +32,7 @@ function getBlogContentPaths(siteDir: string): BlogContentPaths { describe('blogFeed', () => { (['atom', 'rss'] as const).forEach((feedType) => { describe(`${feedType}`, () => { - test('can show feed without posts', async () => { + test('should not show feed without posts', async () => { const siteDir = __dirname; const siteConfig = { title: 'Hello', diff --git a/packages/docusaurus-plugin-content-blog/src/blogUtils.ts b/packages/docusaurus-plugin-content-blog/src/blogUtils.ts index 84e173caae..9759e17d02 100644 --- a/packages/docusaurus-plugin-content-blog/src/blogUtils.ts +++ b/packages/docusaurus-plugin-content-blog/src/blogUtils.ts @@ -67,7 +67,7 @@ export async function generateBlogFeed( } const {siteConfig} = context; const blogPosts = await generateBlogPosts(contentPaths, context, options); - if (blogPosts == null) { + if (!blogPosts.length) { return null; } diff --git a/packages/docusaurus-plugin-content-blog/src/index.ts b/packages/docusaurus-plugin-content-blog/src/index.ts index 1d47eb628c..0c095bffb3 100644 --- a/packages/docusaurus-plugin-content-blog/src/index.ts +++ b/packages/docusaurus-plugin-content-blog/src/index.ts @@ -117,6 +117,7 @@ export default function pluginContentBlog( const {postsPerPage, routeBasePath} = options; blogPosts = await generateBlogPosts(contentPaths, context, options); + if (!blogPosts.length) { return null; } @@ -506,9 +507,14 @@ export default function pluginContentBlog( }, injectHtmlTags() { + if (!blogPosts.length) { + return {}; + } + if (!options.feedOptions?.type) { return {}; } + const feedTypes = options.feedOptions.type; const { siteConfig: {title},