styles/
├── House/
│ ├── Hedging.yml
│ ├── Terms.yml
│ └── dates/
│ └── TimeFormat.yml
└── Microsoft/
├── HeadingPunctuation.yml
...[*.md]
BasedOnStyles = Vale, Microsoft
# Switch a rule off, or on, or change how loudly it reports.
Microsoft.Contractions = NO
Microsoft.HeadingPunctuation = error
# Set a level for every rule in a style, and keep exceptions beside it.
proselint = suggestion
proselint.Typography = warning
# Adjust a rule's parameter with the bracket key.
Std.SentenceLength[max] = 30# Direct/Hedging.yml
extends: existence
message: "Consider removing '%s'."
level: warning
ignorecase: true
tokens:
- perhaps
- somewhat
- it seems# Direct/Terms.yml
extends: substitution
message: "Use '%s' instead of '%s'."
level: warning
ignorecase: true
swap:
e-mail: email
utilize: use
web site: website# House/Hedging.yml
extends: Direct.Hedging
message: "Hedge: '%s'. We state things plainly here."
level: error# House/Basically.yml
extends: Direct.Hedging
message: "Only '%s'."
tokens:
- basically# House/Stricter.yml
extends: Direct.Hedging
message: "Hedge: '%s'."
tokens+:
- arguably
- to some extent
tokens-:
- perhaps# House/Terms.yml
extends: Direct.Terms
swap+:
utilize: apply
sign-in: sign in
swap-:
- web site'tokens-': the parent has no entry 'maybe' to removetest.md:1:20:Direct.Hedging:Consider removing 'perhaps'.
test.md:1:20:House.Hedging:Hedge: 'perhaps'. We state things plainly here.[*.md]
BasedOnStyles = Direct, House
Direct.Hedging = NOstyles/GenZ/
├── _shared/
│ └── Slang.yml # never loads; Density, Budget, and Presence extend it
├── Budget.yml
├── Density.yml
└── Presence.yml# GenZ/Presence.yml
extends: GenZ._shared.Slang
message: "'%s' is slang."
level: errorvale styles/MyStyle