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},