Skip to content

Commit d82faca

Browse files
authored
feat: Upgrade to Docusaurus 3.7 (#1958)
1 parent 1dd07bf commit d82faca

File tree

15 files changed

+3045
-1003
lines changed

15 files changed

+3045
-1003
lines changed

docs/cn/sql-reference/20-sql-functions/17-table-functions/04-result-scan.md

Lines changed: 0 additions & 53 deletions
This file was deleted.

docusaurus.config.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,10 @@ const config: Config = {
209209
{
210210
from: '/',
211211
to: '/guides/'
212+
},
213+
{
214+
from: '/index.html',
215+
to: '/guides/'
212216
}
213217
]
214218
}

package.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@
3434
},
3535
"dependencies": {
3636
"@ant-design/icons": "^5.3.7",
37-
"@docusaurus/core": "3.4.0",
38-
"@docusaurus/plugin-client-redirects": "^3.4.0",
39-
"@docusaurus/preset-classic": "3.4.0",
40-
"@docusaurus/theme-mermaid": "^3.4.0",
37+
"@docusaurus/core": "^3.7.0",
38+
"@docusaurus/plugin-client-redirects": "^3.7.0",
39+
"@docusaurus/preset-classic": "^3.7.0",
40+
"@docusaurus/theme-mermaid": "^3.7.0",
4141
"@mdx-js/react": "^3.0.0",
4242
"ahooks": "^3.8.0",
4343
"antd": "^5.19.2",
@@ -50,18 +50,18 @@
5050
"docusaurus-prince-pdf": "^1.2.1",
5151
"fs-extra": "^11.2.0",
5252
"prism-react-renderer": "^2.3.0",
53-
"react": "^18.0.0",
54-
"react-dom": "^18.0.0",
53+
"react": "^19.1.0",
54+
"react-dom": "^19.1.0",
5555
"react-markdown": "^9.0.1",
5656
"react-scroll-progress-bar": "^2.0.3",
5757
"sass": "^1.77.8",
5858
"sass-resources-loader": "^2.2.5",
5959
"xml2js": "^0.6.2"
6060
},
6161
"devDependencies": {
62-
"@docusaurus/module-type-aliases": "3.4.0",
63-
"@docusaurus/tsconfig": "3.4.0",
64-
"@docusaurus/types": "3.4.0",
62+
"@docusaurus/module-type-aliases": "^3.7.0",
63+
"@docusaurus/tsconfig": "^3.7.0",
64+
"@docusaurus/types": "^3.7.0",
6565
"typescript": "~5.2.2"
6666
},
6767
"browserslist": {

src/components/DocsOverview/index.tsx

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ import Redash from "@site/static/icons/redash.svg";
2727
import Superset from "@site/static/icons/superset.svg";
2828
import Teableau from "@site/static/icons/tableau.svg";
2929
import MindsDB from "@site/static/icons/mindsdb.svg";
30-
import Pipeline from "@site/static/icons/pipeline.svg";
3130
import Stream from "@site/static/icons/stream.svg";
3231
import Task from "@site/static/icons/task.svg";
3332
import Contact from "@site/static/icons/contact.svg";
@@ -108,7 +107,7 @@ const DocsOverview: FC = (): ReactElement => {
108107
to={"/guides/cloud/new-account"}
109108
className={"global-overview-card"}
110109
>
111-
<LightDatabendCloudSingleSvg></LightDatabendCloudSingleSvg>
110+
<LightDatabendCloudSingleSvg width={150} />
112111
<div>
113112
<h5>{$t("Activate Databend Cloud")}</h5>
114113
<div>
@@ -146,7 +145,7 @@ const DocsOverview: FC = (): ReactElement => {
146145
<Col {...colLayout2}>
147146
<Card padding={[20, 0]} className={styles.cardActiveOut}>
148147
<Link to={"/guides/deploy/"} className={"global-overview-card"}>
149-
<LightDatabendSingleSvg></LightDatabendSingleSvg>
148+
<LightDatabendSingleSvg width={150} />
150149
<div>
151150
<h5>{$t("Self-Hosted Databend")}</h5>
152151
<div>
@@ -544,11 +543,7 @@ const DocsOverview: FC = (): ReactElement => {
544543
<h3>
545544
<span> {$t("Object Storage")}</span>
546545
</h3>
547-
<div>
548-
{$t(
549-
"Stores all data in object storage."
550-
)}
551-
</div>
546+
<div>{$t("Stores all data in object storage.")}</div>
552547
</Card>
553548
</Col>
554549
<Col {...colLayout2}>
Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,26 @@
11
// Copyright 2023 DatabendLabs.
2-
import React, { useState } from 'react';
3-
import { useDoc, useDocsSidebar } from '@docusaurus/theme-common/internal';
4-
import Link from '@docusaurus/Link';
5-
import { useMount } from 'ahooks';
6-
const IndexOverviewList = ()=> {
2+
import React, { useState } from "react";
3+
import { useDoc, useDocsSidebar } from "@docusaurus/plugin-content-docs/client";
4+
import Link from "@docusaurus/Link";
5+
import { useMount } from "ahooks";
6+
7+
const IndexOverviewList = () => {
78
const { metadata } = useDoc();
8-
const siderBars = useDocsSidebar()?.items;
9+
const sidebar = useDocsSidebar();
910
const [items, setItems] = useState([]);
10-
useMount(()=> {
11+
12+
useMount(() => {
1113
const permalink = metadata?.permalink;
12-
const targetDoc = findItemByPermalink(siderBars, permalink);
14+
const targetDoc = findItemByPermalink(sidebar?.items || [], permalink);
1315
setItems(targetDoc?.items || []);
1416
});
15-
function findItemByPermalink(siderBars, permalink) {
16-
const sidebar = siderBars.find((item) => item?.href === permalink);
17+
18+
function findItemByPermalink(sidebarItems, permalink) {
19+
const sidebar = sidebarItems.find((item) => item?.href === permalink);
1720
if (sidebar) {
1821
return sidebar;
1922
}
20-
for (const sidebar of siderBars) {
23+
for (const sidebar of sidebarItems) {
2124
if (sidebar?.items?.length > 0) {
2225
const nestedItem = findItemByPermalink(sidebar?.items || [], permalink);
2326
if (nestedItem) {
@@ -26,22 +29,21 @@ const IndexOverviewList = ()=> {
2629
}
2730
}
2831
return null;
29-
};
32+
}
33+
3034
return (
3135
<>
32-
{
33-
items?.length > 0 &&
34-
<ul>
35-
{
36-
items?.map((item)=> {
37-
return <li key={item?.href}>
38-
<Link to={item?.href}>{item.label}</Link>
39-
</li>
40-
})
41-
}
42-
</ul>
43-
}
36+
{items?.length > 0 && (
37+
<ul>
38+
{items?.map((item) => (
39+
<li key={item?.href}>
40+
<Link to={item?.href}>{item.label}</Link>
41+
</li>
42+
))}
43+
</ul>
44+
)}
4445
</>
4546
);
4647
};
48+
4749
export default IndexOverviewList;

src/theme/DocCard/index.tsx

Lines changed: 61 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,49 @@
1-
import React from "react";
1+
import React, { type ReactNode } from "react";
22
import clsx from "clsx";
33
import Link from "@docusaurus/Link";
44
import {
5-
findFirstSidebarItemLink,
65
useDocById,
7-
} from "@docusaurus/theme-common/internal";
6+
findFirstSidebarItemLink,
7+
} from "@docusaurus/plugin-content-docs/client";
8+
import { usePluralForm } from "@docusaurus/theme-common";
89
import isInternalUrl from "@docusaurus/isInternalUrl";
910
import { translate } from "@docusaurus/Translate";
10-
import styles from "./styles.module.css";
1111
import DocsSvg from "@site/static/icons/docs.svg";
1212
import FolderSvg from "@site/static/icons/folder.svg";
13-
function CardContainer({ href, children }) {
13+
14+
import type { Props } from "@theme/DocCard";
15+
// import Heading from "@theme/Heading";
16+
import type {
17+
PropSidebarItemCategory,
18+
PropSidebarItemLink,
19+
} from "@docusaurus/plugin-content-docs";
20+
21+
import styles from "./styles.module.css";
22+
23+
function useCategoryItemsPlural() {
24+
const { selectMessage } = usePluralForm();
25+
return (count: number) =>
26+
selectMessage(
27+
count,
28+
translate(
29+
{
30+
message: "1 item|{count} items",
31+
id: "theme.docs.DocCard.categoryDescription.plurals",
32+
description:
33+
"The default description for a category card in the generated index about how many items this category includes",
34+
},
35+
{ count }
36+
)
37+
);
38+
}
39+
40+
function CardContainer({
41+
href,
42+
children,
43+
}: {
44+
href: string;
45+
children: ReactNode;
46+
}): ReactNode {
1447
return (
1548
<Link
1649
href={href}
@@ -20,7 +53,18 @@ function CardContainer({ href, children }) {
2053
</Link>
2154
);
2255
}
23-
function CardLayout({ href, icon, title, description }) {
56+
57+
function CardLayout({
58+
href,
59+
icon,
60+
title,
61+
description,
62+
}: {
63+
href: string;
64+
icon: ReactNode;
65+
title: string;
66+
description?: string;
67+
}): ReactNode {
2468
return (
2569
<CardContainer href={href}>
2670
<div className={styles.databendCard}>
@@ -38,34 +82,28 @@ function CardLayout({ href, icon, title, description }) {
3882
</CardContainer>
3983
);
4084
}
41-
function CardCategory({ item }) {
85+
86+
function CardCategory({ item }: { item: PropSidebarItemCategory }): ReactNode {
4287
const href = findFirstSidebarItemLink(item);
88+
const categoryItemsPlural = useCategoryItemsPlural();
89+
4390
// Unexpected: categories that don't have a link have been filtered upfront
4491
if (!href) {
4592
return null;
4693
}
94+
4795
return (
4896
<CardLayout
4997
href={href}
5098
icon={<FolderSvg></FolderSvg>}
5199
title={item.label}
52-
description={
53-
item.description ??
54-
translate(
55-
{
56-
message: "{count} items",
57-
id: "theme.docs.DocCard.categoryDescription",
58-
description:
59-
"The default description for a category card in the generated index about how many items this category includes",
60-
},
61-
{ count: item.items.length }
62-
)
63-
}
100+
description={item.description ?? categoryItemsPlural(item.items.length)}
64101
/>
65102
);
66103
}
67-
function CardLink({ item }) {
68-
const icon = isInternalUrl(item.href) ? <DocsSvg></DocsSvg> : "🔗";
104+
105+
function CardLink({ item }: { item: PropSidebarItemLink }): ReactNode {
106+
const icon = isInternalUrl(item.href) ? <DocsSvg /> : "🔗";
69107
const doc = useDocById(item.docId ?? undefined);
70108
return (
71109
<CardLayout
@@ -76,7 +114,8 @@ function CardLink({ item }) {
76114
/>
77115
);
78116
}
79-
export default function DocCard({ item }) {
117+
118+
export default function DocCard({ item }: Props): ReactNode {
80119
switch (item.type) {
81120
case "link":
82121
return <CardLink item={item} />;

src/theme/DocCard/styles.module.css

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
--ifm-link-color: var(--ifm-color-emphasis-800);
33
--ifm-link-hover-color: var(--ifm-color-emphasis-700);
44
--ifm-link-hover-decoration: none;
5+
56
box-shadow: 0 1.5px 3px 0 rgb(0 0 0 / 15%);
6-
border: 1px solid hsl(var(--border));
7+
border: 1px solid var(--ifm-color-emphasis-200);
78
transition: all var(--ifm-transition-fast) ease;
89
transition-property: border, box-shadow;
9-
border-radius: calc(var(--radius) - 2px);
1010
}
1111

1212
.cardContainer:hover {
@@ -23,13 +23,9 @@
2323
}
2424

2525
.cardDescription {
26-
width: 100%;
27-
display: block;
2826
font-size: 0.8rem;
29-
color: hsl(var(--muted-foreground));
30-
font-size: 0.875rem;
31-
line-height: 1.25rem;
3227
}
28+
3329
.databendCard {
3430
width: 100% !important;
3531
gap: 1rem !important;

src/theme/DocItem/TOC/Desktop/index.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import React from "react";
1+
import React, { ReactNode } from "react";
22
import { ThemeClassNames } from "@docusaurus/theme-common";
3-
import { useDoc } from "@docusaurus/theme-common/internal";
3+
import { useDoc } from "@docusaurus/plugin-content-docs/client";
44

55
import TOC from "@theme/TOC";
66
import TryCloudCard from "@site/src/components/TryCloudCard";
77

8-
export default function DocItemTOCDesktop(): JSX.Element {
8+
export default function DocItemTOCDesktop(): ReactNode {
99
const { toc, frontMatter } = useDoc();
1010
return (
1111
<div

0 commit comments

Comments
 (0)