.vale.ini to define how it processes your documentation. This file controls everything from which styles to apply to how different file formats are handled.
Configuration File Location
Vale searches for configuration files in the following order:- Command-line flag: Specified via
--config - Environment variable: Set via
VALE_CONFIG_PATH - Local search: Walk up directory tree from current directory
- Home directory: Check for
.vale.iniin your home directory - Global config: User config directory (loaded in addition to other sources)
.vale.ini file found (except for the global config, which is always loaded if present).
Vale supports multiple file names for backwards compatibility:
.vale, _vale, vale.ini, .vale.ini, and _vale.ini. However, .vale.ini is the recommended and documented standard.File Structure
A.vale.ini file consists of three main sections:
Core Section
The unnamed section at the top defines global configuration:Global Section
The[*] section defines settings that apply to all files:
Syntax-Specific Sections
Sections with glob patterns define settings for specific file types:Core Configuration Options
These options must be defined in the core section (before any[section] headers).
The path to your styles directory. Can be absolute or relative to the config file.
Minimum alert level to display. Must be one of:
suggestion, warning, or error.Project vocabulary to load from See the Vocabularies documentation for more details.
config/vocabularies/[name]/. Supports multiple vocabularies separated by commas.External configuration packages to install via See the Packages documentation for more details.
vale sync. Comma-separated list of package names or URLs.HTML/markup scopes to ignore completely. Vale will not process text within these scopes.
HTML/markup blocks to skip. Similar to
IgnoredScopes but applies to block-level elements.HTML classes to ignore. Elements with these classes will not be processed.
Template for converting YAML lists to regular expressions. Used by style rules that reference vocabulary files.
External API endpoint for NLP-related processing. Used by advanced rules that require natural language processing.
Global Options
These options can be defined in the[*] section or in syntax-specific sections.
Styles to load from your
StylesPath. Comma-separated list of style names.Regular expression patterns for blocks of text to ignore.
Regular expression patterns for inline tokens to ignore.
Syntax-Specific Options
These options can only be defined in syntax-specific sections (e.g.,[*.md]).
Path to an XSLT stylesheet for transforming XML files before processing.
Language identifier for syntax highlighting and language-specific processing.
Start and end delimiters for comment blocks. Must be exactly two values.
Custom view definition from
config/views/[name].yml for extracting specific content from structured files.Rule Configuration
Individual rules can be enabled or disabled at both global and syntax-specific levels:Rule levels can be
YES, NO, suggestion, warning, or error. The YES value inherits the level from the rule definition, while specific levels override it.Configuration Hierarchy
When multiple configuration sources are present, they are merged in this order:- Project config (from local search or flags)
- Default styles (if
VALE_STYLES_PATHis set) - Global config (from user config directory)
- Command-line flags (override all other settings)