bd-dxg/my-pi/add-anchor
Claude Code and agent skill by bd-dxg/my-pi
Trust tier 2
- community
Source check pending
Checking that the SKILL.md file is still in the repository.
为 Markdown 文件的标题添加英文自定义锚点 {#my-anchor}。当用户要求为 Markdown 标题添加锚点、处理 TOC 锚点、或需要标题可跳转链接时使用此命令。支持单文件或整个目录批量处理。
Install
npx vskill@latest install bd-dxg/my-pi/add-anchorSKILL.md
add-anchor
为 Markdown 文件的所有标题(h1 ~ h6)添加英文自定义锚点 {#anchor-id},用于目录跳转或跨文档引用。
使用方式
处理单个文件
批量处理目录下所有 Markdown 文件
锚点生成规则
格式
- 全小写字母
- 单词间用连字符
-连接 - 示例:
## 📋 今日目标→## 📋 今日目标 {#today-target}
具体步骤
对每个标题,按以下步骤生成锚点:
- 提取标题文本:去除
#前缀和空格,得到纯标题文字 - 检查已有锚点:如果标题末尾已有
{#...},则跳过该标题(不修改) - 移除不需要的字符:
- 移除所有 emoji(如 📋、🎯、✨ 等)
- 移除中文标点(如:、。,、!?「」【】()等)
- 移除数学符号(如 +、=、>、< 等)
- 移除引号(单引号、双引号)
- 保留英文连字符
-和撇号'
- 翻译中文为英文:将提取出的中文部分翻译为简短的关键词,而非完整句子。例如"系统信息收集器"→
system-info,而非`system-information-collector" - 转为锚点格式:
- 将英文翻译转为小写
- 空格替换为连字符
- - 连续多个连字符合并为一个
- 首尾连字符去除
- 追加到标题末尾:在标题末尾添加
{#generated-anchor}
锚点文本去重
如果同一文件内生成相同的锚点,在末尾添加数字后缀:
- 第一个 →
{#my-anchor} - 第二个 →
{#my-anchor-2} - 第三个 →
{#my-anchor-3}
示例
| 原始标题 | 生成的锚点 | |
|---|---|---|
## 📋 今日目标 | ## 📋 今日目标 {#today-target} | |
### 安装与配置 | ### 安装与配置 {#installation-and-configuration} | |
# 快速开始 | # 快速开始 {#quick-start} | |
## 用户管理 API | ## 用户管理 API {#user-management-api} | |
### 常见问题 (FAQ) | ### 常见问题 (FAQ) {#faq} | |
## 错误处理 | ## 错误处理 {#error-handling} | |
## 错误处理 {#error-handling} | 跳过(已有锚点) | |
### 练习 1:系统信息收集器 | ### 练习 1:系统信息收集器 {#exercise-1} | |
## 📋 今日目标 | ## 📋 今日目标 {#goals} |
处理边界
需要处理的标题
- 纯中文标题:
## 用户管理 - 中英文混合:
## 用户管理 API - 含 emoji 的标题:
## 📋 今日目标 - 含特殊符号的标题:
### 常见问题 (FAQ) - 含链接的标题:
## [快速开始](url)→ 提取纯文本快速开始
跳过不处理的情况
- 标题末尾已有
{#...}锚点(保留原锚点) - 不在标题行中的
#(如代码块中的#注释) - 空标题(只有
#没有文字) - 锚点引用(
## 标题 {#existing-anchor}中的锚点部分)
工作流程
步骤 1:确认文件范围
- 如果是单个文件路径,直接处理该文件
- 如果是目录路径,使用 Glob 工具查找目录下所有
*.md文件(递归) - 如果未提供路径,默认扫描当前工作目录下的
*.md文件,并提示用户确认
步骤 2:读取文件内容
使用 Read 工具读取文件内容,确认文件是有效的 Markdown 格式。
步骤 3:逐行扫描处理
逐行扫描文件,找到所有匹配 ^(#{1,6})\s+(.+)$ 的标题行。对每个匹配的标题行:
- 检查是否已有
{#...}锚点 → 有则跳过 - 提取纯文本(去除 markdown 链接语法,只保留文本)
- 移除 emoji 和不需要的字符,保留下划线、连字符和撇号
- 翻译中文为英文
- 生成锚点 ID
- 检查锚点是否重复
- 用 Edit 工具替换原标题行
步骤 4:使用 Edit 工具修改
每次修改一个标题行,使用 Edit 工具的精确字符串替换功能。
步骤 5:报告结果
处理完成后,向用户报告:
- 处理的文件总数
- 每个文件的标题总数、添加锚点数、跳过的标题数
- 特殊情况的说明(如有)
重点原则
- 只修改标题行,不修改文件其他内容
- 保留原始格式,包括空格、emoji 的显示位置
- 不覆盖已有锚点,尊重用户手动添加的锚点
- 锚点要简短:锚点应是简短的关键词,而非完整翻译。例如"今日目标"→
{#goals},"系统信息收集器"→{#system-info},而非完整句子翻译 - 翻译要准确简洁,不要过度翻译英文部分
- 对于纯英文标题,直接使用原文生成锚点(无需翻译)
- 对于中英文混合标题,只翻译中文部分,保留英文原词
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/add-anchor/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/bd-dxg/my-pi/add-anchor)