Skip to content

Commit fcc5b87

Browse files
jensensclaude
andcommitted
Add Vale prose linting configuration
Set up Vale with Microsoft and write-good style packages for automated documentation quality checks. Includes project-specific vocabulary to prevent false positives on technical terms. Usage: cd docs && vale sync && make docs-vale Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent d9caf92 commit fcc5b87

4 files changed

Lines changed: 186 additions & 0 deletions

File tree

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,10 @@ dist/
2727
# Generated benchmark data (keep .gz seed files for CI/PGO)
2828
benchmarks/bench_data/*
2929
!benchmarks/bench_data/Data.fs.gz
30+
31+
# Docs
32+
docs/html/
33+
docs/.mxmake/
34+
docs/.venv/
35+
docs/.vale/styles/Microsoft/
36+
docs/.vale/styles/write-good/

docs/.vale.ini

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
StylesPath = .vale/styles
2+
MinAlertLevel = suggestion
3+
Packages = Microsoft, write-good
4+
Vocab = Project
5+
6+
[*.md]
7+
BasedOnStyles = Vale, Microsoft, write-good
8+
9+
# Vocabulary is for spelling acceptance only, not casing enforcement
10+
Vale.Terms = NO
11+
12+
# Disable noisy rules that don't fit technical documentation
13+
Microsoft.Contractions = NO
14+
Microsoft.HeadingColons = NO
15+
Microsoft.Ellipses = NO
16+
17+
# Ignore MyST colon-fence directives: :::note ... :::
18+
BlockIgnores = (?s)(:::\w[^\n]*\n.+?:::)
19+
20+
# Ignore inline MyST/Sphinx roles: :ref:`target`, :doc:`path`, etc.
21+
TokenIgnores = (:[a-zA-Z][a-zA-Z0-9_-]*:`.+?`), (<[^>\n]+>)
Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
# Projects and products
2+
Plone
3+
ZODB
4+
PostgreSQL
5+
Zope
6+
[Pp]ython
7+
Thumbor
8+
Docker
9+
Sphinx
10+
Volto
11+
Traefik
12+
Mermaid
13+
Sentry
14+
Kubernetes
15+
Ceph
16+
[Nn]ginx
17+
[Ss]ystemd
18+
19+
# ZODB / Python ecosystem
20+
RelStorage
21+
ZEO
22+
FileStorage
23+
ZCatalog
24+
BTree[s]?
25+
PGJsonb
26+
GenericSetup
27+
CPython
28+
ParadeDB
29+
PyO3
30+
PyPI
31+
PyObject
32+
ZConfig
33+
mxmake
34+
35+
# Rust / codec specific
36+
PickleValue
37+
BigInt
38+
OOBTree
39+
PersistentMapping
40+
IOBTree
41+
IIBTree
42+
[Ss]erde
43+
[Mm]aturin
44+
zodbpickle
45+
46+
# Protocols / standards / acronyms
47+
CORS
48+
ZCML
49+
WSGI
50+
HTTP[S]?
51+
WebDAV
52+
HMAC
53+
SVG[s]?
54+
DNS
55+
LLVM
56+
CDN
57+
JSONB
58+
JSON
59+
XML
60+
SQL
61+
REST
62+
API[s]?
63+
URL[s]?
64+
BM25
65+
CJK
66+
GIL
67+
LRU
68+
MVCC
69+
TTL
70+
RAM
71+
PGO
72+
AST
73+
DDL
74+
HTML
75+
CSS
76+
OID[s]?
77+
TID[s]?
78+
IAM
79+
AWS
80+
81+
# Tools and commands
82+
[Pp]sql
83+
psycopg
84+
uv
85+
rustup
86+
pytz
87+
88+
# Technical terms
89+
tsvector
90+
autocommit
91+
[Dd]iataxis
92+
[Cc]ookiecutter
93+
async
94+
[Bb]oolean
95+
[Cc]odec
96+
[Cc]onfig
97+
enum[s]?
98+
lookups
99+
deque
100+
dicts
101+
bool
102+
args
103+
[Cc]odegen
104+
pickler
105+
memcpy
106+
tz
107+
Rc
108+
stdlib
109+
unicode
110+
booleans
111+
callables
112+
datetime[s]?
113+
defaultdict
114+
deserialization
115+
deserializ(e[s]?|ing)
116+
[Ff]rozenset[s]?
117+
inlining
118+
metastack
119+
OOBucket
120+
queryability
121+
queryable
122+
reallocations
123+
roundtrip(ping|s)?
124+
sanitization
125+
serde_json
126+
subcommand
127+
timedelta
128+
toolchain
129+
transcode[rs]?
130+
transcoding
131+
[Uu]ntrusted
132+
zoneinfo
133+
134+
# Benchmark names
135+
btree_length
136+
btree_small
137+
bytes_in_state
138+
deep_nesting
139+
large_flat_dict
140+
nested_dict
141+
scalar_string
142+
simple_flat_dict
143+
special_types
144+
wide_dict

docs/include.mk

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Vale prose linting
2+
3+
VALE_BIN?=vale
4+
VALE_FLAGS?=--no-exit
5+
6+
.PHONY: docs-vale
7+
docs-vale: $(DOCS_TARGET)
8+
@echo "Run Vale prose linter"
9+
@$(VALE_BIN) $(VALE_FLAGS) $(DOCS_SOURCE_FOLDER)
10+
11+
.PHONY: docs-vale-sync
12+
docs-vale-sync:
13+
@echo "Sync Vale styles"
14+
@$(VALE_BIN) sync

0 commit comments

Comments
 (0)