# Markdown 入门：目录、图片与 PlantUML 类图

> 发布时间: 2026-08-02 18:26

# Markdown

## 目录生成

* 使用 `[TOC]`，此方法 github 中无法识别
* 使用插件 Markdown All in One，在 vsCode 中按 shift+ctrl+p 输入 `Markdown All in One: Create Table of Contents`

## 引用图片

```
![这是图片](/assets/img/philly-magic-garden.jpg "Magic Gardens")
```

## PlantUML

### 类图

#### 六种基本关系

##### 泛化

* 是一种继承关系，由子类指向父类
* 使用 `<|--` 表示
```plantuml
@startuml
class Animal
class Tiger
Animal <|-- Tiger
@endump
```

##### 实现

* 是一种类与接口的关系，是由类指向接口
* 使用 `<|..` 表示
```plantuml
interface Run
class Human
Run <|.. Human
```

##### 关联

* 使一个类知道另一个类的方法，也可双向关联，是一种拥有关系，常表现为成员变量
* 单向关联用 `<--` 表示，双向用 `--` 表示
```plantuml
class Army
class Soldier
class Wife
class Hubby
Soldier <-- Army
Wife -- Hubby
```

##### 组合

* 整体与部分的关系，表示不能离开整体而单独存在的关系，由整体指向部分
* 使用 `*--` 表示
```plantuml
class Hand
class Human
Hand *-- Human
```

##### 聚合

* 整体与部分的关系，表示可以离开整体单独存在的关系，由整体指向部分
* 使用 `o--` 表示
```plantuml
class car
class wheel
wheel o-- car
```

##### 依赖

* 一种使用关系，用于表示局部变量、方法的参数或静态函数的调用关系，由依赖者指向被依赖者
* 使用 `<..` 表示
```plantuml
class programmer
class computer
programmer..>computer
```

## 思维导图

* plantuml 插件支持 mindmap，使用 `@startmindmap` 和 `@endmindmap` 将代码块包裹起来可以实现
```plantuml
@startmindmap
* 1
** 2
** 3
@endmindmap
```