zhlint简介
zhlint是一个专门针对中文文本内容进行校对和格式化的工具。它可以帮助用户检查并自动修复中文文档中的各种格式和排版问题,包括标点符号、空格使用、中英文混排等方面。zhlint的目标是提高中文文档的质量和可读性,让文档格式更加规范和统一。
主要特性
- 支持多种安装和使用方式:npm、yarn、pnpm等
- 提供命令行界面(CLI)和Node.js API
- 支持自定义规则配置
- 支持Markdown语法
- 支持Hexo标签语法
- 可设置忽略特定情况
- 提供详细的校对报告
安装与使用
安装方法
用户可以通过npm、yarn或pnpm等包管理器轻松安装zhlint:
# 通过npm安装
npm install zhlint -g
# 或通过yarn安装
yarn global add zhlint
# 或通过pnpm安装
pnpm add zhlint -g
基本使用
安装完成后,可以通过命令行使用zhlint:
# 校对指定文件并输出报告
zhlint <文件匹配模式>
# 校对并自动修复所有可能的错误
zhlint <文件匹配模式> --fix
# 校对文件并将修复后的内容输出到另一个文件
zhlint <输入文件路径> --output=<输出文件路径>
# 显示使用帮助
zhlint --help
校对报告的示例如下:
高级用法
zhlint还支持通过配置文件自定义规则:
# 使用.zhlintrc配置文件
zhlint --config <配置文件路径>
# 使用.zhlintignore忽略文件
zhlint --ignore <忽略文件路径>
zhlint --file-ignore <忽略文件路径>
# 使用.zhlintcaseignore忽略特定情况
zhlint --case-ignore <忽略文件路径>
# 指定工作目录
zhlint --dir <目录路径>
在配置文件中,可以使用JSON格式定义规则:
{
"preset": "default",
"rules": {
"adjustedFullwidthPunctuation": ""
}
}
作为Node.js模块使用
除了命令行工具,zhlint也可以作为Node.js模块使用:
const { run, report } = require('zhlint')
const value = '自动在中文和English之间加入空格'
const options = { rules: { preset: 'default' } }
const output = run(value, options)
// 打印修复后的文本
console.log(output.result)
// 打印校对报告
report([output])
校对报告的格式如下:
1:6 - 此处中英文内容之间需要一个空格
自动在中文和English之间加入空格
^
1:13 - 此处中英文内容之间需要一个空格
自动在中文和English之间加入空格
^
Invalid files:
- foo.md
Found 2 errors.
功能特性
Markdown语法支持
zhlint默认支持Markdown语法的文本内容校对。例如:
run('自动在_中文_和**English**之间加入空格', options)
它会先分析Markdown语法,提取纯文本内容进行校对,然后将修复后的内容替换回原始的Markdown字符串。
Hexo标签语法支持
zhlint还特别支持Hexo标签语法,以避免在使用Hexo构建网站时出现意外结果。例如:
run(
'现在过滤器只能用在插入文本中 (`{% raw %}{{ }}{% endraw %}` tags)。',
options
)
设置忽略情况
在某些情况下,可能需要保留特定的格式。zhlint提供了ignoredCases
选项来配置这些情况。例如,要保留括号内的空格:
<!-- 正确的情况 -->
text before (text inside) text after
<!-- 错误的情况 -->
vm.$on( event, callback )
<!-- 添加以下注释来忽略这种情况 -->
<!-- zhlint ignore: ( , ) -->
或者通过选项传递:
run(str, { ignoredCases: { textStart: '( ', textEnd: ' )' } })
支持的规则
zhlint提供了丰富的规则选项,用户可以根据需求进行自定义配置。以下是部分规则示例:
- 半角/全角标点转换
- 中英文之间的空格处理
- 标点符号周围的空格处理
- 引号和括号周围的空格处理
- 代码块周围的空格处理
- Markdown/HTML标记内的空格处理
- 首尾空格处理
- 跳过纯西文句子
这些规则的设计参考了W3C中文排版需求、W3C HTML中文兴趣小组和Vue.js中文文档的翻译经验。
结语
zhlint是一个强大而灵活的中文文本校对工具,能够帮助用户提高文档质量和可读性。无论是个人写作还是团队协作,zhlint都能为中文内容创作提供有力支持。该项目目前在GitHub上开源,欢迎社区贡献和提出问题。
随着中文内容在互联网上的不断增长,保持良好的排版和格式变得越来越重要。zhlint的出现为中文文本校对提供了一个自动化的解决方案,让创作者能够更专注于内容本身,而不必过多关注格式细节。未来,我们期待看到更多类似的工具出现,进一步推动中文内容创作的规范化和高质量化。