MDX 组件说明

#组件 #MDX #LaTeX #表格 #媒体 #BraceMap

MDX 组件说明#

本文档汇总所有自定义 MDX 组件的使用方法和示例。


1. 提示框 (Callout)#

用于高亮显示重要信息,支持多种类型。

💡 提示

这是一个信息提示框,用于展示一般信息。

技巧

这是一个技巧提示框,用于展示实用技巧。

⚠️ 注意

这是一个警告提示框,用于提醒注意事项。

使用方式:

<Callout type="info">
信息内容
</Callout>

2. 折叠面板 (Collapse)#

用于隐藏详细内容,点击展开。

点击展开详细内容

这是折叠面板的内容。可以用来隐藏详细的说明或代码示例。

使用方式:

<Collapse title="标题">
折叠内容
</Collapse>

3. 标签页 (Tabs)#

用于在多个内容之间切换。

function hello(name) {
  return `Hello, ${name}!`;
}

使用方式:

<Tabs labels={['标签1', '标签2']}>
<TabItem index={0} active>
内容1
</TabItem>
<TabItem index={1}>
内容2
</TabItem>
</Tabs>

4. 进度条 (Progress)#

用于展示进度或完成状态。

URL掩码 100%
媒体文件 100%
LaTeX对齐 100%
表格样式 100%

使用方式:

<Progress value={80} label="进度名称" />

5. 图片 (Image)#

支持调整大小和对齐方式。

基本用法(Markdown 语法,自动居中):

测试图标

使用组件调整大小:

小图标

左对齐:

左对齐

右对齐:

右对齐

带标题说明:

带标题
图1:测试SVG图标

使用方式:

<!-- 推荐:Markdown 语法,自动居中 -->
![描述](./_media/photo.png)

<!-- 需要调整大小或对齐时使用组件 -->
<Image src="./_media/photo.png" alt="描述" width="200px" align="left" caption="标题" />
💡 提示

路径支持:

  • 相对路径:./_media/photo.png(相对于当前笔记目录)
  • 绝对路径:/media/images/photo.png(相对于站点根目录)
  • 外部URL:https://example.com/photo.png

6. 视频与文档 (Media)#

支持视频播放和文档下载。

使用方式:

<!-- 视频 -->
<Media type="video" src="./_media/demo.mp4" width="640px" caption="演示视频" />

<!-- 文档下载 -->
<Media type="document" src="./_media/guide.md" alt="使用指南" />

支持的文档类型:.md.mdx.pdf.docx.txt


7. 表格 (Table)#

支持两种方式创建表格:Markdown 语法和 HTML 语法。

7.1 Markdown 表格(推荐)#

直接使用 Markdown 表格语法,自动转换为带样式的表格:

名称类型描述
Astro框架静态站点生成器
TailwindCSS原子化CSS框架
KaTeXLaTeX数学公式渲染

7.2 HTML 表格#

使用 HTML 语法可以设置更多属性(对齐、标题等):

属性类型默认值
alignstring’center’
captionstringundefined
示例表格

左对齐表格:

函数用途
hashSlug生成哈希
registerSlug注册并缓存

使用方式:

<!-- Markdown 语法(推荐,自动转换) -->
| 列1 | 列2 |
|-----|-----|
| 数据 | 数据 |

<!-- HTML 语法(需要设置对齐或标题时) -->
<Table align="left" caption="表格标题">
  <thead>
    <tr><th>列1</th><th>列2</th></tr>
  </thead>
  <tbody>
    <tr><td>数据</td><td>数据</td></tr>
  </tbody>
</Table>
技巧

Markdown 表格自动转换为带样式的 HTML 表格。如果需要设置对齐方式或标题,请使用 HTML 语法的 <Table> 组件。


8. LaTeX 公式 (Latex)#

支持块级公式的对齐控制。

居中对齐(默认):

E=mc2E = mc^2

左对齐:

i=1ni=n(n+1)2\sum_{i=1}^{n} i = \frac{n(n+1)}{2}

右对齐:

a2+b2=c2a^2 + b^2 = c^2

行内公式:

行内公式示例:a2+b2=c2a^2 + b^2 = c^2i=1ni=n(n+1)2\sum_{i=1}^{n} i = \frac{n(n+1)}{2}

使用方式:

<!-- 默认居中 -->
<Latex>
$$
E = mc^2
$$
</Latex>

<!-- 左对齐 -->
<Latex align="left">
$$
\sum_{i=1}^{n} i = \frac{n(n+1)}{2}
$$
</Latex>

9. 大括号结构图 (BraceMap)#

使用 d3.js 渲染的大括号结构图,用于展示整体与部分关系。

基本用法:

自定义样式:

使用方式:

<BraceMap
  data={{
    name: "根节点",
    children: [
      { name: "子节点 1" },
      { name: "子节点 2" },
    ],
  }}
/>

可配置参数:

参数类型默认值说明
nodeWidthnumber160节点宽度
nodeHeightnumber32节点高度
levelGapnumber60层级间距
braceWidthnumber14大括号弯曲宽度
braceColorstring#666大括号颜色
rootBgColorstring#4a7cff根节点背景色

10. 代码块 (CodeBlock)#

支持代码高亮和复制功能。

function fibonacci(n) {
  if (n <= 1) return n;
  return fibonacci(n - 1) + fibonacci(n - 2);
}

使用方式:

```javascript
// 代码内容
```

用于展示多张图片的网格布局。

使用方式:

<Gallery columns={3}>
  <img src="./_media/img1.png" alt="图片1" />
  <img src="./_media/img2.png" alt="图片2" />
  <img src="./_media/img3.png" alt="图片3" />
</Gallery>

12. Wiki 链接#

支持双向链接,自动关联相关笔记。

示例:

使用方式:

[[笔记标题]]

总结#

所有可用组件:

组件用途推荐场景
<Callout>提示框高亮重要信息
<Collapse>折叠面板隐藏详细内容
<Tabs>标签页多语言代码对比
<Progress>进度条展示完成状态
<Image>图片需要调整大小/对齐时
<Media>媒体视频播放/文档下载
<Table>表格需要自定义样式时
<Latex>LaTeX公式块级公式对齐
<BraceMap>结构图层次关系展示
<CodeBlock>代码块代码高亮
<Gallery>画廊图片网格展示