From 3cbce4ffde0ad310615082355a9845a0f37c2ba5 Mon Sep 17 00:00:00 2001
From: moonrailgun
Date: Thu, 25 Feb 2021 16:49:01 +0800
Subject: [PATCH 01/15] feat(v2): add full content into feeds
---
.../__fixtures__/website/blog/long-text-r.md | 15 +++++++++++++++
.../src/blogUtils.ts | 2 ++
.../docusaurus-plugin-content-blog/src/types.ts | 1 +
3 files changed, 18 insertions(+)
create mode 100644 packages/docusaurus-plugin-content-blog/src/__tests__/__fixtures__/website/blog/long-text-r.md
diff --git a/packages/docusaurus-plugin-content-blog/src/__tests__/__fixtures__/website/blog/long-text-r.md b/packages/docusaurus-plugin-content-blog/src/__tests__/__fixtures__/website/blog/long-text-r.md
new file mode 100644
index 000000000000..28a2337aaaab
--- /dev/null
+++ b/packages/docusaurus-plugin-content-blog/src/__tests__/__fixtures__/website/blog/long-text-r.md
@@ -0,0 +1,15 @@
+---
+title: Long Text
+date: 2021-02-25
+---
+
+Elit irure et ullamco est reprehenderit sint labore incididunt officia voluptate adipisicing occaecat sit. Id aliqua pariatur Lorem nulla dolor ad non nostrud excepteur sint anim officia minim. Aliqua elit est occaecat et ut sit minim. Laboris cupidatat anim ea ipsum esse pariatur. Consequat anim fugiat voluptate laboris elit mollit in dolor laborum.
+Commodo laborum aliquip eu id aute occaecat adipisicing nisi incididunt officia sit est. Enim sit exercitation laboris deserunt sunt dolore aliquip laboris anim quis pariatur ipsum. Aute duis eiusmod id occaecat.
+Anim do qui ut cillum reprehenderit veniam irure nisi duis voluptate. Esse amet non sint magna consectetur duis veniam incididunt reprehenderit. Amet do tempor mollit laboris nulla. Commodo excepteur dolor consectetur quis consectetur aute excepteur occaecat minim mollit.
+Occaecat id ad proident velit magna elit incididunt adipisicing sunt reprehenderit exercitation reprehenderit. Dolor occaecat cillum consectetur veniam enim Lorem magna tempor sunt. Cupidatat duis aliqua adipisicing nulla voluptate dolore in labore proident esse excepteur culpa. Ullamco qui incididunt reprehenderit Lorem. Incididunt ipsum incididunt aliquip sunt sint eiusmod nisi Lorem. Esse est eu consectetur ex enim proident est cupidatat.
+In anim mollit fugiat aliqua est. Consectetur labore voluptate reprehenderit ea. Consequat consectetur dolore aute id fugiat. Ex nisi nulla quis ex sit adipisicing et non aliquip cupidatat incididunt amet. Do nostrud cupidatat mollit minim labore nostrud amet. Cillum proident laborum dolor irure ut eiusmod deserunt minim.
+Eiusmod occaecat consectetur dolore tempor officia nisi veniam incididunt ex eiusmod mollit excepteur aliquip incididunt. Occaecat consequat velit esse enim aute in. Minim culpa aliqua tempor incididunt sint amet excepteur quis deserunt. Laborum pariatur non labore enim dolor. Occaecat deserunt ullamco do labore nostrud consequat.
+Ex nisi nostrud dolor esse cillum sunt do amet excepteur quis. Commodo tempor eu Lorem adipisicing laborum in anim do ut. Et ad duis proident do deserunt duis do eu enim nostrud fugiat veniam nostrud. Excepteur officia pariatur nostrud magna enim quis proident nisi minim cillum. Elit adipisicing voluptate excepteur esse consequat sunt nulla nostrud ut consectetur. Anim non consequat voluptate ipsum mollit veniam aliqua mollit anim. Aute ad aliquip veniam dolor duis veniam nostrud.
+Veniam fugiat aliquip dolor id esse ad reprehenderit sint irure sit sint esse. Aute proident magna ipsum duis ullamco aute enim veniam tempor officia cupidatat aliqua. Pariatur aliqua proident sit in non non cupidatat excepteur amet ea anim sit do pariatur. Eiusmod in nisi consequat velit dolore. Reprehenderit mollit est in consectetur consectetur dolor id labore laborum sunt ullamco minim ullamco. Pariatur eiusmod consequat pariatur culpa occaecat deserunt irure.
+Non fugiat pariatur ad sint mollit. In nulla est irure anim ea laborum irure incididunt. Laborum do culpa cupidatat do anim dolore. Non laborum ipsum et proident id non nostrud consectetur reprehenderit proident dolore nulla eiusmod quis.
+Irure ea excepteur labore quis esse cillum officia cupidatat cupidatat. Aute amet exercitation aute ullamco culpa dolor labore anim aliqua incididunt cupidatat elit anim. Incididunt consectetur id nulla incididunt dolore cupidatat non cillum magna in sit veniam. In labore adipisicing labore est aute culpa nostrud consectetur ut sint consectetur esse commodo. Sint proident reprehenderit aliquip Lorem laboris ipsum laborum duis irure non sint. Esse dolor dolore non nostrud consequat aute culpa cillum consectetur ipsum. Qui fugiat amet commodo proident id ea ad pariatur dolor qui in.
diff --git a/packages/docusaurus-plugin-content-blog/src/blogUtils.ts b/packages/docusaurus-plugin-content-blog/src/blogUtils.ts
index b5384dc19037..5fd5743d2ba1 100644
--- a/packages/docusaurus-plugin-content-blog/src/blogUtils.ts
+++ b/packages/docusaurus-plugin-content-blog/src/blogUtils.ts
@@ -93,6 +93,7 @@ export async function generateBlogFeed(
link: normalizeUrl([siteUrl, permalink]),
date,
description,
+ content: post.content
});
});
@@ -231,6 +232,7 @@ export async function generateBlogPosts(
: undefined,
truncated: truncateMarker?.test(content) || false,
},
+ content,
});
}),
);
diff --git a/packages/docusaurus-plugin-content-blog/src/types.ts b/packages/docusaurus-plugin-content-blog/src/types.ts
index 182c977d0cfe..80b423bbeba4 100644
--- a/packages/docusaurus-plugin-content-blog/src/types.ts
+++ b/packages/docusaurus-plugin-content-blog/src/types.ts
@@ -82,6 +82,7 @@ export interface BlogTag {
export interface BlogPost {
id: string;
metadata: MetaData;
+ content: string;
}
export interface BlogPaginatedMetadata {
From e26fbebc22c7a945b2ff55dda31d43d9f0824c72 Mon Sep 17 00:00:00 2001
From: moonrailgun
Date: Wed, 3 Mar 2021 10:23:40 +0800
Subject: [PATCH 02/15] refactor(v2): update rss testcase
---
.../generateBlogFeed.test.ts.snap | 62 ++++++++++++++++++-
.../src/__tests__/index.test.ts | 8 ++-
2 files changed, 66 insertions(+), 4 deletions(-)
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 a31366164741..235320ebee6f 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
@@ -19,18 +19,40 @@ exports[`blogFeed atom shows feed item for each post 1`] = `
https://docusaurus.io/blogHello Blog
- 2020-02-27T00:00:00.000Z
+ 2021-02-25T00:00:00.000Zhttps://github.com/jpmonette/feedHello Bloghttps://docusaurus.io/image/favicon.icoCopyright
+
+
+ Long Text
+
+ 2021-02-25T00:00:00.000Z
+
+
+ draft2020-02-27T00:00:00.000Z
+
@@ -38,6 +60,9 @@ exports[`blogFeed atom shows feed item for each post 1`] = `
2019-01-01T00:00:00.000Z
+
@@ -45,6 +70,9 @@ exports[`blogFeed atom shows feed item for each post 1`] = `
2018-12-14T00:00:00.000Z
+ "
`;
@@ -66,21 +94,43 @@ exports[`blogFeed rss can show feed without posts 1`] = `
exports[`blogFeed rss shows feed item for each post 1`] = `
"
-
+Hello Blog
https://docusaurus.io/blog
Hello Blog
- Thu, 27 Feb 2020 00:00:00 GMT
+ Thu, 25 Feb 2021 00:00:00 GMThttps://validator.w3.org/feed/docs/rss2.htmlhttps://github.com/jpmonette/feedCopyright
+
+
+ https://docusaurus.io/blog/long-text-r
+ Long Text
+ Thu, 25 Feb 2021 00:00:00 GMT
+
+
+
https://docusaurus.io/blog/draft
draftThu, 27 Feb 2020 00:00:00 GMT
+
@@ -88,6 +138,9 @@ exports[`blogFeed rss shows feed item for each post 1`] = `
date-matterTue, 01 Jan 2019 00:00:00 GMT
+
@@ -95,6 +148,9 @@ exports[`blogFeed rss shows feed item for each post 1`] = `
Happy 1st Birthday Slash! (translated)Fri, 14 Dec 2018 00:00:00 GMT
+ "
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 7d797832d622..ec3b1ac0eef9 100644
--- a/packages/docusaurus-plugin-content-blog/src/__tests__/index.test.ts
+++ b/packages/docusaurus-plugin-content-blog/src/__tests__/index.test.ts
@@ -210,7 +210,7 @@ describe('loadBlog', () => {
expect(blogPost.metadata.editUrl).toEqual(hardcodedEditUrl);
});
- expect(editUrlFunction).toHaveBeenCalledTimes(5);
+ expect(editUrlFunction).toHaveBeenCalledTimes(6);
expect(editUrlFunction).toHaveBeenCalledWith({
blogDirPath: 'blog',
blogPath: 'date-matter.md',
@@ -223,6 +223,12 @@ describe('loadBlog', () => {
permalink: '/blog/draft',
locale: 'en',
});
+ expect(editUrlFunction).toHaveBeenCalledWith({
+ blogDirPath: 'blog',
+ blogPath: 'long-text-r.md',
+ permalink: '/blog/long-text-r',
+ locale: 'en',
+ });
expect(editUrlFunction).toHaveBeenCalledWith({
blogDirPath: 'blog',
blogPath: 'complex-slug.md',
From f6788e31e4326521d6fa8bb29e1839170e779bd3 Mon Sep 17 00:00:00 2001
From: moonrailgun
Date: Fri, 5 Mar 2021 10:19:30 +0800
Subject: [PATCH 03/15] refactor(v2): add rss html tag and custom component
support
---
.../__fixtures__/component/Typography.tsx | 6 ++
.../__fixtures__/website/blog/full-r.mdx | 36 +++++++++
.../__fixtures__/website/blog/long-text-r.md | 15 ----
.../generateBlogFeed.test.ts.snap | 76 ++++++-------------
.../src/blogUtils.ts | 7 +-
packages/docusaurus-utils/index.d.ts | 9 +++
packages/docusaurus-utils/package.json | 7 ++
packages/docusaurus-utils/src/index.ts | 20 +++++
packages/docusaurus-utils/src/types.ts | 10 +++
9 files changed, 114 insertions(+), 72 deletions(-)
create mode 100644 packages/docusaurus-plugin-content-blog/src/__tests__/__fixtures__/component/Typography.tsx
create mode 100644 packages/docusaurus-plugin-content-blog/src/__tests__/__fixtures__/website/blog/full-r.mdx
delete mode 100644 packages/docusaurus-plugin-content-blog/src/__tests__/__fixtures__/website/blog/long-text-r.md
create mode 100644 packages/docusaurus-utils/index.d.ts
create mode 100644 packages/docusaurus-utils/src/types.ts
diff --git a/packages/docusaurus-plugin-content-blog/src/__tests__/__fixtures__/component/Typography.tsx b/packages/docusaurus-plugin-content-blog/src/__tests__/__fixtures__/component/Typography.tsx
new file mode 100644
index 000000000000..0f51f881aa5c
--- /dev/null
+++ b/packages/docusaurus-plugin-content-blog/src/__tests__/__fixtures__/component/Typography.tsx
@@ -0,0 +1,6 @@
+import React from 'react';
+
+export const Typography: React.FC = (props) => {
+ return
{props.children}
+}
+Typography.displayName = 'Typography'
diff --git a/packages/docusaurus-plugin-content-blog/src/__tests__/__fixtures__/website/blog/full-r.mdx b/packages/docusaurus-plugin-content-blog/src/__tests__/__fixtures__/website/blog/full-r.mdx
new file mode 100644
index 000000000000..966e8cbce018
--- /dev/null
+++ b/packages/docusaurus-plugin-content-blog/src/__tests__/__fixtures__/website/blog/full-r.mdx
@@ -0,0 +1,36 @@
+---
+title: Full Blog Sample
+date: 2021-03-05
+---
+
+
HTML Heading 1
+
HTML Heading 2
+
HTML Paragraph
+
+import Typography from '../../component/Typography'
+
+Import DOM
+
+# Heading 1
+
+## Heading 2
+
+### Heading 3
+
+#### Heading 4
+
+##### Heading 5
+
+- list1
+- list2
+- list3
+
+
+* list1
+* list2
+* list3
+
+Normal Text *Italics Text* **Bold Text**
+
+[link](https://v2.docusaurus.io/)
+
diff --git a/packages/docusaurus-plugin-content-blog/src/__tests__/__fixtures__/website/blog/long-text-r.md b/packages/docusaurus-plugin-content-blog/src/__tests__/__fixtures__/website/blog/long-text-r.md
deleted file mode 100644
index 28a2337aaaab..000000000000
--- a/packages/docusaurus-plugin-content-blog/src/__tests__/__fixtures__/website/blog/long-text-r.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-title: Long Text
-date: 2021-02-25
----
-
-Elit irure et ullamco est reprehenderit sint labore incididunt officia voluptate adipisicing occaecat sit. Id aliqua pariatur Lorem nulla dolor ad non nostrud excepteur sint anim officia minim. Aliqua elit est occaecat et ut sit minim. Laboris cupidatat anim ea ipsum esse pariatur. Consequat anim fugiat voluptate laboris elit mollit in dolor laborum.
-Commodo laborum aliquip eu id aute occaecat adipisicing nisi incididunt officia sit est. Enim sit exercitation laboris deserunt sunt dolore aliquip laboris anim quis pariatur ipsum. Aute duis eiusmod id occaecat.
-Anim do qui ut cillum reprehenderit veniam irure nisi duis voluptate. Esse amet non sint magna consectetur duis veniam incididunt reprehenderit. Amet do tempor mollit laboris nulla. Commodo excepteur dolor consectetur quis consectetur aute excepteur occaecat minim mollit.
-Occaecat id ad proident velit magna elit incididunt adipisicing sunt reprehenderit exercitation reprehenderit. Dolor occaecat cillum consectetur veniam enim Lorem magna tempor sunt. Cupidatat duis aliqua adipisicing nulla voluptate dolore in labore proident esse excepteur culpa. Ullamco qui incididunt reprehenderit Lorem. Incididunt ipsum incididunt aliquip sunt sint eiusmod nisi Lorem. Esse est eu consectetur ex enim proident est cupidatat.
-In anim mollit fugiat aliqua est. Consectetur labore voluptate reprehenderit ea. Consequat consectetur dolore aute id fugiat. Ex nisi nulla quis ex sit adipisicing et non aliquip cupidatat incididunt amet. Do nostrud cupidatat mollit minim labore nostrud amet. Cillum proident laborum dolor irure ut eiusmod deserunt minim.
-Eiusmod occaecat consectetur dolore tempor officia nisi veniam incididunt ex eiusmod mollit excepteur aliquip incididunt. Occaecat consequat velit esse enim aute in. Minim culpa aliqua tempor incididunt sint amet excepteur quis deserunt. Laborum pariatur non labore enim dolor. Occaecat deserunt ullamco do labore nostrud consequat.
-Ex nisi nostrud dolor esse cillum sunt do amet excepteur quis. Commodo tempor eu Lorem adipisicing laborum in anim do ut. Et ad duis proident do deserunt duis do eu enim nostrud fugiat veniam nostrud. Excepteur officia pariatur nostrud magna enim quis proident nisi minim cillum. Elit adipisicing voluptate excepteur esse consequat sunt nulla nostrud ut consectetur. Anim non consequat voluptate ipsum mollit veniam aliqua mollit anim. Aute ad aliquip veniam dolor duis veniam nostrud.
-Veniam fugiat aliquip dolor id esse ad reprehenderit sint irure sit sint esse. Aute proident magna ipsum duis ullamco aute enim veniam tempor officia cupidatat aliqua. Pariatur aliqua proident sit in non non cupidatat excepteur amet ea anim sit do pariatur. Eiusmod in nisi consequat velit dolore. Reprehenderit mollit est in consectetur consectetur dolor id labore laborum sunt ullamco minim ullamco. Pariatur eiusmod consequat pariatur culpa occaecat deserunt irure.
-Non fugiat pariatur ad sint mollit. In nulla est irure anim ea laborum irure incididunt. Laborum do culpa cupidatat do anim dolore. Non laborum ipsum et proident id non nostrud consectetur reprehenderit proident dolore nulla eiusmod quis.
-Irure ea excepteur labore quis esse cillum officia cupidatat cupidatat. Aute amet exercitation aute ullamco culpa dolor labore anim aliqua incididunt cupidatat elit anim. Incididunt consectetur id nulla incididunt dolore cupidatat non cillum magna in sit veniam. In labore adipisicing labore est aute culpa nostrud consectetur ut sint consectetur esse commodo. Sint proident reprehenderit aliquip Lorem laboris ipsum laborum duis irure non sint. Esse dolor dolore non nostrud consequat aute culpa cillum consectetur ipsum. Qui fugiat amet commodo proident id ea ad pariatur dolor qui in.
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 235320ebee6f..f43b66cac3b8 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
@@ -19,30 +19,20 @@ exports[`blogFeed atom shows feed item for each post 1`] = `
https://docusaurus.io/blogHello Blog
- 2021-02-25T00:00:00.000Z
+ 2021-03-05T00:00:00.000Zhttps://github.com/jpmonette/feedHello Bloghttps://docusaurus.io/image/favicon.icoCopyright
-
- Long Text
-
- 2021-02-25T00:00:00.000Z
-
-
+
+ Full Blog Sample
+
+ 2021-03-05T00:00:00.000Z
+
+ HTML Heading 1
]]>
@@ -50,9 +40,7 @@ Irure ea excepteur labore quis esse cillum officia cupidatat cupidatat. Aute ame
2020-02-27T00:00:00.000Z
-
+ this post should not be published yet
]]>
@@ -60,9 +48,7 @@ this post should not be published yet
2019-01-01T00:00:00.000Z
-
+ date inside front matter]]>
@@ -70,9 +56,7 @@ date inside front matter
2018-12-14T00:00:00.000Z
-
+ Happy birthday! (translated)]]>
"
`;
@@ -99,28 +83,18 @@ exports[`blogFeed rss shows feed item for each post 1`] = `
Hello Blog
https://docusaurus.io/blog
Hello Blog
- Thu, 25 Feb 2021 00:00:00 GMT
+ Fri, 05 Mar 2021 00:00:00 GMThttps://validator.w3.org/feed/docs/rss2.htmlhttps://github.com/jpmonette/feedCopyright
-
- https://docusaurus.io/blog/long-text-r
- Long Text
- Thu, 25 Feb 2021 00:00:00 GMT
-
-
+
+ https://docusaurus.io/blog/full-r
+ Full Blog Sample
+ Fri, 05 Mar 2021 00:00:00 GMT
+
+ HTML Heading 1
"`,
+ );
+ });
+
+ test('work with MDX Tabs', () => {
+ const mdxString = `
+# title
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+
+
+ This is an apple 🍎
+
+
+ This is an orange 🍊
+
+
+
+text
+
+
+ `;
+
+ // TODO this is not an ideal behavior!
+ // There is a warning "Component TabItem was not imported, exported, or provided by MDXProvider as global scope"
+ // Theme + MDX config should provide a list of React components to put in MDX scope
+ expect(mdxToHtml(mdxString)).toMatchInlineSnapshot(
+ `"
title
This is an apple 🍎
This is an orange 🍊
text
"`,
+ );
+ });
+
+ test('work with MDX Tabs with ```mdx-code-block', () => {
+ const mdxString = `
+# title
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+\`\`\`mdx-code-block
+
+
+ This is an apple 🍎
+
+
+ This is an orange 🍊
+
+
+\`\`\`
+
+text
+
+ `;
+
+ // TODO bad behavior!
+ // ```mdx-code-block should be unwrapped and inner MDX content should be evaluated
+ expect(mdxToHtml(mdxString)).toMatchInlineSnapshot(`
+ "
title
<Tabs>
+ <TabItem value="apple" label="Apple">
+ This is an apple 🍎
+ </TabItem>
+ <TabItem value="orange" label="Orange">
+ This is an orange 🍊
+ </TabItem>
+ </Tabs>
+