Caption Numbering Plugin311 downloadsAutomatically number figure/table captions using 6th-level headings (######).
Automatically number figure/table captions using 6th-level headings (
######) in Obsidian.
图 / Figure, 表 / Table, Algorithm). Headings starting with ###### 图 xxx are automatically numbered as ###### 图 1 xxx, ###### 图 2 xxx, etc.###### 图 1-1 xxx when under ## 1 System Overview).###### and a dropdown automatically appears to select a tag.[[#caption]] wikilinks pointing to it are automatically updated:[[#图 1 系统架构]] → [[#图 2 系统架构|图 2]] (target + display text updated)[[#图 1 系统架构]] → [[#图 1 系统架构|图 1]] (display text auto-added if missing)caption numbering: 图, 表, auto)..obsidian/plugins/caption-numbering/ folder.Cmd/Ctrl + P).| Command | Description |
|---|---|
| Number captions in document | Auto-number all ###### captions with matching tags |
| Remove caption numbering | Strip all numbers from captions |
| Save settings to front matter | Write current tag settings to document front matter |
There are two ways to create captions:
Method A — Using the tag suggestion popup:
###### (six hash marks + space).图).###### 图 系统架构图Method B — Manually:
###### 图 系统架构图
###### 表 数据对比
###### 算法 快速排序
After writing captions, run the Number captions in document command. The result:
###### 图 1 系统架构图
###### 图 2 流程图
###### 表 1 数据对比
###### 算法 1 快速排序
If your document has numbered section headings like:
## 1 系统概述
###### 图 系统架构图
###### 图 流程图
## 2 功能设计
###### 图 部署图
Enable "章节前缀" (Chapter Prefix) in settings. The result:
## 1 系统概述
###### 图 1-1 系统架构图
###### 图 1-2 流程图
## 2 功能设计
###### 图 2-1 部署图
The chapter number is read from the heading text, so any of these heading styles work (select the matching Source Heading Level):
| Heading | Chapter number | Caption |
|---|---|---|
## 1 系统概述 |
1 | 图 1-1 |
## 2. 功能设计 |
2 | 图 2-1 |
## 3、结果与讨论 |
3 | 图 3-1 |
## 一、啊啊啊啊 |
1 | 图 1-1 |
## 十一、附录 |
11 | 图 11-1 |
## 第一章 引言 |
1 | 图 1-1 |
Chinese numerals (一…九、十、十一、二十三、一百零五 …) are converted to Arabic numbers. A heading only counts as a chapter when the number is followed by a separator or a space, so headings such as ## 一般性讨论 are left alone.
Turn on 「含上级标题编号」 (Include Parent Heading Numbers) to prefix each caption with the numbers of all heading levels up to the Source Heading Level, instead of only the Source Heading Level itself:
# 一、简介 → level 1 = 1
## 1 半导体 → level 2 = 1
### 1.1 在一起 → level 3 = 1
###### 图 能带甲图 → 图 1.1-1 (Source Heading Level = 2)
→ 图 1.1.1-1 (Source Heading Level = 3)
## 2 简并半导体 → level 2 = 2
### 2.1 在一起 → level 3 = 1
###### 图 能带乙图 → 图 1.2-1 (Source Heading Level = 2)
Rules:
图 2-1).1.1 → 1), so a chapter written as 一、 and sections written as 1 / 1.1 line up as 1.2.1.图 1.1-1 and 图 1.2-1 count independently.You can reference captions using Obsidian's built-in wikilink syntax:
[[#图 1 系统架构]]
After numbering, this automatically becomes:
[[#图 1 系统架构|图 1]]
If the caption is renumbered, the link updates automatically:
[[#图 2 系统架构|图 2]]
Add to your document's front matter:
---
caption numbering: 图, 表, auto
---
This sets the tags to 图 and 表 and enables auto-numbering for this document only.
Available options:
图, 表, 算法 — comma-separated tag namesauto — enable auto-numberingoff — disable numbering for this document| Setting | Description |
|---|---|
| Tags | Add, edit, or delete caption tags. Each tag gets its own counter. |
| Numbering Mode | Single — 图 1, 图 2... / Chapter Prefix — 图 1-1, 图 1-2... |
| Source Heading Level | Which heading level to extract chapter numbers from (1–5) |
| Heading Level Digits | How many digits of the heading number to use (e.g., 1 → 1, 2 → 1.2) |
| Number Separator | Separator between chapter prefix and sequence number (e.g., -, ., :) |
| Include Parent Heading Numbers | Prefix with every heading level up to the Source Heading Level (图 1.2-1 / 图 1.2.1-1); when off, only that level's own number is used |
| Auto-numbering | Toggle automatic numbering every 10 seconds |
| Center captions | Center h6 captions and their images/tables in reading view (applied at load and on toggle) |
Note: a
caption numberingkey only overrides the fields it actually lists (tags /auto/off); numbering mode, heading levels and every other setting keep coming from the plugin settings, so notes with front matter behave exactly like notes without it.
# Install dependencies
npm install
# Build for development (watch mode)
npm run dev
# Build for production
npm run build
# Run tests
npm test
MIT