← 返回 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。

💬 留言讨论