From 7bab9ba46d38559cb00aecfc6fdf05a61ac1cc0a Mon Sep 17 00:00:00 2001
From: Joshua Chen
Date: Tue, 18 Jan 2022 17:20:37 +0800
Subject: [PATCH] feat(content-blog): include tags in feed (#6388)
* feat(content-blog): include tags in feed
* fix
---
.../2018-12-14-Happy-First-Birthday-Slash.md | 1 +
.../__fixtures__/website/blog/complex-slug.md | 1 +
.../__fixtures__/website/blog/date-matter.md | 1 +
.../__tests__/__snapshots__/feed.test.ts.snap | 35 ++++++++++++++-----
.../src/__tests__/index.test.ts | 20 +++++++++--
.../src/feed.ts | 11 +++++-
6 files changed, 58 insertions(+), 11 deletions(-)
diff --git a/packages/docusaurus-plugin-content-blog/src/__tests__/__fixtures__/website/blog/2018-12-14-Happy-First-Birthday-Slash.md b/packages/docusaurus-plugin-content-blog/src/__tests__/__fixtures__/website/blog/2018-12-14-Happy-First-Birthday-Slash.md
index 5a8f32cea1..02350da6d2 100644
--- a/packages/docusaurus-plugin-content-blog/src/__tests__/__fixtures__/website/blog/2018-12-14-Happy-First-Birthday-Slash.md
+++ b/packages/docusaurus-plugin-content-blog/src/__tests__/__fixtures__/website/blog/2018-12-14-Happy-First-Birthday-Slash.md
@@ -3,6 +3,7 @@ title: Happy 1st Birthday Slash!
authors:
- name: Yangshun Tay
- slorber
+tags: [birthday]
---
Happy birthday!
diff --git a/packages/docusaurus-plugin-content-blog/src/__tests__/__fixtures__/website/blog/complex-slug.md b/packages/docusaurus-plugin-content-blog/src/__tests__/__fixtures__/website/blog/complex-slug.md
index 1eed965b4b..e7f8b7819e 100644
--- a/packages/docusaurus-plugin-content-blog/src/__tests__/__fixtures__/website/blog/complex-slug.md
+++ b/packages/docusaurus-plugin-content-blog/src/__tests__/__fixtures__/website/blog/complex-slug.md
@@ -3,6 +3,7 @@ slug: /hey/my super path/héllô
title: Complex Slug
# This date is not YAML date, but we can still use it.
date: 2020/08/16
+tags: [date, complex]
---
complex url slug
diff --git a/packages/docusaurus-plugin-content-blog/src/__tests__/__fixtures__/website/blog/date-matter.md b/packages/docusaurus-plugin-content-blog/src/__tests__/__fixtures__/website/blog/date-matter.md
index a48c55c3c4..139048ea4e 100644
--- a/packages/docusaurus-plugin-content-blog/src/__tests__/__fixtures__/website/blog/date-matter.md
+++ b/packages/docusaurus-plugin-content-blog/src/__tests__/__fixtures__/website/blog/date-matter.md
@@ -1,5 +1,6 @@
---
date: 2019-01-01
+tags: [date]
---
date inside front matter
diff --git a/packages/docusaurus-plugin-content-blog/src/__tests__/__snapshots__/feed.test.ts.snap b/packages/docusaurus-plugin-content-blog/src/__tests__/__snapshots__/feed.test.ts.snap
index 5b0469c1cd..6c5dd55354 100644
--- a/packages/docusaurus-plugin-content-blog/src/__tests__/__snapshots__/feed.test.ts.snap
+++ b/packages/docusaurus-plugin-content-blog/src/__tests__/__snapshots__/feed.test.ts.snap
@@ -37,6 +37,8 @@ Array [
2020-08-16T00:00:00.000Z
complex url slug
]]>
+
+
@@ -71,6 +73,7 @@ Array [
2019-01-01T00:00:00.000Z
date inside front matter]]>
+
@@ -106,7 +109,8 @@ Array [
\\"url\\": \\"https://docusaurus.io/myBaseUrl/blog/mdx-require-blog-post\\",
\\"title\\": \\"MDX Blog Sample with require calls\\",
\\"summary\\": \\"Test MDX with require calls\\",
- \\"date_modified\\": \\"2021-03-06T00:00:00.000Z\\"
+ \\"date_modified\\": \\"2021-03-06T00:00:00.000Z\\",
+ \\"tags\\": []
},
{
\\"id\\": \\"/mdx-blog-post\\",
@@ -114,7 +118,8 @@ Array [
\\"url\\": \\"https://docusaurus.io/myBaseUrl/blog/mdx-blog-post\\",
\\"title\\": \\"Full Blog Sample\\",
\\"summary\\": \\"HTML Heading 1\\",
- \\"date_modified\\": \\"2021-03-05T00:00:00.000Z\\"
+ \\"date_modified\\": \\"2021-03-05T00:00:00.000Z\\",
+ \\"tags\\": []
},
{
\\"id\\": \\"/hey/my super path/héllô\\",
@@ -122,7 +127,11 @@ Array [
\\"url\\": \\"https://docusaurus.io/myBaseUrl/blog/hey/my super path/héllô\\",
\\"title\\": \\"Complex Slug\\",
\\"summary\\": \\"complex url slug\\",
- \\"date_modified\\": \\"2020-08-16T00:00:00.000Z\\"
+ \\"date_modified\\": \\"2020-08-16T00:00:00.000Z\\",
+ \\"tags\\": [
+ \\"date\\",
+ \\"complex\\"
+ ]
},
{
\\"id\\": \\"/simple/slug\\",
@@ -134,7 +143,8 @@ Array [
\\"author\\": {
\\"name\\": \\"Sébastien Lorber\\",
\\"url\\": \\"https://sebastienlorber.com\\"
- }
+ },
+ \\"tags\\": []
},
{
\\"id\\": \\"/draft\\",
@@ -142,14 +152,16 @@ Array [
\\"url\\": \\"https://docusaurus.io/myBaseUrl/blog/draft\\",
\\"title\\": \\"draft\\",
\\"summary\\": \\"this post should not be published yet\\",
- \\"date_modified\\": \\"2020-02-27T00:00:00.000Z\\"
+ \\"date_modified\\": \\"2020-02-27T00:00:00.000Z\\",
+ \\"tags\\": []
},
{
\\"id\\": \\"/heading-as-title\\",
\\"content_html\\": \\"\\",
\\"url\\": \\"https://docusaurus.io/myBaseUrl/blog/heading-as-title\\",
\\"title\\": \\"some heading\\",
- \\"date_modified\\": \\"2019-01-02T00:00:00.000Z\\"
+ \\"date_modified\\": \\"2019-01-02T00:00:00.000Z\\",
+ \\"tags\\": []
},
{
\\"id\\": \\"/date-matter\\",
@@ -157,7 +169,10 @@ Array [
\\"url\\": \\"https://docusaurus.io/myBaseUrl/blog/date-matter\\",
\\"title\\": \\"date-matter\\",
\\"summary\\": \\"date inside front matter\\",
- \\"date_modified\\": \\"2019-01-01T00:00:00.000Z\\"
+ \\"date_modified\\": \\"2019-01-01T00:00:00.000Z\\",
+ \\"tags\\": [
+ \\"date\\"
+ ]
},
{
\\"id\\": \\"/2018/12/14/Happy-First-Birthday-Slash\\",
@@ -168,7 +183,8 @@ Array [
\\"date_modified\\": \\"2018-12-14T00:00:00.000Z\\",
\\"author\\": {
\\"name\\": \\"Yangshun Tay (translated)\\"
- }
+ },
+ \\"tags\\": []
}
]
}",
@@ -213,6 +229,8 @@ Array [
Sun, 16 Aug 2020 00:00:00 GMT
complex url slug]]>
+ date
+ complex
-
@@ -243,6 +261,7 @@ Array [
Tue, 01 Jan 2019 00:00:00 GMT
date inside front matter]]>
+ date
-
diff --git a/packages/docusaurus-plugin-content-blog/src/__tests__/index.test.ts b/packages/docusaurus-plugin-content-blog/src/__tests__/index.test.ts
index 99fc8356aa..c6f1a8ca38 100644
--- a/packages/docusaurus-plugin-content-blog/src/__tests__/index.test.ts
+++ b/packages/docusaurus-plugin-content-blog/src/__tests__/index.test.ts
@@ -132,9 +132,15 @@ describe('loadBlog', () => {
formattedDate: 'January 1, 2019',
frontMatter: {
date: new Date('2019-01-01'),
+ tags: ['date'],
},
prevItem: undefined,
- tags: [],
+ tags: [
+ {
+ label: 'date',
+ permalink: '/blog/tags/date',
+ },
+ ],
nextItem: {
permalink: '/blog/2018/12/14/Happy-First-Birthday-Slash',
title: 'Happy 1st Birthday Slash! (translated)',
@@ -207,8 +213,18 @@ describe('loadBlog', () => {
date: '2020/08/16',
slug: '/hey/my super path/héllô',
title: 'Complex Slug',
+ tags: ['date', 'complex'],
},
- tags: [],
+ tags: [
+ {
+ label: 'date',
+ permalink: '/blog/tags/date',
+ },
+ {
+ label: 'complex',
+ permalink: '/blog/tags/complex',
+ },
+ ],
truncated: false,
});
diff --git a/packages/docusaurus-plugin-content-blog/src/feed.ts b/packages/docusaurus-plugin-content-blog/src/feed.ts
index 2eee88c266..20f9a109a5 100644
--- a/packages/docusaurus-plugin-content-blog/src/feed.ts
+++ b/packages/docusaurus-plugin-content-blog/src/feed.ts
@@ -69,7 +69,14 @@ async function generateBlogFeed({
blogPosts.forEach((post) => {
const {
id,
- metadata: {title: metadataTitle, permalink, date, description, authors},
+ metadata: {
+ title: metadataTitle,
+ permalink,
+ date,
+ description,
+ authors,
+ tags,
+ },
} = post;
const feedItem: FeedItem = {
@@ -78,6 +85,8 @@ async function generateBlogFeed({
link: normalizeUrl([siteUrl, permalink]),
date,
description,
+ // Atom feed demands the "term", while other feeds use "name"
+ category: tags.map((tag) => ({name: tag.label, term: tag.label})),
content: mdxToFeedContent(post.content),
};