用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/csharpfritz/SquadUI --skill yaml-frontmatter-parsing命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | YAML Frontmatter Parsing |
| description | Lightweight YAML frontmatter extraction from markdown files without external dependencies |
| domain | parsing |
| confidence | low |
| source | earned |
Markdown files often use YAML frontmatter (delimited by --- lines) for metadata. Full YAML parsers like js-yaml are overkill when you only need simple key: value or key: "value" pairs. This pattern extracts frontmatter fields with zero dependencies.
Check if line 0 is ---, then find the closing ---. Lines between are frontmatter; everything after is body content.
const lines = content.split('\n');
let bodyStartIndex = 0;
const metadata: Record<string, string> = {};
if (lines[0]?.trim() === '---') {
const closingIndex = lines.indexOf('---', 1);
if (closingIndex > 0) {
bodyStartIndex = closingIndex + 1;
for (let i = 1; i < closingIndex; i++) {
const match = /^(\w+):\s*"?([^"]*)"?\s*$/.exec(lines[i]);
if (match) {
metadata[match[1].toLowerCase()] = match[2].trim();
}
}
}
}
Always provide a fallback for files without frontmatter. Check headings or use filename as the default:
let name = metadata.name || dirName;
if (name === dirName) {
const headingMatch = /^#\s+(.+)/.exec(lines[bodyStartIndex] ?? '');
if (headingMatch) { name = headingMatch[1].trim(); }
}
When extracting description or body text, start scanning from bodyStartIndex (after the closing ---), not from line 0 or line 1.
js-yaml is 50KB+ and handles features you don't need.content to strip frontmatter — keep the original content intact; use bodyStartIndex for display-layer parsing only.key: value and key: "value" pairs — no nested YAML, arrays, or multiline values.--- must be an exact match on its own line.