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

]]>
+ + <![CDATA[Simple Slug]]> @@ -71,6 +73,7 @@ Array [ 2019-01-01T00:00:00.000Z date inside front matter

]]>
+
<![CDATA[Happy 1st Birthday Slash! (translated)]]> @@ -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 <![CDATA[Simple Slug]]> @@ -243,6 +261,7 @@ Array [ Tue, 01 Jan 2019 00:00:00 GMT date inside front matter

]]>
+ date
<![CDATA[Happy 1st Birthday Slash! (translated)]]> 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), };