Vale:适用于散文的代码式检查工具
摘要
Vale 是一款开源命令行工具,对散文应用类似代码的检查,使团队能够在各种标记格式的文档和代码注释中强制执行风格指南。
<p><a href="https://lobste.rs/s/anvcfz/vale_code_like_linting_for_prose">评论</a></p>
查看缓存全文
缓存时间: 2026/09/18 21:54
# Vale:你的风格,我们的编辑器
来源:https://vale.sh/
开源 · MIT 许可证 · 6.1K 星标 (https://github.com/vale-cli/vale)
GitHub 星标6.1K (https://github.com/vale-cli/vale) 下载量13.9M (https://vale.sh/library) 已采用团队90 (https://vale.sh/adopters) Vale 将代码式的校验带入散文写作。将一个团队的风格指南、企业语气或期刊作者指南转化为可在编辑器和代码旁运行的检查项。
快速开始 (https://docs.vale.sh/topics/quickstart) 了解工作原理 (https://vale.sh/#how-it-works)
支持 macOS、Windows 和 Linux · 离线运行
01你的指南
写作指南 · 术语
该产品名为 **Vale CLI**。请勿写作 Vale cli 或 vale-cli。
02你自定义的规则
styles/Docs/Terms.yml
```
extends: substitution
message: "请使用‘%s’而非‘%s’。"
level: error
action:
name: replace
swap:
'Vale cli|vale-cli': Vale CLI
'style ?guide': style guide
'e-?mail': email
```
03在你的写作环境中获取反馈
docs/install.md
1. # 安装
3. Vale CLI 可在 macOS、Windows 和 Linux 上运行。
错误:请使用 'Vale CLI' 而非 'Vale cli'。Docs.Terms
将你的指南编码为 YAML 文件,或从已发布的风格入手:Microsoft (https://vale.sh/explorer/Microsoft)、Google (https://vale.sh/explorer/Google) 或 Red Hat (https://vale.sh/explorer/RedHat)。在探索器 (https://vale.sh/explorer) 中浏览所有可用风格。
支持该项目
## 赞助商聚焦 (https://vale.sh/#spotlight)
这些公司支持 Vale 的未来——并将它应用于自己的产品中。
为何选择 Vale
## 多数工具只看文本。Vale 能理解文档。(https://vale.sh/#features)
在上下文中检查写作。可针对标题、注释或描述进行检查,同时保留其周围的代码。
01作用域
### 你的文档有结构,你的规则也该有结构。
对标题、列表和表格单元格应用不同的检查。Vale 首先解析标记,因此代码块和链接 URL 不会受到干扰。
探索标记与作用域 (https://vale.sh/features/markup)
guide.md Vale 所见内容
`\# Getting started` 标题
`使用你团队的语气写作。` 段落
`\- 保持说明清晰。` 列表
`\[阅读指南\]\(https://example\.com\)` 跳过的 URL
`\`\`\`shvale docs/\`\`\`` 跳过的代码块
检查散文,保留代码。
支持12种标记格式
- Markdown
- AsciiDoc
- reStructuredText
- MDX
- MyST
- Quarto
- Typst
- HTML
- XML
- DITA
- Org
- QDoc
02代码
### 注释同样重要。
使用 tree-sitter 语法解析器提取注释,然后检查其中的 Markdown。字符串内的注释标记仍视为代码。
文档注释中的 Markdown
`/// 使用给定的名称创建一个人。`
段落
`///`
`/// \# 示例`
标题
`/// \`\`\``
代码块已跳过
`/// let person = Person::new\("name"\);`
`/// \`\`\``
`pub fn new\(name: &str\) \-\> Person \{`
非注释
支持19种编程语言
- Go
- Rust
- Python
- Ruby
- C\+\+
- C
- JavaScript
- TypeScript
- TSX
- Java
- Haskell
- Julia
- Lua
- PHP
- R
- QML
- Protobuf
- YAML
- CSS
探索代码注释 (https://vale.sh/features/code)
03视图
### 在意想不到的地方发现散文。
视图可以选择结构化文件内的写作内容。使用相应上下文的规则检查 API 描述、笔记本单元格或提交信息。
选择描述
`openapi: 3\.1\.0`
`info:`
`title: Example API`
`version: 1\.0\.0`
`description: 管理你的项目。`
描述
`paths:`
`/projects: \{\}`
超越文档范畴
- OpenAPI
- Jupyter
- 提交信息
- 转录稿
- 文档字符串
- JSON
- YAML
- TOML
探索视图 (https://vale.sh/features/views)
04速度
### 为整个仓库而生。
单一 Go 二进制文件。并行检查。无需单独的运行时。
查看性能基准 (https://vale.sh/features/speed)
GitLab 文档 · 单次运行
Markdown 页面数2,827 应用规则数82 从开始到结束<20秒
分发情况
## Vale 的下载渠道 (https://vale.sh/#stats)
七个注册中心发布了下载计数,且各自统计的时间窗口不同,因此在此并列展示,而非合并为一个总数。
至今总下载量13.9M
报告其生命周期总量的渠道
GitHub 星标6.1K
vale-cli/vale
主仓库贡献者64位
- GitHub Releases11.4M 生命周期 (https://github.com/vale-cli/vale/releases)
- Docker Hub2.3M 生命周期 (https://hub.docker.com/r/jdkato/vale)
- PyPI1.6M 过去6个月 · 社区维护的包装器 (https://pypi.org/project/vale/)
- npm139.8K 过去1个月 · 社区维护的包装器 (https://www.npmjs.com/package/@vvago/vale)
- conda-forge165.4K 生命周期 (https://anaconda.org/conda-forge/vale)
- Homebrew76.6K 过去12个月 (https://formulae.brew.sh/formula/vale)
- Chocolatey19.5K 生命周期 (https://community.chocolatey.org/packages/vale)
- GitHub Action4.2K 仓库 · 正在使用中 (https://github.com/marketplace/actions/vale-linter)
- 同时提供以下平台版本
- WinGet v3.22.0 (https://winstall.app/apps/errata-ai.Vale)
- Snap Store v3.17.1 (https://snapcraft.io/vale)
- Linux 和 BSD 17 个仓库 (https://repology.org/project/vale/versions)
数据来源:GitHub、Docker Hub、PyPI、npm、conda-forge、Homebrew、Chocolatey、WinGet、Snapcraft 和 Repology · 更新于 2026-08-28
一个工具,适用于所有应用
## 不仅仅是命令行界面。(https://vale.sh/#integrations)
Vale 可在你日常写作的任何地方运行——在你的编辑器中,在你的笔记应用中,以及在 CI 代码合并前。
## 几行配置,即可获得一致的初稿。
从一个现有的风格指南入手。将配置保存在项目中,确保每个人都运行相同的检查。
1. **安装 Vale。** 为你的操作系统选择一个安装包。
2. **选择你的风格。** 将以下内容保存为项目中的 `.vale.ini` 文件。
3. **同步,然后校验。** 下载风格并检查你的文档。
```
StylesPath = styles
MinAlertLevel = suggestion
Packages = Microsoft
[*.md]
BasedOnStyles = Vale, Microsoft
```
使用 YAML 规则自定义
```
extends: substitution
message: "请使用‘%s’而非‘%s’。"
level: warning
swap:
utilize: use
```
学习编写规则 → (https://docs.vale.sh/topics/styles)
相似文章
@vincemask: https://x.com/vincemask/status/2054457804057100405
文章展示了如何通过自定义 Hooks 构建自动化工作流,以解决 Claude Code 在编写代码、运行测试和格式化文件后遗漏提交或格式未完全对齐的问题。
Write Lint
Write Lint 是一个 Mac 上的校对工具,可以通过 ⌘⇧L 快捷键调用。
合理的输出风格 - 如果你厌倦了编码代理使用Clanker-Speak
本文为编码代理提供风格规则,以确保输出清晰、简洁的语言,无术语或冗长,涵盖词汇、句子结构和Markdown格式。
代理在代码缺失时声称'完成'。这是我们的解决方案。
文章介绍了一个名为'malveon check'的CLI工具,它通过运行构建、lint和测试命令来验证代码完成度,以防止AI代理错误地宣布任务完成。
@nateberkopec: 自动 lint 规则,对人类来说过于严格,但对代理有效:1. 圈复杂度预算 2. 每文件代码行数限制…
这条推文讨论了像圈复杂度预算和 CSS/JS 限制这样的自动 lint 规则,这些规则对人类来说严格,但对编码代理有效。Sam Saffron 强调了它们在防止长期代码腐烂方面的作用。