You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何自定义Docusaurus生成索引页中的文件项(图标、描述)?

解决Docusaurus教程索引页自定义条目问题

核心思路

替换自动生成的索引页为自定义MDX页面,通过文档frontmatter添加自定义字段,手动构建带图标和自定义描述的卡片列表。

具体步骤

1. 给教程文档添加自定义frontmatter字段

在tutorials目录下的每个教程文件(如01-first-tutorial.md)开头的frontmatter中,新增icon和customDescription字段:

---
title: 第一个教程
icon: 🚀
customDescription: 这里是自定义的教程描述,替代默认提取的首段内容
---
  • 图标可以用emoji,也可以用本地SVG路径(如/img/icons/tutorial-1.svg)
  • customDescription填写你想要展示的自定义文本

2. 创建自定义索引页

在tutorials目录下新建index.mdx文件,替换默认自动生成的索引页。文件内容如下:

import { Card, CardContent, CardHeader, CardTitle } from '@docusaurus/components';
import Link from '@docusaurus/Link';
import { useDocs } from '@docusaurus/theme-common/internal';

export default function TutorialsIndex() {
  // 获取所有文档数据
  const { docs } = useDocs();
  // 筛选出tutorials目录下的文档
  const tutorialDocs = docs.filter(doc => doc.sourceDirName === 'tutorials');

  return (
    <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
      {tutorialDocs.map(doc => (
        <Link key={doc.id} to={doc.path} className="no-underline">
          <Card>
            <CardHeader className="flex items-center gap-2">
              {/* 渲染图标 */}
              {typeof doc.frontMatter.icon === 'string' ? (
                <span className="text-2xl">{doc.frontMatter.icon}</span>
              ) : (
                doc.frontMatter.icon
              )}
              <CardTitle>{doc.frontMatter.title}</CardTitle>
            </CardHeader>
            <CardContent>
              {/* 优先显示自定义描述, fallback到默认描述 */}
              {doc.frontMatter.customDescription || doc.description}
            </CardContent>
          </Card>
        </Link>
      ))}
    </div>
  );
}

3. 调整样式(可选)

如果需要更贴近目标效果的样式,可以自定义CSS类,在src/css/custom.css中添加:

.card {
  transition: transform 0.2s ease;
}
.card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 16px rgba(0,0,0,0.1);
}

为什么之前的尝试没成功?

  • 直接用DocCardList会默认读取文档的description(提取首段)和默认样式,无法直接自定义图标和描述
  • 仅修改教程文件的frontmatter但未替换自动索引页,自动生成的页面不会读取自定义字段用于条目展示

内容的提问来源于stack exchange,提问作者NoSQLKnowHow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 11:50:23