baoyu-format-markdown
格式化纯文本或带前置元数据的Markdown文件,包括标题、摘要、标题层级、加粗、列表和代码块。适用于用户提出“格式化Markdown”、“美化文章”、“添加格式”或优化文章排版的需求。输出文件为{文件名}-formatted.md。
Markdown Formatter
Transforms plain text or markdown files into well-structured markdown with proper frontmatter, formatting, and typography.
Script Directory
Scripts in scripts/ subdirectory. Replace ${SKILL_DIR} with this SKILL.md's directory path.
| Script | Purpose |
|---|---|
scripts/main.ts | Main entry point with CLI options (uses remark-cjk-friendly for CJK emphasis) |
scripts/quotes.ts | Replace ASCII quotes with fullwidth quotes |
scripts/autocorrect.ts | Add CJK/English spacing via autocorrect |
Preferences (EXTEND.md)
Use Bash to check EXTEND.md existence (priority order):
# Check project-level first
test -f .baoyu-skills/baoyu-format-markdown/EXTEND.md && echo "project"Then user-level (cross-platform: $HOME works on macOS/Linux/WSL)
test -f "$HOME/.baoyu-skills/baoyu-format-markdown/EXTEND.md" && echo "user"┌──────────────────────────────────────────────────────────┬───────────────────┐
│ Path │ Location │
├──────────────────────────────────────────────────────────┼───────────────────┤
│ .baoyu-skills/baoyu-format-markdown/EXTEND.md │ Project directory │
├──────────────────────────────────────────────────────────┼───────────────────┤
│ $HOME/.baoyu-skills/baoyu-format-markdown/EXTEND.md │ User home │
└──────────────────────────────────────────────────────────┴───────────────────┘
┌───────────┬───────────────────────────────────────────────────────────────────────────┐
│ Result │ Action │
├───────────┼───────────────────────────────────────────────────────────────────────────┤
│ Found │ Read, parse, apply settings │
├───────────┼───────────────────────────────────────────────────────────────────────────┤
│ Not found │ Use defaults │
└───────────┴───────────────────────────────────────────────────────────────────────────┘
EXTEND.md Supports: Default formatting options | Summary length preferences
Usage
Claude performs content analysis and formatting (Steps 1-6), then runs the script for typography fixes (Step 7).
Workflow
Step 1: Read Source File
Read the user-specified markdown or plain text file.
Step 1.5: Detect Content Type & Confirm
Content Type Detection:
| Indicator | Classification |
|---|---|
Has --- YAML frontmatter | Markdown |
Has #, ##, ### headings | Markdown |
Has bold, italic | Markdown |
Has - or 1. lists | Markdown |
Has `` code blocks | Markdown |
Has > blockquotes | Markdown |
| None of above | Plain text |
Decision Flow:
┌─────────────────┬────────────────────────────────────────────────┐
│ Content Type │ Action │
├─────────────────┼────────────────────────────────────────────────┤
│ Plain text │ Proceed to Step 2 (format to markdown) │
├─────────────────┼────────────────────────────────────────────────┤
│ Markdown │ Use AskUserQuestion to confirm optimization │
└─────────────────┴────────────────────────────────────────────────┘
If Markdown detected, ask user:
Detected existing markdown formatting. What would you like to do?Optimize formatting (Recommended)
- Add/improve frontmatter, headings, bold, lists
- Run typography script (spacing, emphasis fixes)
- Output: {filename}-formatted.mdKeep original formatting
- Preserve existing markdown structure
- Run typography script (spacing, emphasis fixes)
- Output: {filename}-formatted.mdTypography fixes only
- Run typography script on original file in-place
- No copy created, modifies original file directlyBased on user choice:
Step 2: Analyze Content Structure
Identify:
)Step 3: Check/Create Frontmatter
Check for YAML frontmatter (--- block). Create if missing.
Meta field handling:
| Field | Processing |
|---|---|
title | See Step 4 |
slug | Infer from file path (e.g., posts/2026/01/10/vibe-coding/ → vibe-coding) or generate from title |
summary | Generate engaging summary (100-150 characters) |
featureImage | Check if imgs/cover.png exists in same directory; if so, use relative path |
Step 4: Title Handling
Logic:
→ use it, no H1 in body, remove H1 from bodyTitle generation flow:
tool:Select a title:[Title A] (Recommended)
[Title B]
[Title C] Title principles:
Important: Once title is in frontmatter, body should NOT have H1 (avoid duplication)
Step 5: Format Processing
Formatting rules:
| Element | Format |
|---|---|
| Titles | Use #, ##, ### hierarchy |
| Key points | Use bold |
| Parallel items | Convert to - unordered or 1. ordered lists |
| Code/commands | Use inline or ` |
| Quotes/sayings | Use > blockquote |
| Separators | Use --- where appropriate |
Formatting principles:
Step 6: Save Formatted File
Save as {original-filename}-formatted.md
Examples:
final.md → final-formatted.mddraft-v1.md → draft-v1-formatted.mdIf user chose "Keep original formatting" (from Step 1.5):
{filename}-formatted.md without modificationsBackup existing file:
If {filename}-formatted.md already exists, backup before overwriting:
# Check if formatted file exists
if [ -f "{filename}-formatted.md" ]; then
# Backup with timestamp
mv "{filename}-formatted.md" "{filename}-formatted.backup-$(date +%Y%m%d-%H%M%S).md"
fiExample:
final-formatted.md exists → backup to final-formatted.backup-20260128-143052.mdStep 7: Execute Text Formatting Script
After saving, must run the formatting script:
npx -y bun ${SKILL_DIR}/scripts/main.ts {output-file-path} [options]Script Options:
| Option | Short | Description | Default |
|---|---|---|---|
--quotes | -q | Replace ASCII quotes with fullwidth quotes "..." | false |
--no-quotes | Do not replace quotes | ||
--spacing | -s | Add CJK/English spacing via autocorrect | true |
--no-spacing | Do not add CJK/English spacing | ||
--emphasis | -e | Fix CJK emphasis punctuation issues | true |
--no-emphasis | Do not fix CJK emphasis issues | ||
--help | -h | Show help message |
Examples:
# Default: spacing + emphasis enabled, quotes disabled
npx -y bun ${SKILL_DIR}/scripts/main.ts article.mdEnable all features including quote replacement
npx -y bun ${SKILL_DIR}/scripts/main.ts article.md --quotesOnly fix emphasis issues, skip spacing
npx -y bun ${SKILL_DIR}/scripts/main.ts article.md --no-spacingDisable all processing except frontmatter formatting
npx -y bun ${SKILL_DIR}/scripts/main.ts article.md --no-spacing --no-emphasisScript performs (based on options):
"..." with fullwidth quotes "..." (default: disabled)Step 8: Display Results
Formatting completeFile: posts/2026/01/09/example/final-formatted.md
Changes:
Added title: [title content]
Added X bold markers
Added X lists
Added X code blocks Formatting Example
Before:
This is plain text. First point is efficiency improvement. Second point is cost reduction. Third point is experience optimization. Use npm install to install dependencies.After:
---
title: Three Core Advantages
slug: three-core-advantages
summary: Discover the three key benefits that drive success in modern projects.
This is plain text.
Main advantages:
Efficiency improvement
Cost reduction
Experience optimization Use npm install to install dependencies.
Notes
python, javascript)Extension Support
Custom configurations via EXTEND.md. See Preferences section for paths and supported options.