跳到主要内容
知仓学习社ZHICANG

baoyu-format-markdown

技术写作员与内容创作者在处理纯文本或 Markdown 稿件时,若需优化文章结构、添加 frontmatter 或自动修正中英文排版间距,使用此技能可一键生成专业美观的 {filename}-formatted.md 文件,让文档排版更完美。

执行命令写文件读文件联网严重 0 · 高危 3anbeime/skill

它会碰到什么

扫了多少6 个文本文件,46 KB
它会碰到什么执行命令写文件读文件联网
命中总数27 处
命中统计严重 0 · 高 3 · 中 4 · 低 20
逐条看命中(3 条严重或高危)
  • scripts/autocorrect.ts:1exec-spawn
    import { execSync } from "child_process";
  • scripts/autocorrect.ts:1exec-spawn
    import { execSync } from "child_process";
  • scripts/autocorrect.ts:5exec-spawn
    execSync(`npx autocorrect-node --fix "${filePath}"`, { stdio: "inherit" });

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

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?

1. Optimize formatting (Recommended)
   - Add/improve frontmatter, headings, bold, lists
   - Run typography script (spacing, emphasis fixes)
   - Output: {filename}-formatted.md

2. Keep original formatting
   - Preserve existing markdown structure
   - Run typography script (spacing, emphasis fixes)
   - Output: {filename}-formatted.md

3. Typography fixes only
   - Run typography script on original file in-place
   - No copy created, modifies original file directly

Based on user choice:

  • Optimize: Continue to Step 2-8 (full workflow)
  • Keep original: Skip Steps 2-5, copy file → Step 6-8 (run script on copy)
  • Typography only: Skip Steps 2-6, run Step 7 on original file directly

Step 2: Analyze Content Structure

Identify:

  • Existing title (H1 #)
  • Paragraph separations
  • Keywords suitable for bold
  • Parallel content convertible to lists
  • Code snippets
  • Quotations

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:

  1. If frontmatter already has title → use it, no H1 in body
  2. If first line is H1 → extract to frontmatter title, remove H1 from body
  3. If neither exists → generate candidate titles

Title generation flow:

  1. Generate 3 candidate titles based on content
  2. Use AskUserQuestion tool:
Select a title:

1. [Title A] (Recommended)
2. [Title B]
3. [Title C]
  1. If no selection within a few seconds, use recommended (option 1)

Title principles:

  • Concise, max 20 characters
  • Captures core message
  • Engaging, sparks reading interest
  • Accurate, avoids clickbait

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 ``block` |

| Quotes/sayings | Use > blockquote |

| Separators | Use --- where appropriate |

Formatting principles:

  • Preserve original content and viewpoints
  • Add formatting only, do not modify text
  • Formatting serves readability
  • Avoid over-formatting

Step 6: Save Formatted File

Save as {original-filename}-formatted.md

Examples:

  • final.mdfinal-formatted.md
  • draft-v1.mddraft-v1-formatted.md

If user chose "Keep original formatting" (from Step 1.5):

  • Copy original file to {filename}-formatted.md without modifications
  • Proceed to Step 7 for typography fixes only

Backup 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"
fi

Example:

  • final-formatted.md exists → backup to final-formatted.backup-20260128-143052.md

Step 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.md

# Enable all features including quote replacement
npx -y bun ${SKILL_DIR}/scripts/main.ts article.md --quotes

# Only fix emphasis issues, skip spacing
npx -y bun ${SKILL_DIR}/scripts/main.ts article.md --no-spacing

# Disable all processing except frontmatter formatting
npx -y bun ${SKILL_DIR}/scripts/main.ts article.md --no-spacing --no-emphasis

Script performs (based on options):

  1. Fix CJK emphasis/bold punctuation issues (default: enabled)
  2. Add CJK/English mixed text spacing via autocorrect (default: enabled)
  3. Replace ASCII quotes "..." with fullwidth quotes "..." (default: disabled)
  4. Format frontmatter YAML (always enabled)

Step 8: Display Results

**Formatting complete**

File: 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

  • Preserve original writing style and tone
  • Specify correct language for code blocks (e.g., python, javascript)
  • Maintain CJK/English spacing standards
  • Do not add content not present in original

Extension Support

Custom configurations via EXTEND.md. See Preferences section for paths and supported options.

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。

它属于哪个仓库

星标★ 6,808
本站分层T1
该仓技能数84
原文件路径skills/content-creation-publisher/baoyu-format-markdown/SKILL.md

同一个仓库里的其他技能

看这个仓库的全部 84 个技能