Markdown Formatter — Markdown 格式化与美化工具
v1.0.0格式化和美化 Markdown 文档,支持可配置样式。保留结构,修复格式,确保一致性。支持多种样式指南(CommonMark、GitHub 风格、自定义规则),处理从简单清理到复杂重排的所有任务。
8· 12,200·0 当前·0 累计
安全扫描
OpenClaw
安全
medium confidence此包是一个本地 Markdown 格式化工具,未请求任何凭据,其行为与描述相符,但提供的代码包含多个 bug 和质量问题,在处理敏感数据或生产环境前应审查。
评估建议
此技能看似如其宣称(Markdown 格式化器),未请求凭据或外部网络访问,但提供的代码包含多个编程错误和可疑的正则表达式/逻辑,可能导致崩溃或格式错误。安装/运行前:- 本地审查和修复代码(特别是 STYLE_GUIDES 对象语法错误、未定义变量如 fixListMarkers 中的 opts、格式错误的正则表达式和替换逻辑);- 在沙盒/容器中运行附带的 test.js 观察行为;- 除非信任技能,否则不要将敏感系统文件路径传递给 formatBatch(它将读取进程有权限读取的任何文件);- 由于存储库/源代码未知,建议在隔离环境中运行,并考虑从可信的上游存储库获取包(或替换为知名的格式化工具如 Prettier 或 remark)以用于生产。信心度为中等:意图清晰一致,但代码质量问题降低了对安全性的信心。...详细分析 ▾
✓ 用途与能力
名称/描述、SKILL.md、README 和代码都描述了一个接受 Markdown 文本或文件路径并返回格式化文本的 Markdown 格式化器/林特。函数 formatMarkdown、formatBatch 和 lintMarkdown 与声明的目的相符,没有额外的服务、凭据或无关的依赖项请求。
ℹ 指令范围
SKILL.md 指示代理读取和格式化文件(formatBatch 接受文件路径)。代码通过 fs.readFileSync 读取文件(对于批量文件格式化器预期如此)。然而,SKILL.md 不限制可以传递的路径,因此如果使用任意路径调用此技能,则可以读取代理进程有权限读取的任何文件。另外,SKILL.md 不限制网络活动(代码中没有),也不请求额外的环境/上下文。
✓ 安装机制
没有安装规格;仅为指令加本地代码。安装期间没有从远程 URL 下载内容,且包中未指定安装时操作。
✓ 凭证需求
技能未声明任何必需的环境变量、凭据或配置路径。代码仅使用核心 Node 模块(fs、path)和本地 config.json — 适合本地格式化器。
✓ 持久化与权限
always 为 false 且技能为用户可调用;它不要求始终启用。代理自主调用技能的默认能力未更改(disable-model-invocation: false)——这是平台默认值,自身并非红旗。注意,自主调用 + 读取文件系统路径的函数可以用于访问本地文件,如果代理决定使用敏感路径调用技能。
安全有层次,运行前请审查代码。
运行时依赖
无特殊依赖
版本
latestv1.0.02026/2/4
● 无害
安装命令 点击复制
官方npx clawhub@latest install markdown-formatter
镜像加速npx clawhub@latest install markdown-formatter --registry https://cn.clawhub-mirror.com
技能文档
Vernox 实用技能 - 让您的 Markdown 更加专业。
概述
Markdown-Formatter 是一款强大的 Markdown 文档格式化、代码检查和美化工具。支持多种风格指南(CommonMark、GitHub 风格 Markdown、自定义规则),能够处理从简单清理到复杂重格式化的所有工作。
功能
✅ 格式化引擎
- 多种风格指南(CommonMark、GitHub、自定义)
- 保留文档结构
- 处理嵌套列表、代码块、表格
- 可配置的行宽和缩进
- 智能标题规范化
- 链接引用优化
✅ 代码检查与清理
- 移除尾部空白
- 规范化行尾符号(LF vs CRLF)
- 修复不一致的列表标记
- 移除末尾空行
- 修复多个连续空行
✅ 美化功能
- 改善标题层级
- 优化列表格式
- 格式化代码块,保持适当间距
- 按配置宽度换行长行
- 在强调内容周围添加适当间距
✅ 验证功能
- 检查 Markdown 语法有效性
- 报告代码检查错误
- 建议改进方案
- 验证链接和引用
安装
clawhub install markdown-formatter
快速开始
格式化文档
const result = await formatMarkdown({
markdown: '# My Document\n\n\n## Section 1\nContent here...',
style: 'github',
options: {
maxWidth: 80,
headingStyle: 'atx'
}
});
console.log(result.formattedMarkdown);
美化多个文件
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);
});
代码检查与修复
const result = await lintMarkdown({
markdown: '# My Document\n\n\nBad list\n\n- item 1\n- item 2',
style: 'github'
});
console.log(Errors found: ${result.errors});
console.log(Fixed: ${result.fixed});
工具函数
formatMarkdown
根据风格指南格式化 Markdown 内容。
参数:
markdown(字符串,必需):要格式化的 Markdown 内容style(字符串,必需):风格指南名称('commonmark'、'github'、'commonmark'、'custom')options(对象,可选):
maxWidth(数字):行换行宽度(默认值:80)
- headingStyle(字符串):'atx' | 'setext' | 'underlined' | 'consistent'(默认值:'atx')
- listStyle(字符串):'consistent' | 'dash' | 'asterisk' | 'plus'(默认值:'consistent')
- codeStyle(字符串):'fenced' | 'indented'(默认值:'fenced')
- emphasisStyle(字符串):'underscore' | 'asterisk'(默认值:'asterisk')
- strongStyle(字符串):'asterisk' | 'underline'(默认值:'asterisk')
- linkStyle(字符串):'inline' | 'reference' | 'full'(默认值:'inline')
- preserveHtml(布尔值):保留 HTML 原样(默认值:false)
- fixLists(布尔值):修复不一致的列表标记(默认值:true)
- normalizeSpacing(布尔值):修复格式周围的间距(默认值:true)返回:
formattedMarkdown(字符串):格式化后的 Markdownwarnings(数组):警告消息数组stats(对象):格式化统计信息lintResult(对象):代码检查错误和修复originalLength(数字):原始字符数formattedLength(数字):格式化后字符数
formatBatch
一次格式化多个 Markdown 文件。
参数:
markdownFiles(数组,必需):文件路径数组style(字符串):风格指南名称options(对象,可选):与 formatMarkdown 相同的选项
返回:
results(数组):格式化结果数组totalFiles(数字):处理的文件数totalWarnings(数字):所有文件的警告总数processingTime(数字):处理耗时(毫秒)
lintMarkdown
检查 Markdown 问题但不进行格式化。
参数:
markdown(字符串,必需):要检查的 Markdown 内容style(字符串):风格指南名称options(对象,可选):额外的代码检查选项
checkLinks(布尔值):验证链接(默认值:true)
- checkHeadingLevels(布尔值):检查标题层级(默认值:true)
- checkListConsistency(布尔值):检查列表标记一致性(默认值:true)
- checkEmphasisBalance(布尔值):检查强调配对(默认值:false)返回:
errors(数组):错误对象数组warnings(数组):警告对象数组stats(对象):代码检查统计信息suggestions(数组):建议的修复方案
风格指南
CommonMark(默认)
- 标准 CommonMark 规范
- ATX 标题(ATX 风格)
- 引用式链接 [text]
- 下划线强调
- 星号强调
GitHub 风格 Markdown
- 带 ``
的围栏代码块 - 管道分隔的表格
- 任务列表 [ ] 带 x
- 删除线 ~~text~~
- 自动链接
Consistent(默认)
- 一致的 ATX 标题层级
- 一致的列表标记
- 一致的强调样式
- 一致的代码块样式
自定义
- 用户定义的规则
- 基于正则表达式的转换
- 自定义标题样式
使用场景
文档清理
- 修复 README 文件中的不一致格式
- 规范化标题样式
- 修复列表标记
- 清理多余空白
内容创作
- 使用一致样式格式化文章
- 在发布前美化博客文章
- 确保一致的标题层级
技术写作
- 格式化代码文档
- 美化 API 规范
- 清理来自 LLM 的混乱 Markdown
README 生成
- 格式化并美化项目 README 文件
- 确保一致的结构
- 为开源项目提供专业外观
Markdown 转换
- 将 HTML 转换为 Markdown
- 从一种风格重格式化到另一种
- 从其他格式提取并格式化 Markdown
配置
编辑 config.json:
{
"defaultStyle": "github",
"maxWidth": 80,
"headingStyle": "atx",
"listStyle": "consistent",
"codeStyle": "fenced",
"emphasisStyle": "asterisk",
"linkStyle": "inline",
"customRules": [],
"linting": {
"checkLinks": true,
"checkHeadingLevels": true,
"checkListConsistency": true
}
}
示例
简单格式化
const result = await formatMarkdown({
markdown: '# My Title\n\n\nThis is content.',
style: 'github'
});
console.log(result.formattedMarkdown);
复杂美化
const result = await formatMarkdown({
markdown: '# Header 1\n## Header 2\n\nParagraph...',
style: 'github',
options: {
fixLists: true,
normalizeSpacing: true,
wrapWidth: 80
}
});
console.log(result.formattedMarkdown);
代码检查与修复
const result = await lintMarkdown({ markdown: '# Title\n\n- Item 1\n- Item 2\n\n## Section 2', style: 'github' }); console.log(Errors: ${result.errors.length}); result.errors.forEach(err => { console.log(- ${err.message} at line ${err.line}); });// 自动修复 const fixed = await formatMarkdown({ markdown: result.fixed, style: 'github' });
批量处理
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}`);
性能
速度
- 小型文档(<1000 字):<50ms
- 中型文档(1000-5000 字):50-200ms
- 大型文档(5000+ 字):200-500ms
准确性
- 结构保留:100%
- 风格指南合规性:95%+
- 空白规范化:100%
错误处理
无效输入
- 清晰的错误消息
- 建议检查文件路径
- 在格式化前验证 Markdown 内容
Markdown 解析错误
- 清晰地报告解析问题
- 建议手动修复
- 遇到错误时优雅降级
文件 I/O 错误
- 包含文件路径的清晰错误
- 检查文件是否存在
- 建议修复权限
- 批量处理遇到错误时继续执行
故障排除
格式未应用
- 检查样式是否正确
- 验证选项是否被正确应用
- 检查是否有冲突的规则
- 用简单示例测试
代码检查显示太多错误
- 某些错误是风格选择,不是真正的问题
- 考虑禁用特定检查
- 使用自定义规则满足特定需求
技巧
获得最佳效果
- 使用一致的风格指南
- 启用 fixLists、normalizeSpacing 选项
- 根据您的输出媒介设置适当的 maxWidth
- 先在小样本上测试
性能优化
- 批量处理大文件
- 禁用未使用的代码检查
- 对常见模式使用更简单的规则
许可证
MIT
格式化 Markdown。让您的文档保持美观。 🔮
数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制
免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制