← 返回 Skills 市场
michael-laffin

Markdown Formatter

作者 Michael-laffin · GitHub ↗ · v1.0.0
cross-platform ✓ 安全检测通过
17606
总下载
11
收藏
72
当前安装
1
版本数
在 OpenClaw 中安装
/install markdown-formatter
功能描述
Format and beautify markdown documents with configurable styles. Preserve structure, fix formatting, ensure consistency.
使用说明 (SKILL.md)

Markdown-Formatter - Beautify Your Markdown

Vernox Utility Skill - Make your markdown look professional.

Overview

Markdown-Formatter is a powerful tool for formatting, linting, and beautifying markdown documents. Supports multiple style guides (CommonMark, GitHub Flavored Markdown, custom rules) and handles everything from simple cleanup to complex reformatting.

Features

✅ Formatter Engine

  • Multiple style guides (CommonMark, GitHub, custom)
  • Preserves document structure
  • Handles nested lists, code blocks, tables
  • Configurable line width and indentation
  • Smart heading normalization
  • Link reference optimization

✅ Linting & Cleanup

  • Remove trailing whitespace
  • Normalize line endings (LF vs CRLF)
  • Fix inconsistent list markers
  • Remove empty lines at end
  • Fix multiple consecutive blank lines

✅ Beautification

  • Improve heading hierarchy
  • Optimize list formatting
  • Format code blocks with proper spacing
  • Wrap long lines at configured width
  • Add proper spacing around emphasis

✅ Validation

  • Check markdown syntax validity
  • Report linting errors
  • Suggest improvements
  • Validate links and references

Installation

clawhub install markdown-formatter

Quick Start

Format a Document

const result = await formatMarkdown({
  markdown: '# My Document\
\
\
## Section 1\
Content here...',
  style: 'github',
  options: {
    maxWidth: 80,
    headingStyle: 'atx'
  }
});

console.log(result.formattedMarkdown);

Beautify Multiple Files

const results = await formatBatch({
  markdownFiles: ['./doc1.md', './doc2.md', './README.md'],
  style: 'github',
  options: { wrapWidth: 80 }
});

results.forEach(result => {
  console.log(`${result.file}: ${result.warnings} warnings`);
});

Lint and Fix

const result = await lintMarkdown({
  markdown: '# My Document\
\
\
Bad list\
\
- item 1\
- item 2',
  style: 'github'
});

console.log(`Errors found: ${result.errors}`);
console.log(`Fixed: ${result.fixed}`);

Tool Functions

formatMarkdown

Format markdown content according to style guide.

Parameters:

  • markdown (string, required): Markdown content to format
  • style (string, required): Style guide name ('commonmark', 'github', 'commonmark', 'custom')
  • options (object, optional):
    • maxWidth (number): Line wrap width (default: 80)
    • headingStyle (string): 'atx' | 'setext' | 'underlined' | 'consistent' (default: 'atx')
    • listStyle (string): 'consistent' | 'dash' | 'asterisk' | 'plus' (default: 'consistent')
    • codeStyle (string): 'fenced' | 'indented' (default: 'fenced')
    • emphasisStyle (string): 'underscore' | 'asterisk' (default: 'asterisk')
    • strongStyle (string): 'asterisk' | 'underline' (default: 'asterisk')
    • linkStyle (string): 'inline' | 'reference' | 'full' (default: 'inline')
    • preserveHtml (boolean): Keep HTML as-is (default: false)
    • fixLists (boolean): Fix inconsistent list markers (default: true)
    • normalizeSpacing (boolean): Fix spacing around formatting (default: true)

Returns:

  • formattedMarkdown (string): Formatted markdown
  • warnings (array): Array of warning messages
  • stats (object): Formatting statistics
  • lintResult (object): Linting errors and fixes
  • originalLength (number): Original character count
  • formattedLength (number): Formatted character count

formatBatch

Format multiple markdown files at once.

Parameters:

  • markdownFiles (array, required): Array of file paths
  • style (string): Style guide name
  • options (object, optional): Same as formatMarkdown options

Returns:

  • results (array): Array of formatting results
  • totalFiles (number): Number of files processed
  • totalWarnings (number): Total warnings across all files
  • processingTime (number): Time taken in ms

lintMarkdown

Check markdown for issues without formatting.

Parameters:

  • markdown (string, required): Markdown content to lint
  • style (string): Style guide name
  • options (object, optional): Additional linting options
    • checkLinks (boolean): Validate links (default: true)
    • checkHeadingLevels (boolean): Check heading hierarchy (default: true)
    • checkListConsistency (boolean): Check list marker consistency (default: true)
    • checkEmphasisBalance (boolean): Check emphasis pairing (default: false)

Returns:

  • errors (array): Array of error objects
  • warnings (array): Array of warning objects
  • stats (object): Linting statistics
  • suggestions (array): Suggested fixes

Style Guides

CommonMark (default)

  • Standard CommonMark specification
  • ATX headings (ATX-style)
  • Reference-style links [text]
  • Underscore emphasis
  • Asterisk emphasis

GitHub Flavored Markdown

  • Fenced code blocks with ```
  • Tables with pipes
  • Task lists [ ] with x
  • Strikethrough ~~text~~
  • Autolinks with \x3Chttps://url>

Consistent (default)

  • Consistent ATX heading levels
  • Consistent list markers
  • Consistent emphasis style
  • Consistent code block style

Custom

  • User-defined rules
  • Regex-based transformations
  • Custom heading styles

Use Cases

Documentation Cleanup

  • Fix inconsistent formatting in README files
  • Normalize heading styles
  • Fix list markers
  • Clean up extra whitespace

Content Creation

  • Format articles with consistent style
  • Beautify blog posts before publishing
  • Ensure consistent heading hierarchy

Technical Writing

  • Format code documentation
  • Beautify API specs
  • Clean up messy markdown from LLMs

README Generation

  • Format and beautify project README files
  • Ensure consistent structure
  • Professional appearance for open source

Markdown Conversion

  • Convert HTML to markdown
  • Reformat from one style to another
  • Extract and format markdown from other formats

Configuration

Edit config.json:

{
  "defaultStyle": "github",
  "maxWidth": 80,
  "headingStyle": "atx",
  "listStyle": "consistent",
  "codeStyle": "fenced",
  "emphasisStyle": "asterisk",
  "linkStyle": "inline",
  "customRules": [],
  "linting": {
    "checkLinks": true,
    "checkHeadingLevels": true,
    "checkListConsistency": true
  }
}

Examples

Simple Formatting

const result = await formatMarkdown({
  markdown: '# My Title\
\
\
This is content.',
  style: 'github'
});

console.log(result.formattedMarkdown);

Complex Beautification

const result = await formatMarkdown({
  markdown: '# Header 1\
## Header 2\
\
Paragraph...',
  style: 'github',
  options: {
    fixLists: true,
    normalizeSpacing: true,
    wrapWidth: 80
  }
});

console.log(result.formattedMarkdown);

Linting and Fixing

const result = await lintMarkdown({
  markdown: '# Title\
\
- Item 1\
- Item 2\
\
## Section 2',
  style: 'github'
});

console.log(`Errors: ${result.errors.length}`);
result.errors.forEach(err => {
  console.log(`  - ${err.message} at line ${err.line}`);
});

// Fix automatically
const fixed = await formatMarkdown({
  markdown: result.fixed,
  style: 'github'
});

Batch Processing

const results = await formatBatch({
  markdownFiles: ['./doc1.md', './doc2.md', './README.md'],
  style: 'github'
});

console.log(`Processed ${results.totalFiles} files`);
console.log(`Total warnings: ${results.totalWarnings}`);

Performance

Speed

  • Small documents (\x3C1000 words): \x3C50ms
  • Medium documents (1000-5000 words): 50-200ms
  • Large documents (5000+ words): 200-500ms

Accuracy

  • Structure preservation: 100%
  • Style guide compliance: 95%+
  • Whitespace normalization: 100%

Error Handling

Invalid Input

  • Clear error message
  • Suggest checking file path
  • Validate markdown content before formatting

Markdown Parsing Errors

  • Report parsing issues clearly
  • Suggest manual fixes
  • Graceful degradation on errors

File I/O Errors

  • Clear error with file path
  • Check file existence
  • Suggest permissions fix
  • Batch processing continues on errors

Troubleshooting

Format Not Applied

  • Check if style is correct
  • Verify options are respected
  • Check for conflicting rules
  • Test with simple example

Linting Shows Too Many Errors

  • Some errors are style choices, not real issues
  • Consider disabling specific checks
  • Use custom rules for specific needs

Tips

Best Results

  • Use consistent style guide
  • Enable fixLists, normalizeSpacing options
  • Set maxWidth appropriate for your output medium
  • Test on small samples first

Performance Optimization

  • Process large files in batches
  • Disable unused linting checks
  • Use simpler rules for common patterns

License

MIT


Format markdown. Keep your docs beautiful. 🔮

安全使用建议
Install is reasonable for markdown cleanup. Use direct markdown text when possible, and use batch mode only with markdown files you intentionally want the skill to read; review output before replacing important documents.
功能分析
Type: OpenClaw Skill Name: markdown-formatter Version: 1.0.0 The skill's purpose is to format and beautify markdown documents. It utilizes `fs.readFileSync` in `index.js` to read user-specified markdown files for batch processing, which is a legitimate operation for its stated functionality. There is no evidence of data exfiltration, malicious execution, persistence, obfuscation, or prompt injection attempts in `SKILL.md` or `README.md` to manipulate an AI agent into performing unauthorized actions. All observed behaviors are aligned with the skill's described purpose.
能力评估
✓ Purpose & Capability
The artifacts consistently describe markdown formatting, linting, and batch cleanup, and the code implements those functions without unrelated network, credential, deletion, or persistence behavior.
ℹ Instruction Scope
Batch mode is documented as taking file paths and the implementation reads those paths directly; this is purpose-aligned, but it lacks path allowlisting, extension checks, or a prominent consent prompt.
✓ Install Mechanism
The package uses a normal Node entry point and test script, with no install hooks, remote downloads, privileged setup, or dependency scripts.
ℹ Credentials
Local file reads are proportionate for formatting multiple markdown files, but callers should avoid passing sensitive or non-markdown paths because the code does not restrict them.
✓ Persistence & Privilege
No background worker, autostart mechanism, credential handling, file overwrite, destructive mutation, or data exfiltration was found.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install markdown-formatter
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /markdown-formatter 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Initial release: Format and beautify markdown documents with configurable styles
元数据
Slug markdown-formatter
版本 1.0.0
许可证 —
累计安装 72
当前安装数 72
历史版本数 1
常见问题

Markdown Formatter 是什么?

Format and beautify markdown documents with configurable styles. Preserve structure, fix formatting, ensure consistency. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 17606 次。

如何安装 Markdown Formatter?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install markdown-formatter」即可一键安装,无需额外配置。

Markdown Formatter 是免费的吗?

是的,Markdown Formatter 完全免费(开源免费),可自由下载、安装和使用。

Markdown Formatter 支持哪些平台?

Markdown Formatter 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Markdown Formatter?

由 Michael-laffin(@michael-laffin)开发并维护,当前版本 v1.0.0。

💬 留言讨论