跳到主要内容

文档模板

这是一个完整的文档模板,展示了所有可用的功能。在 Docusaurus 中,.md.mdx 文件功能完全相同,都可以使用 JSX 组件。

核心价值

完整模板 = Markdown 语法 + JSX 组件 + 样式定制 + 最佳实践

  • Markdown 语法:所有标准 Markdown 功能
  • JSX 组件:Tabs、Admonition 等组件
  • 数据展示:表格、图表和对比
  • 样式定制:内联样式和 HTML

一、文档元数据(Front Matter)

每个文档开头都应该包含元数据:

yaml
1---
2sidebar_position: 1 # 侧边栏位置
3title: 文档标题 # 页面标题
4description: 文档描述 # SEO 描述
5tags: [标签1, 标签2] # 文档标签
6keywords: [关键词1, 关键词2] # SEO 关键词
7authors: [Laby] # 作者
8last_update: # 最后更新
9 date: 2026-04-24
10 author: Laby
11---

二、标题层级

一级标题 (H1) - 通常用于文档标题

二级标题 (H2) - 主要章节

三级标题 (H3) - 子章节

四级标题 (H4) - 小节

五级标题 (H5) - 更小的节
六级标题 (H6) - 最小的节

三、文本格式

3.1 基本文本样式

这是普通文本。

这是粗体文本

这是斜体文本

这是粗斜体文本

这是删除线文本

这是行内代码

这是一个链接

这是一个带标题的链接

3.2 列表

无序列表:

  • 项目 1
  • 项目 2
    • 子项目 2.1
    • 子项目 2.2
      • 子子项目 2.2.1
  • 项目 3

有序列表:

  1. 第一项
  2. 第二项
    1. 子项 2.1
    2. 子项 2.2
  3. 第三项

任务列表:

  • 已完成的任务
  • 未完成的任务
  • 另一个未完成的任务

3.3 引用

这是一个引用块

可以包含多行文本

这是嵌套的引用


四、Admonition(提示框)

Docusaurus 提供了多种提示框样式,在 .md 文件中也可以使用:

备注

这是一个注意提示框,用于一般性说明。

提示

这是一个提示框,用于提供有用的建议或技巧。

信息

这是一个信息提示框,用于提供额外的信息。

注意

这是一个警告提示框,用于提醒用户注意潜在问题。

危险

这是一个危险提示框,用于警告严重问题或错误。

警告

这是一个注意提示框,用于提醒用户小心操作。

4.1 自定义标题的提示框

最佳实践

使用自定义标题可以让提示框更加醒目和有针对性。

扩展阅读

可以在提示框中添加 emoji 图标,使其更加生动。

性能陷阱

注意避免在循环中进行大量的 DOM 操作!

常见错误

不要在生产环境中使用 console.log 调试代码。


五、代码块

5.1 基本代码块

javascript
1// JavaScript 代码示例
2function greet(name) {
3 console.log(`Hello, ${name}!`)
4}
5
6greet('World')
python
1# Python 代码示例
2def greet(name):
3 print(f"Hello, {name}!")
4
5greet("World")
typescript
1// TypeScript 代码示例
2interface User {
3 name: string
4 age: number
5}
6
7const user: User = {
8 name: 'Alice',
9 age: 30
10}

5.2 带标题的代码块

src/components/Button.jsx
jsx
1import React from 'react'
2
3export default function Button({ children, onClick }) {
4 return (
5 <button onClick={onClick} className="custom-button">
6 {children}
7 </button>
8 )
9}

5.3 高亮特定行

javascript
1function calculateSum(a, b) {
2 // 这一行会被高亮
3 const sum = a + b
4 // 这些行也会被高亮
5 console.log('Sum:', sum)
6 return sum
7}

5.4 显示行号

javascript
1function fibonacci(n) {
2 if (n <= 1) return n
3 return fibonacci(n - 1) + fibonacci(n - 2)
4}
5
6console.log(fibonacci(10))

六、表格

6.1 基本表格

特性ReactVueAngular
学习曲线中等简单陡峭
性能优秀优秀良好
生态系统丰富丰富完整
TypeScript支持支持原生

6.2 对齐方式

左对齐居中对齐右对齐
LeftCenterRight
123

6.3 包含代码和图标的表格

方法语法说明状态
push()arr.push(item)在数组末尾添加元素推荐
pop()arr.pop()删除并返回数组最后一个元素推荐
shift()arr.shift()删除并返回数组第一个元素慎用
unshift()arr.unshift(item)在数组开头添加元素慎用

6.4 对比表格

特性方案 A方案 B方案 C推荐
性能优秀
5星
良好
4星
一般
3星
A
易用性中等
3星
简单
5星
中等
3星
B
成本C
可扩展性支持支持不支持A/B

七、图片和媒体

7.1 基本图片

蕾姆

图片说明:来自《Re:从零开始的异世界生活》的蕾姆

7.2 带链接的图片

点击查看炎柱

点击图片查看炎柱炼狱杏寿郎的另一张图片

7.3 指定图片大小

蝴蝶忍

图片说明:虫柱蝴蝶忍


八、链接和引用

8.1 外部链接

访问 Docusaurus 官网

8.2 内部链接

查看其他文档示例

8.3 锚点链接

跳转到 代码块章节


九、分隔线

使用三个或更多的连字符、星号或下划线创建分隔线:





十、常用 Emoji 图标

10.1 状态图标

  • ✅ 成功/完成
  • ❌ 失败/错误
  • ⚠️ 警告
  • 🚫 禁止
  • ℹ️ 信息
  • 💡 提示/想法
  • 📌 重要

10.2 技术图标

  • 🎯 目标/重点
  • ⚡ 性能/快速
  • 🔥 热门/流行
  • 🚀 发布/启动
  • 🔧 工具/配置
  • 📊 数据/统计
  • 🎨 设计/样式
  • 📚 文档/学习
  • 🔍 搜索/查找
  • 🔄 更新/同步

10.3 评分图标

  • ⭐ 星级评分
  • 🟢 绿色/良好
  • 🟡 黄色/警告
  • 🔴 红色/危险
  • 💰 成本/价格

十一、嵌套内容示例

11.1 提示框中的代码

代码示例
javascript
1// 在提示框中展示代码
2function example() {
3 console.log('这是提示框中的代码')
4}

11.2 提示框中的列表

功能列表
  • 支持 Markdown
  • 支持代码高亮
  • 支持多种主题
  • 支持图片和表格
  • 不支持 JSX 组件(需要 .mdx)

11.3 提示框中的表格

性能对比
操作时间复杂度空间复杂度
查找O(n)O(1)
插入O(1)O(1)
删除O(n)O(1)

十二、实际应用示例

12.1 API 文档示例

API 端点

GET /api/users/:id

获取指定用户的详细信息。

参数:

  • id (string, required): 用户 ID

响应:

json
1{
2 "id": "123",
3 "name": "John Doe",
4 "email": "john@example.com"
5}

12.2 配置文件示例

package.json 配置:

package.json
json
1{
2 "name": "my-app",
3 "version": "1.0.0",
4 "scripts": {
5 "start": "react-scripts start",
6 "build": "react-scripts build",
7 "test": "react-scripts test"
8 },
9 "dependencies": {
10 "react": "^18.0.0",
11 "react-dom": "^18.0.0"
12 }
13}

12.3 步骤说明

安装步骤
  1. 安装 Node.js

    bash
    1# 下载并安装 Node.js
    2https://nodejs.org/
  2. 创建项目

    bash
    1npx create-react-app my-app
    2cd my-app
  3. 启动开发服务器

    bash
    1npm start
  4. 构建生产版本

    bash
    1npm run build

十三、最佳实践

文档编写建议

结构清晰:

  • 使用合理的标题层级
  • 每个章节有明确的主题
  • 使用分隔线区分不同部分

代码完整:

  • 提供可运行的完整代码
  • 添加必要的注释
  • 使用语法高亮

视觉丰富:

  • 使用表格展示对比数据
  • 使用提示框突出重要信息
  • 使用 Emoji 增加可读性

实例充分:

  • 提供真实的使用场景
  • 包含常见问题的解决方案
  • 展示最佳实践

保持更新:

  • 定期更新文档内容
  • 标注最后更新时间
  • 记录版本变更

十四、Tabs 组件(标签页)

在 Docusaurus 中,.md 文件也可以使用 JSX 组件!只需在文件开头导入即可。

14.1 基本 Tabs 示例

javascript
1// JavaScript 示例
2function greet(name) {
3 console.log(`Hello, ${name}!`)
4}
5
6greet('World')

14.2 默认选中的 Tabs

vue
1<template>
2 <div>
3 <h1>{{ message }}</h1>
4 <button @click="updateMessage">Update</button>
5 </div>
6</template>
7
8<script setup>
9import { ref } from 'vue'
10
11const message = ref('Hello Vue 3!')
12
13const updateMessage = () => {
14 message.value = 'Updated!'
15}
16</script>

14.3 Tabs 中嵌套 Admonition

推荐做法

使用 constlet 声明变量,避免使用 var

javascript
1// 推荐
2const PI = 3.14159
3let count = 0
4
5// 不推荐
6var oldStyle = 'avoid this'

14.4 复杂嵌套:Tabs → Admonition → Code → Table

主流前端框架对比

下面是 React、Vue 和 Angular 的详细对比:

特性ReactVueAngular
学习曲线中等简单陡峭
性能5星5星4星
生态系统非常丰富丰富完整但封闭
TypeScript支持支持原生
包体积42KB34KB167KB

代码示例:

javascript
1// React 组件
2function Counter() {
3 const [count, setCount] = useState(0)
4 return <button onClick={() => setCount(count + 1)}>{count}</button>
5}
6
7// Vue 组件
8const Counter = {
9 data: () => ({ count: 0 }),
10 template: '<button @click="count++">{{ count }}</button>'
11}
12
13// Angular 组件
14@Component({
15 template: '<button (click)="increment()">{{ count }}</button>'
16})
17class Counter {
18 count = 0
19 increment() { this.count++ }
20}

十五、高级嵌套示例

15.1 三层嵌套:Tabs → Admonition → Tabs

前端技术栈
html
1<!DOCTYPE html>
2<html lang="zh-CN">
3<head>
4 <meta charset="UTF-8">
5 <title>我的网页</title>
6</head>
7<body>
8 <h1>Hello World</h1>
9</body>
10</html>

十六、快速复制模板

下面是一个简洁的文档模板,可以直接复制使用:

markdown
1---
2sidebar_position: 1
3title: 文档标题
4description: 文档描述
5tags: [标签]
6---
7
8# 文档标题
9
10文档简介...
11
12:::tip[核心价值]
13- 要点 1
14- 要点 2
15- 要点 3
16:::
17
18---
19
20## 章节标题
21
22### 小节标题
23
24内容...
25
26代码示例:
27
28\`\`\`javascript
29// 代码
30\`\`\`
31
32---
33
34## 总结
35
36总结内容...

十七、折叠面板(Details)

折叠面板用于隐藏大量内容,让用户按需展开查看。

17.1 基础折叠面板

点击展开查看详细内容

这是折叠面板的内容。可以包含任何 Markdown 元素:

  • 列表项 1
  • 列表项 2
  • 列表项 3
javascript
1console.log('折叠面板中的代码');

17.2 默认展开的折叠面板

默认展开的面板

使用 open 属性可以让折叠面板默认处于展开状态。

这对于重要内容很有用。

17.3 嵌套折叠面板

外层折叠面板

外层内容...

内层折叠面板

内层内容可以进一步折叠。

17.4 折叠面板中的复杂内容

API 文档示例

请求参数

参数名类型必填说明
userIdstring用户ID
tokenstring访问令牌

响应示例

json
1{
2 "code": 200,
3 "message": "success",
4 "data": {
5 "userId": "12345",
6 "username": "developer"
7 }
8}

错误码

  • 400: 请求参数错误
  • 401: 未授权
  • 500: 服务器错误

17.5 折叠面板最佳实践

使用建议
  • 用于隐藏可选的详细信息
  • 用于长代码示例或日志输出
  • 用于 FAQ 问答列表
  • 用于可选的高级配置说明
  • 避免在折叠面板中放置关键信息

十八、卡片组件

18.1 基础卡片

基础卡片

这是一个基础卡片组件,使用 DevManga 风格的粗边框、阴影和倾斜效果。

卡片内容可以包含任何 Markdown 元素:文本、列表、代码等。

17.2 主题色卡片

Water Style (Primary)

使用主色调(蓝色)的卡片,适合展示主要功能或重点内容。

  • 组件化开发
  • 虚拟 DOM
  • 丰富的生态系统

Success Style

使用成功色(绿色)的卡片,适合展示成功状态或正面信息。

  • 操作成功
  • 测试通过
  • 部署完成

17.3 警告和危险卡片

Thunder Style (Warning)

使用警告色(黄色)的卡片,提醒用户注意潜在问题。

注意事项:

  • 请仔细阅读文档
  • 确保配置正确
  • 建议先在测试环境验证

Flame Style (Danger)

使用危险色(红色)的卡片,警告严重问题或错误。

严重警告:

  • 此操作不可逆
  • 可能导致数据丢失
  • 请务必备份数据

17.4 Tabs + 卡片组合

React

特点:

  • 组件化开发
  • 虚拟 DOM
  • 丰富的生态系统

Vue

特点:

  • 渐进式框架
  • 双向数据绑定
  • 简单易学

Angular

特点:

  • 完整的框架
  • TypeScript 原生支持
  • 企业级解决方案

最后更新时间: 2024-12-28

文件格式: Markdown (.md) with JSX support

标签: #文档模板 #Markdown #MDX #JSX组件 #卡片组件

forum

评论区 / Comments