This commit is contained in:
2026-04-29 19:03:25 +08:00
parent dd96d763b6
commit da65b3e73d
27 changed files with 471 additions and 25318 deletions
-64
View File
@@ -1,64 +0,0 @@
import React from 'react';
import clsx from 'clsx';
import styles from './HomepageFeatures.module.css';
const FeatureList = [
{
title: 'Easy to Use',
Svg: require('../../static/img/undraw_docusaurus_mountain.svg').default,
description: (
<>
Docusaurus was designed from the ground up to be easily installed and
used to get your website up and running quickly.
</>
),
},
{
title: 'Focus on What Matters',
Svg: require('../../static/img/undraw_docusaurus_tree.svg').default,
description: (
<>
Docusaurus lets you focus on your docs, and we&apos;ll do the chores. Go
ahead and move your docs into the <code>docs</code> directory.
</>
),
},
{
title: 'Powered by React',
Svg: require('../../static/img/undraw_docusaurus_react.svg').default,
description: (
<>
Extend or customize your website layout by reusing React. Docusaurus can
be extended while reusing the same header and footer.
</>
),
},
];
function Feature({Svg, title, description}) {
return (
<div className={clsx('col col--4')}>
<div className="text--center">
<Svg className={styles.featureSvg} alt={title} />
</div>
<div className="text--center padding-horiz--md">
<h3>{title}</h3>
<p>{description}</p>
</div>
</div>
);
}
export default function HomepageFeatures() {
return (
<section className={styles.features}>
<div className="container">
<div className="row">
{FeatureList.map((props, idx) => (
<Feature key={idx} {...props} />
))}
</div>
</div>
</section>
);
}
+51
View File
@@ -0,0 +1,51 @@
import React from 'react';
import clsx from 'clsx';
import styles from './HomepageFeatures.module.css';
interface FeatureItem {
title: string;
description: string;
}
const FeatureList: FeatureItem[] = [
{
title: '📚 系统化文档',
description:
'涵盖后端(Spring Boot/Cloud)、前端(React/Vue)和算法(LeetCode),分门别类,清晰索引。',
},
{
title: '⚡ 快速检索',
description:
'集成 Algolia DocSearch,毫秒级全文检索,快速定位任意知识点。',
},
{
title: '🌐 持续更新',
description:
'由技术团队持续维护,定期同步最新技术栈实践和面试题解析。',
},
];
function Feature({ title, description }: FeatureItem): JSX.Element {
return (
<div className={clsx('col col--4')}>
<div className="text--center padding-horiz--md">
<h3>{title}</h3>
<p>{description}</p>
</div>
</div>
);
}
export default function HomepageFeatures(): JSX.Element {
return (
<section className={styles.features}>
<div className="container">
<div className="row">
{FeatureList.map((props, idx) => (
<Feature key={idx} {...props} />
))}
</div>
</div>
</section>
);
}
+5 -5
View File
@@ -6,8 +6,8 @@ import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
import styles from './index.module.css';
import HomepageFeatures from '../components/HomepageFeatures';
function HomepageHeader() {
const {siteConfig} = useDocusaurusContext();
function HomepageHeader(): JSX.Element {
const { siteConfig } = useDocusaurusContext();
return (
<header className={clsx('hero hero--primary', styles.heroBanner)}>
<div className="container">
@@ -17,7 +17,7 @@ function HomepageHeader() {
<Link
className="button button--secondary button--lg"
to="/docs/intro-docs">
Code Docs - 1min
Code Docs - 1min
</Link>
</div>
</div>
@@ -25,8 +25,8 @@ function HomepageHeader() {
);
}
export default function Home() {
const {siteConfig} = useDocusaurusContext();
export default function Home(): JSX.Element {
const { siteConfig } = useDocusaurusContext();
return (
<Layout
title={`Hello from ${siteConfig.title}`}