Skip to content

Commit 654f87c

Browse files
committed
Merge branch 'development' into kv-admin-ui
2 parents eb10449 + d89c083 commit 654f87c

403 files changed

Lines changed: 4991 additions & 4462 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/vale.yml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: Vale Linting
2+
3+
# Trigger on PRs that change Markdown files
4+
on:
5+
pull_request:
6+
paths:
7+
- 'content/en/docs/**/*.md'
8+
9+
# Allow reading repo contents and posting PR comments
10+
permissions:
11+
contents: read
12+
pull-requests: write
13+
14+
jobs:
15+
vale:
16+
# Only run on Mendix repo, not forks, and not on draft PRs
17+
if: github.repository_owner == 'mendix' && github.event.pull_request.draft == false
18+
runs-on: ubuntu-latest
19+
# Cancel old runs when new commits are pushed
20+
concurrency:
21+
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
22+
cancel-in-progress: true
23+
steps:
24+
- name: Checkout repo
25+
uses: actions/checkout@v4
26+
27+
- name: Get changed files
28+
id: changed-files
29+
run: |
30+
FILES=$(gh pr view ${{ github.event.pull_request.number }} --json files --jq '.files[].path' | grep '^content/en/docs/.*\.md$' | paste -sd, -)
31+
echo "files=$FILES" >> $GITHUB_OUTPUT
32+
env:
33+
GH_TOKEN: ${{ github.token }}
34+
35+
- name: Run Vale
36+
if: steps.changed-files.outputs.files != ''
37+
uses: vale-cli/vale-action@v2
38+
with:
39+
files: ${{ steps.changed-files.outputs.files }}
40+
separator: ','
41+
version: 3.14.2
42+
fail_on_error: false
43+
reporter: github-pr-review
44+
vale_flags: '--minAlertLevel=error' # Only flag errors, not warnings or suggestions

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ hugo.exe
99
/.claude/audit.log
1010
/.claude/settings.local.json
1111
/.mcp.json
12+
/.vale/styles/Microsoft/
1213

1314
# For Mac users
1415
.DS_Store

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
language: node_js
22
node_js:
3-
- 20.9 # latest LTS version ('node' will give latest version, 'lts/*' will give LTS version )
3+
- 24.15 # latest LTS version ('node' will give latest version, 'lts/*' will give LTS version )
44
arch: amd64 # optional, this is default, routes to a full VM
55
# arch: arm64 # this is the recommended LXD container - faster spin up but some limitations Not used as it seems very unstable.
66
os: linux # optional, this is default

.vale.ini

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
# Vale configuration for Mendix documentation
2+
# See: https://vale.sh/docs/topics/config/
3+
4+
StylesPath = .vale/styles
5+
MinAlertLevel = suggestion
6+
7+
# Packages to sync from vale.sh
8+
# Microsoft = Microsoft Writing Style Guide
9+
Packages = Microsoft
10+
11+
# Ignore patterns
12+
[*.{md,mdx}]
13+
# Ignore code blocks
14+
BlockIgnores = (?s) *```(?:[\w\{\}]+)?$(.+?)^ *```
15+
# Ignore front matter (YAML blocks at start of file), anchor IDs in headings, and Hugo shortcodes
16+
# Rules can use explicit scope lists (paragraph, heading, list, table, blockquote) to exclude this content
17+
TokenIgnores = (\A---\s*\n(.|\n)+?\n---\s*\n), (\{#[^\}]+\}), (\{\{[^\}]+\}\})
18+
19+
# Markdown files use both Microsoft and custom Mendix styles
20+
BasedOnStyles = Microsoft, Mendix
21+
22+
# ============================================================================
23+
# Microsoft Style Guide Rule Overrides
24+
# ============================================================================
25+
# The following rules are disabled or adjusted to align with Mendix style guide
26+
# requirements documented in content/en/docs/community-tools/contribute-to-mendix-docs/style-guide/
27+
28+
# Acronyms
29+
# Microsoft requires title case for acronym definitions; Mendix allows sentence case too
30+
# Replacement: Mendix.Acronyms accepts sentence-case definitions
31+
Microsoft.Acronyms = NO
32+
33+
# Contractions
34+
# Microsoft requires contractions; Mendix prohibits them
35+
# Mendix style guide: "Do not use contractions. Write 'it is' and not 'it's.'"
36+
Microsoft.Contractions = NO
37+
38+
# Dashes
39+
# Microsoft removes all spaces around em/en dashes; Mendix has context-specific rules
40+
# Mendix style guide: Em dashes (—) have no spaces; en dashes (–) have spaces except in number ranges
41+
# Replacement: Mendix.Dashes enforces en dash spacing in number ranges and between words
42+
# Mendix.ListIntroductions enforces en dashes (not em dashes) for list item introductions
43+
Microsoft.Dashes = NO
44+
45+
# Foreign
46+
# Microsoft's i.e./e.g. replacements remove spacing incorrectly when applied as quick fixes
47+
# Replacement: Mendix.Latin provides correct spacing and punctuation in replacements
48+
Microsoft.Foreign = NO
49+
50+
# General URL
51+
# Microsoft prefers "address" over "URL"; Mendix does not
52+
Microsoft.GeneralURL = NO
53+
54+
# Heading Acronyms
55+
# Microsoft prohibits acronyms in headings; Mendix does not
56+
Microsoft.HeadingAcronyms = NO
57+
58+
# Heading Capitalization
59+
# Microsoft suggests sentence-style; Mendix requires title case
60+
# Mendix style guide: "Use title case for titles and headings"
61+
# Replacement: Mendix.HeadingTitleCase enforces title case capitalization
62+
Microsoft.Headings = NO
63+
64+
# Heading Punctuation
65+
# Microsoft prohibits all end punctuation; Mendix allows question marks
66+
# Replacement: Mendix.HeadingPunctuation prohibits periods, exclamation marks, and colons but allows question marks
67+
Microsoft.HeadingPunctuation = NO
68+
69+
# Passive
70+
# Too many that don't need changes
71+
Microsoft.Passive = NO
72+
73+
# Plurals
74+
# Reduce severity to warning because some UI labels (e.g., "**Commit object(s)**" generate false positives)
75+
Microsoft.Plurals = warning
76+
77+
# Quotes
78+
# Reduce severity to warning because punctuation is meant to be part of the quoted material in some technical writing use cases
79+
Microsoft.Quotes = warning
80+
81+
# Spacing
82+
# Technical content like **StationConnector.Administrator** triggers false positives
83+
Microsoft.Spacing = NO
84+
85+
# Terms
86+
# Too far off from Mendix terminology guidance
87+
Microsoft.Terms = NO
88+
89+
# Vocab
90+
# Too far off from Mendix terminology guidance
91+
Microsoft.Vocab = NO
92+
93+
# ============================================================================
94+
# Path-Specific Overrides
95+
# ============================================================================
96+
97+
# First-Person Plural
98+
# Release notes allow first-person plural "we"
99+
[content/en/docs/releasenotes/*.md]
100+
Microsoft.We = NO
101+
102+
# Product Names
103+
# Disable deprecated product name checks in historical documentation
104+
# These versions used older terminology that may have been accurate at the time
105+
[content/en/docs/{refguide8,refguide9,refguide10,howto8,howto9,howto10}/**/*.md]
106+
Mendix.ProductNames = NO

.vale/README.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# Vale Configuration for Mendix Documentation
2+
3+
<!-- vale off -->
4+
5+
[Vale](https://vale.sh/docs/) lints the documentation with both Microsoft Writing Style Guide rules and custom Mendix rules to catch style violations, grammar issues, and terminology inconsistencies. It matches text against patterns and rules defined in the .vale/styles YAML files, providing deterministic feedback based on these configurable rules.
6+
7+
It applies in the following contexts:
8+
9+
* **GitHub PRs**: Runs automatically on PRs marked "Ready for review" and posts inline comments on changed lines. Only shows errors (warnings and suggestions are hidden).
10+
* **Local**: Install Vale for immediate, offline feedback in VS Code while editing. Shows all levels: suggestions, warnings, and errors.
11+
12+
Need to install Vale? See [SETUP.md](/.vale/SETUP.md) for installation steps.
13+
14+
## File Structure
15+
16+
```
17+
.vale.ini # Main configuration
18+
.vale/
19+
styles/
20+
Microsoft/ # Synced from vale.sh (gitignored)
21+
Mendix/ # Custom rules (committed to Git)
22+
*.yml # Mendix-specific style rules
23+
RULES.md # Complete list of Mendix custom rules and overrides
24+
README.md # Rule documentation
25+
```
26+
27+
## What the Rules Check
28+
29+
Vale is configured to enforce both general writing best practices and Mendix-specific standards:
30+
31+
* **Microsoft Style Guide rules**: Grammar, punctuation, readability, inclusive language, and general technical writing conventions
32+
* **Mendix custom rules**: Product terminology, capitalization standards, forbidden phrases, link formatting, and documentation-specific patterns
33+
34+
Rules are categorized by severity:
35+
* **Suggestions**: Recommendations that improve clarity but aren't mandatory
36+
* **Warnings**: Style violations that should be fixed before merging
37+
* **Errors**: Critical issues that must be resolved
38+
39+
Each rule uses an `action` type to define what it checks:
40+
41+
* `suggest`: Offers alternative phrasing or improvements
42+
* `replace`: Identifies text to replace with specific alternatives
43+
* `remove`: Flags text to delete (for example, redundant words)
44+
* `existence`: Detects the presence of forbidden patterns or phrases
45+
* `substitution`: Finds patterns and suggests substitutions
46+
* `occurrence`: Checks for repeated or missing patterns
47+
* `conditional`: Applies rules based on context
48+
49+
For a complete list of custom Mendix rules and overrides, see [Custom Mendix Rules](/.vale/styles/Mendix/RULES.md).
50+
51+
## Read More
52+
53+
* [Vale Documentation](https://vale.sh/docs/)
54+
* [Microsoft Style Guide Package](https://github.com/errata-ai/Microsoft)
55+
* [Vale Rule Syntax](https://vale.sh/docs/topics/styles/)
56+
* [Custom Mendix Rules](/.vale/styles/Mendix/RULES.md)

.vale/SETUP.md

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# Vale Setup Guide
2+
3+
<!-- vale off -->
4+
5+
Vale is configured but needs to be installed locally before you can use it in VS Code. This guide walks you through setup.
6+
7+
## Why Install Locally?
8+
9+
* **Immediate feedback** - See violations as you write, not after pushing
10+
* **Faster iteration** - Fix issues before creating a PR
11+
* **More feedback** - See suggestions and warnings locally on the entire file; the GitHub Action is configured to show only errors on changed lines.
12+
13+
**Note:** Even without local installation, your PRs will be checked automatically by a GitHub Action: [.github/workflows/vale.yml](../.github/workflows/vale.yml).
14+
15+
## Installation
16+
17+
### For macOS
18+
19+
1. Download [Homebrew](https://brew.sh/) if you don't already have it.
20+
2. In your terminal, run the following command:
21+
22+
```bash
23+
brew install vale
24+
```
25+
26+
### For Windows
27+
28+
1. On https://github.com/vale-cli/vale/releases, download the Windows version from Assets.
29+
2. Right-click the zip file and select **Extract All**.
30+
3. Open PowerShell and run:
31+
32+
```powershell
33+
# Create a bin directory for your tools
34+
mkdir $HOME\.local\bin -Force
35+
36+
# Move vale.exe there (adjust the path if you extracted it elsewhere)
37+
Move-Item $HOME\Downloads\vale_*_Windows_64-bit\vale.exe $HOME\.local\bin
38+
39+
# Add to PATH
40+
$currentPath = [Environment]::GetEnvironmentVariable("Path", "User")
41+
[Environment]::SetEnvironmentVariable("Path", "$currentPath;$HOME\.local\bin", "User")
42+
```
43+
44+
## Post-Installation
45+
46+
After installing Vale:
47+
48+
1. **Verify the installation worked:**
49+
50+
```bash
51+
vale --version
52+
```
53+
54+
2. **Sync the Microsoft Style Guide rules:**
55+
56+
Navigate to the root of your docs repository (for example, `cd ~/docs`), then run:
57+
58+
```bash
59+
vale sync
60+
```
61+
62+
This downloads Microsoft's style pack to `.vale/styles/Microsoft/`.
63+
64+
If you get a `Runtime error: No sources provided` error, verify that there is a `.vale.ini` file in the root of the docs repository (and that you are also in the root of the docs repository).
65+
66+
3. **Install VS Code extension:**
67+
- Install the [Vale VS Code extension](https://marketplace.visualstudio.com/items?itemName=ChrisChinchilla.vale-vscode).
68+
- Restart VS Code.
69+
- Open any `.md` file in `content/en/docs/`.
70+
- Violations show as squiggly underlines in the file and appear in the **Problems** tab in the bottom pane.
71+
- Many Vale rules support automatic fixes—hover over an underlined issue and click **Quick Fix** or click the lightbulb icon next to flagged text in the **Problems** tab.
72+
- Save changes to rerun the linter.
73+
- If desired, you can adjust the extension's settings in VS Code to show a different minimum alert level. For example, if you set `minAlertLevel` to `warning`, it will report only warnings and errors, not suggestions.
74+
75+
4. **If you have open PRs without the Vale configuration files:** Merge `development` into your branch.

.vale/styles/Mendix/Acronyms.yml

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
extends: conditional
2+
message: "Define '%s' on first use."
3+
link: https://docs.mendix.com/community-tools/contribute-to-mendix-docs/style-guide/grammar-formatting/#acronyms-and-initialisms
4+
level: suggestion
5+
ignorecase: false
6+
scope:
7+
- paragraph
8+
- heading
9+
- list
10+
- table
11+
- blockquote
12+
# Ensures that the existence of 'first' implies the existence of 'second'.
13+
# Known issue: Doesn't recognize hyperlinks for acronym definitions
14+
# Modified from Microsoft.Acronyms to accept sentence-case definitions (e.g., "personal access token (PAT)" not just "Personal Access Token (PAT)")
15+
first: '\b([A-Z]{3,5})\b'
16+
second: '(?:\b[A-Za-z][a-z]+ )+\(([A-Z]{3,5})\)'
17+
# ... with the exception of these:
18+
exceptions:
19+
- API
20+
- ASP
21+
- CLI
22+
- CPU
23+
- CSS
24+
- CSV
25+
- DEBUG
26+
- DOM
27+
- DPI
28+
- FAQ
29+
- GCC
30+
- GDB
31+
- GET
32+
- GPU
33+
- GTK
34+
- GUI
35+
- HTML
36+
- HTTP
37+
- HTTPS
38+
- IDE
39+
- JAR
40+
- JSON
41+
- JSX
42+
- LESS
43+
- LLDB
44+
- MDA
45+
- MPR
46+
- NET
47+
- NOTE
48+
- NVDA
49+
- OSS
50+
- PATH
51+
- PDF
52+
- PHP
53+
- POST
54+
- RAM
55+
- REPL
56+
- REST
57+
- RSA
58+
- SAP
59+
- SCM
60+
- SCSS
61+
- SDK
62+
- SQL
63+
- SSH
64+
- SSL
65+
- SVG
66+
- TBD
67+
- TCP
68+
- TODO
69+
- URI
70+
- URL
71+
- USB
72+
- UTF
73+
- XML
74+
- XSS
75+
- YAML
76+
- ZIP

0 commit comments

Comments
 (0)