From 67b3dc90db99a17cef0fcf2bedefa0f2065d4a4f Mon Sep 17 00:00:00 2001 From: nicoa Date: Mon, 15 Dec 2025 18:08:52 -0700 Subject: [PATCH 01/33] add vale-linter skeleton --- docs-linter/.markdownlint.json | 8 ++++++++ docs-linter/.vale.ini | 15 +++++++++++++++ docs-linter/styles/Vocab/terms/accept.txt | 13 +++++++++++++ .../Vocab/terms/accept.txt:Zone.Identifier | Bin 0 -> 25 bytes .../accept.txt:Zone.Identifier:Zone.Identifier | Bin 0 -> 25 bytes docs-linter/styles/Vocab/terms/reject.txt | 1 + .../Vocab/terms/reject.txt:Zone.Identifier | Bin 0 -> 25 bytes .../reject.txt:Zone.Identifier:Zone.Identifier | Bin 0 -> 25 bytes 8 files changed, 37 insertions(+) create mode 100644 docs-linter/.markdownlint.json create mode 100644 docs-linter/.vale.ini create mode 100644 docs-linter/styles/Vocab/terms/accept.txt create mode 100644 docs-linter/styles/Vocab/terms/accept.txt:Zone.Identifier create mode 100644 docs-linter/styles/Vocab/terms/accept.txt:Zone.Identifier:Zone.Identifier create mode 100644 docs-linter/styles/Vocab/terms/reject.txt create mode 100644 docs-linter/styles/Vocab/terms/reject.txt:Zone.Identifier create mode 100644 docs-linter/styles/Vocab/terms/reject.txt:Zone.Identifier:Zone.Identifier diff --git a/docs-linter/.markdownlint.json b/docs-linter/.markdownlint.json new file mode 100644 index 0000000..409c0ea --- /dev/null +++ b/docs-linter/.markdownlint.json @@ -0,0 +1,8 @@ +{ + "default": true, + "MD013": false, + "MD024": false, + "MD033": false, + "MD034": false, + "MD041": false +} \ No newline at end of file diff --git a/docs-linter/.vale.ini b/docs-linter/.vale.ini new file mode 100644 index 0000000..3bb57c1 --- /dev/null +++ b/docs-linter/.vale.ini @@ -0,0 +1,15 @@ +# Core Settings +StylesPath = styles +MinAlertLevel = suggestion + +# The "Vocab" setting must match the folder name inside 'styles/Vocab/' +Vocab = terms + +# External Packages +# We include Microsoft because it is the industry standard baseline. +Packages = Microsoft + +# Rules for Markdown files +[*.{md,mdx}] +# Apply the rules from these three sources +BasedOnStyles = Vale, Microsoft, custom-rules \ No newline at end of file diff --git a/docs-linter/styles/Vocab/terms/accept.txt b/docs-linter/styles/Vocab/terms/accept.txt new file mode 100644 index 0000000..a9af80e --- /dev/null +++ b/docs-linter/styles/Vocab/terms/accept.txt @@ -0,0 +1,13 @@ +Docusaurus +Github +Bitbucket +API +CLI +Kubernetes +repo +linter +NetFoundry +Frontdoor +ZLAN +OpenZiti +Ziti \ No newline at end of file diff --git a/docs-linter/styles/Vocab/terms/accept.txt:Zone.Identifier b/docs-linter/styles/Vocab/terms/accept.txt:Zone.Identifier new file mode 100644 index 0000000000000000000000000000000000000000..d6c1ec682968c796b9f5e9e080cc6f674b57c766 GIT binary patch literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2x Date: Mon, 15 Dec 2025 18:11:47 -0700 Subject: [PATCH 02/33] remove damn zone identifiers --- docs-linter/.vale.ini | 2 +- docs-linter/styles/Vocab/{terms => }/accept.txt | 0 docs-linter/styles/Vocab/reject.txt | 0 .../styles/Vocab/terms/accept.txt:Zone.Identifier | Bin 25 -> 0 bytes .../accept.txt:Zone.Identifier:Zone.Identifier | Bin 25 -> 0 bytes docs-linter/styles/Vocab/terms/reject.txt | 1 - .../styles/Vocab/terms/reject.txt:Zone.Identifier | Bin 25 -> 0 bytes .../reject.txt:Zone.Identifier:Zone.Identifier | Bin 25 -> 0 bytes 8 files changed, 1 insertion(+), 2 deletions(-) rename docs-linter/styles/Vocab/{terms => }/accept.txt (100%) create mode 100644 docs-linter/styles/Vocab/reject.txt delete mode 100644 docs-linter/styles/Vocab/terms/accept.txt:Zone.Identifier delete mode 100644 docs-linter/styles/Vocab/terms/accept.txt:Zone.Identifier:Zone.Identifier delete mode 100644 docs-linter/styles/Vocab/terms/reject.txt delete mode 100644 docs-linter/styles/Vocab/terms/reject.txt:Zone.Identifier delete mode 100644 docs-linter/styles/Vocab/terms/reject.txt:Zone.Identifier:Zone.Identifier diff --git a/docs-linter/.vale.ini b/docs-linter/.vale.ini index 3bb57c1..5b41436 100644 --- a/docs-linter/.vale.ini +++ b/docs-linter/.vale.ini @@ -10,6 +10,6 @@ Vocab = terms Packages = Microsoft # Rules for Markdown files -[*.{md,mdx}] +[*.md] # Apply the rules from these three sources BasedOnStyles = Vale, Microsoft, custom-rules \ No newline at end of file diff --git a/docs-linter/styles/Vocab/terms/accept.txt b/docs-linter/styles/Vocab/accept.txt similarity index 100% rename from docs-linter/styles/Vocab/terms/accept.txt rename to docs-linter/styles/Vocab/accept.txt diff --git a/docs-linter/styles/Vocab/reject.txt b/docs-linter/styles/Vocab/reject.txt new file mode 100644 index 0000000..e69de29 diff --git a/docs-linter/styles/Vocab/terms/accept.txt:Zone.Identifier b/docs-linter/styles/Vocab/terms/accept.txt:Zone.Identifier deleted file mode 100644 index d6c1ec682968c796b9f5e9e080cc6f674b57c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 dcma!!%Fjy;DN4*MPD?F{<>dl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2xdl#JyUFr831@K2x Date: Mon, 15 Dec 2025 18:14:12 -0700 Subject: [PATCH 03/33] add new lines --- docs-linter/.markdownlint.json | 2 +- docs-linter/.vale.ini | 2 +- docs-linter/styles/Vocab/accept.txt | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs-linter/.markdownlint.json b/docs-linter/.markdownlint.json index 409c0ea..9711d76 100644 --- a/docs-linter/.markdownlint.json +++ b/docs-linter/.markdownlint.json @@ -5,4 +5,4 @@ "MD033": false, "MD034": false, "MD041": false -} \ No newline at end of file +} diff --git a/docs-linter/.vale.ini b/docs-linter/.vale.ini index 5b41436..9777bcc 100644 --- a/docs-linter/.vale.ini +++ b/docs-linter/.vale.ini @@ -12,4 +12,4 @@ Packages = Microsoft # Rules for Markdown files [*.md] # Apply the rules from these three sources -BasedOnStyles = Vale, Microsoft, custom-rules \ No newline at end of file +BasedOnStyles = Vale, Microsoft, custom-rules diff --git a/docs-linter/styles/Vocab/accept.txt b/docs-linter/styles/Vocab/accept.txt index a9af80e..0532cee 100644 --- a/docs-linter/styles/Vocab/accept.txt +++ b/docs-linter/styles/Vocab/accept.txt @@ -1,5 +1,5 @@ Docusaurus -Github +GitHub Bitbucket API CLI @@ -10,4 +10,4 @@ NetFoundry Frontdoor ZLAN OpenZiti -Ziti \ No newline at end of file +Ziti From 85b95b4a2d06552548f1f4d27e776607e5edcb2a Mon Sep 17 00:00:00 2001 From: nicoa Date: Mon, 22 Dec 2025 17:00:36 -0700 Subject: [PATCH 04/33] EOD --- docs-linter/.vale.ini | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs-linter/.vale.ini b/docs-linter/.vale.ini index 9777bcc..0a5923c 100644 --- a/docs-linter/.vale.ini +++ b/docs-linter/.vale.ini @@ -1,12 +1,11 @@ -# Core Settings +# Core settings StylesPath = styles MinAlertLevel = suggestion # The "Vocab" setting must match the folder name inside 'styles/Vocab/' Vocab = terms -# External Packages -# We include Microsoft because it is the industry standard baseline. +# External packages Packages = Microsoft # Rules for Markdown files From feaf414a63daffe0f0c58a385d3c99ac6affb300 Mon Sep 17 00:00:00 2001 From: nicoa Date: Mon, 22 Dec 2025 17:04:38 -0700 Subject: [PATCH 05/33] add mdx extension and microsoft package --- docs-linter/.vale.ini | 2 +- docs-linter/styles/Microsoft/AMPM.yml | 9 + .../styles/Microsoft/Accessibility.yml | 30 ++ docs-linter/styles/Microsoft/Acronyms.yml | 64 +++++ docs-linter/styles/Microsoft/Adverbs.yml | 272 ++++++++++++++++++ docs-linter/styles/Microsoft/Auto.yml | 11 + docs-linter/styles/Microsoft/Avoid.yml | 14 + docs-linter/styles/Microsoft/Contractions.yml | 50 ++++ docs-linter/styles/Microsoft/Dashes.yml | 13 + docs-linter/styles/Microsoft/DateFormat.yml | 8 + docs-linter/styles/Microsoft/DateNumbers.yml | 40 +++ docs-linter/styles/Microsoft/DateOrder.yml | 8 + docs-linter/styles/Microsoft/Ellipses.yml | 9 + docs-linter/styles/Microsoft/FirstPerson.yml | 16 ++ docs-linter/styles/Microsoft/Foreign.yml | 13 + docs-linter/styles/Microsoft/Gender.yml | 8 + docs-linter/styles/Microsoft/GenderBias.yml | 42 +++ docs-linter/styles/Microsoft/GeneralURL.yml | 11 + .../styles/Microsoft/HeadingAcronyms.yml | 7 + .../styles/Microsoft/HeadingColons.yml | 8 + .../styles/Microsoft/HeadingPunctuation.yml | 13 + docs-linter/styles/Microsoft/Headings.yml | 28 ++ docs-linter/styles/Microsoft/Hyphens.yml | 14 + docs-linter/styles/Microsoft/Negative.yml | 13 + docs-linter/styles/Microsoft/Ordinal.yml | 13 + docs-linter/styles/Microsoft/OxfordComma.yml | 8 + docs-linter/styles/Microsoft/Passive.yml | 183 ++++++++++++ docs-linter/styles/Microsoft/Percentages.yml | 7 + docs-linter/styles/Microsoft/Plurals.yml | 7 + docs-linter/styles/Microsoft/Quotes.yml | 7 + docs-linter/styles/Microsoft/RangeTime.yml | 13 + docs-linter/styles/Microsoft/Semicolon.yml | 8 + .../styles/Microsoft/SentenceLength.yml | 7 + docs-linter/styles/Microsoft/Spacing.yml | 8 + docs-linter/styles/Microsoft/Suspended.yml | 7 + docs-linter/styles/Microsoft/Terms.yml | 42 +++ docs-linter/styles/Microsoft/URLFormat.yml | 9 + docs-linter/styles/Microsoft/Units.yml | 16 ++ docs-linter/styles/Microsoft/Vocab.yml | 25 ++ docs-linter/styles/Microsoft/We.yml | 11 + docs-linter/styles/Microsoft/Wordiness.yml | 127 ++++++++ docs-linter/styles/Microsoft/meta.json | 4 + 42 files changed, 1204 insertions(+), 1 deletion(-) create mode 100644 docs-linter/styles/Microsoft/AMPM.yml create mode 100644 docs-linter/styles/Microsoft/Accessibility.yml create mode 100644 docs-linter/styles/Microsoft/Acronyms.yml create mode 100644 docs-linter/styles/Microsoft/Adverbs.yml create mode 100644 docs-linter/styles/Microsoft/Auto.yml create mode 100644 docs-linter/styles/Microsoft/Avoid.yml create mode 100644 docs-linter/styles/Microsoft/Contractions.yml create mode 100644 docs-linter/styles/Microsoft/Dashes.yml create mode 100644 docs-linter/styles/Microsoft/DateFormat.yml create mode 100644 docs-linter/styles/Microsoft/DateNumbers.yml create mode 100644 docs-linter/styles/Microsoft/DateOrder.yml create mode 100644 docs-linter/styles/Microsoft/Ellipses.yml create mode 100644 docs-linter/styles/Microsoft/FirstPerson.yml create mode 100644 docs-linter/styles/Microsoft/Foreign.yml create mode 100644 docs-linter/styles/Microsoft/Gender.yml create mode 100644 docs-linter/styles/Microsoft/GenderBias.yml create mode 100644 docs-linter/styles/Microsoft/GeneralURL.yml create mode 100644 docs-linter/styles/Microsoft/HeadingAcronyms.yml create mode 100644 docs-linter/styles/Microsoft/HeadingColons.yml create mode 100644 docs-linter/styles/Microsoft/HeadingPunctuation.yml create mode 100644 docs-linter/styles/Microsoft/Headings.yml create mode 100644 docs-linter/styles/Microsoft/Hyphens.yml create mode 100644 docs-linter/styles/Microsoft/Negative.yml create mode 100644 docs-linter/styles/Microsoft/Ordinal.yml create mode 100644 docs-linter/styles/Microsoft/OxfordComma.yml create mode 100644 docs-linter/styles/Microsoft/Passive.yml create mode 100644 docs-linter/styles/Microsoft/Percentages.yml create mode 100644 docs-linter/styles/Microsoft/Plurals.yml create mode 100644 docs-linter/styles/Microsoft/Quotes.yml create mode 100644 docs-linter/styles/Microsoft/RangeTime.yml create mode 100644 docs-linter/styles/Microsoft/Semicolon.yml create mode 100644 docs-linter/styles/Microsoft/SentenceLength.yml create mode 100644 docs-linter/styles/Microsoft/Spacing.yml create mode 100644 docs-linter/styles/Microsoft/Suspended.yml create mode 100644 docs-linter/styles/Microsoft/Terms.yml create mode 100644 docs-linter/styles/Microsoft/URLFormat.yml create mode 100644 docs-linter/styles/Microsoft/Units.yml create mode 100644 docs-linter/styles/Microsoft/Vocab.yml create mode 100644 docs-linter/styles/Microsoft/We.yml create mode 100644 docs-linter/styles/Microsoft/Wordiness.yml create mode 100644 docs-linter/styles/Microsoft/meta.json diff --git a/docs-linter/.vale.ini b/docs-linter/.vale.ini index 0a5923c..03b6c0e 100644 --- a/docs-linter/.vale.ini +++ b/docs-linter/.vale.ini @@ -9,6 +9,6 @@ Vocab = terms Packages = Microsoft # Rules for Markdown files -[*.md] +[*.{md,mdx}] # Apply the rules from these three sources BasedOnStyles = Vale, Microsoft, custom-rules diff --git a/docs-linter/styles/Microsoft/AMPM.yml b/docs-linter/styles/Microsoft/AMPM.yml new file mode 100644 index 0000000..8b9fed1 --- /dev/null +++ b/docs-linter/styles/Microsoft/AMPM.yml @@ -0,0 +1,9 @@ +extends: existence +message: Use 'AM' or 'PM' (preceded by a space). +link: https://docs.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/term-collections/date-time-terms +level: error +nonword: true +tokens: + - '\d{1,2}[AP]M' + - '\d{1,2} ?[ap]m' + - '\d{1,2} ?[aApP]\.[mM]\.' diff --git a/docs-linter/styles/Microsoft/Accessibility.yml b/docs-linter/styles/Microsoft/Accessibility.yml new file mode 100644 index 0000000..f5f4829 --- /dev/null +++ b/docs-linter/styles/Microsoft/Accessibility.yml @@ -0,0 +1,30 @@ +extends: existence +message: "Don't use language (such as '%s') that defines people by their disability." +link: https://docs.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/term-collections/accessibility-terms +level: suggestion +ignorecase: true +tokens: + - a victim of + - able-bodied + - an epileptic + - birth defect + - crippled + - differently abled + - disabled + - dumb + - handicapped + - handicaps + - healthy person + - hearing-impaired + - lame + - maimed + - mentally handicapped + - missing a limb + - mute + - non-verbal + - normal person + - sight-impaired + - slow learner + - stricken with + - suffers from + - vision-impaired diff --git a/docs-linter/styles/Microsoft/Acronyms.yml b/docs-linter/styles/Microsoft/Acronyms.yml new file mode 100644 index 0000000..308ff7c --- /dev/null +++ b/docs-linter/styles/Microsoft/Acronyms.yml @@ -0,0 +1,64 @@ +extends: conditional +message: "'%s' has no definition." +link: https://docs.microsoft.com/en-us/style-guide/acronyms +level: suggestion +ignorecase: false +# Ensures that the existence of 'first' implies the existence of 'second'. +first: '\b([A-Z]{3,5})\b' +second: '(?:\b[A-Z][a-z]+ )+\(([A-Z]{3,5})\)' +# ... with the exception of these: +exceptions: + - API + - ASP + - CLI + - CPU + - CSS + - CSV + - DEBUG + - DOM + - DPI + - FAQ + - GCC + - GDB + - GET + - GPU + - GTK + - GUI + - HTML + - HTTP + - HTTPS + - IDE + - JAR + - JSON + - JSX + - LESS + - LLDB + - NET + - NOTE + - NVDA + - OSS + - PATH + - PDF + - PHP + - POST + - RAM + - REPL + - RSA + - SCM + - SCSS + - SDK + - SQL + - SSH + - SSL + - SVG + - TBD + - TCP + - TODO + - URI + - URL + - USB + - UTF + - XML + - XSS + - YAML + - ZIP diff --git a/docs-linter/styles/Microsoft/Adverbs.yml b/docs-linter/styles/Microsoft/Adverbs.yml new file mode 100644 index 0000000..5619f99 --- /dev/null +++ b/docs-linter/styles/Microsoft/Adverbs.yml @@ -0,0 +1,272 @@ +extends: existence +message: "Remove '%s' if it's not important to the meaning of the statement." +link: https://docs.microsoft.com/en-us/style-guide/word-choice/use-simple-words-concise-sentences +ignorecase: true +level: warning +action: + name: remove +tokens: + - abnormally + - absentmindedly + - accidentally + - adventurously + - anxiously + - arrogantly + - awkwardly + - bashfully + - beautifully + - bitterly + - bleakly + - blindly + - blissfully + - boastfully + - boldly + - bravely + - briefly + - brightly + - briskly + - broadly + - busily + - calmly + - carefully + - carelessly + - cautiously + - cheerfully + - cleverly + - closely + - coaxingly + - colorfully + - continually + - coolly + - courageously + - crossly + - cruelly + - curiously + - daintily + - dearly + - deceivingly + - deeply + - defiantly + - deliberately + - delightfully + - diligently + - dimly + - doubtfully + - dreamily + - easily + - effectively + - elegantly + - energetically + - enormously + - enthusiastically + - excitedly + - extremely + - fairly + - faithfully + - famously + - ferociously + - fervently + - fiercely + - fondly + - foolishly + - fortunately + - frankly + - frantically + - freely + - frenetically + - frightfully + - furiously + - generally + - generously + - gently + - gladly + - gleefully + - gracefully + - gratefully + - greatly + - greedily + - happily + - hastily + - healthily + - heavily + - helplessly + - honestly + - hopelessly + - hungrily + - innocently + - inquisitively + - intensely + - intently + - interestingly + - inwardly + - irritably + - jaggedly + - jealously + - jovially + - joyfully + - joyously + - jubilantly + - judgmentally + - justly + - keenly + - kiddingly + - kindheartedly + - knavishly + - knowingly + - knowledgeably + - lazily + - lightly + - limply + - lively + - loftily + - longingly + - loosely + - loudly + - lovingly + - loyally + - madly + - majestically + - meaningfully + - mechanically + - merrily + - miserably + - mockingly + - mortally + - mysteriously + - naturally + - nearly + - neatly + - nervously + - nicely + - noisily + - obediently + - obnoxiously + - oddly + - offensively + - optimistically + - overconfidently + - painfully + - partially + - patiently + - perfectly + - playfully + - politely + - poorly + - positively + - potentially + - powerfully + - promptly + - properly + - punctually + - quaintly + - queasily + - queerly + - questionably + - quickly + - quietly + - quirkily + - quite + - quizzically + - randomly + - rapidly + - rarely + - readily + - really + - reassuringly + - recklessly + - regularly + - reluctantly + - repeatedly + - reproachfully + - restfully + - righteously + - rightfully + - rigidly + - roughly + - rudely + - safely + - scarcely + - scarily + - searchingly + - sedately + - seemingly + - selfishly + - separately + - seriously + - shakily + - sharply + - sheepishly + - shrilly + - shyly + - silently + - sleepily + - slowly + - smoothly + - softly + - solemnly + - solidly + - speedily + - stealthily + - sternly + - strictly + - suddenly + - supposedly + - surprisingly + - suspiciously + - sweetly + - swiftly + - sympathetically + - tenderly + - tensely + - terribly + - thankfully + - thoroughly + - thoughtfully + - tightly + - tremendously + - triumphantly + - truthfully + - ultimately + - unabashedly + - unaccountably + - unbearably + - unethically + - unexpectedly + - unfortunately + - unimpressively + - unnaturally + - unnecessarily + - urgently + - usefully + - uselessly + - utterly + - vacantly + - vaguely + - vainly + - valiantly + - vastly + - verbally + - very + - viciously + - victoriously + - violently + - vivaciously + - voluntarily + - warmly + - weakly + - wearily + - wetly + - wholly + - wildly + - willfully + - wisely + - woefully + - wonderfully + - worriedly + - yawningly + - yearningly + - yieldingly + - youthfully + - zealously + - zestfully + - zestily diff --git a/docs-linter/styles/Microsoft/Auto.yml b/docs-linter/styles/Microsoft/Auto.yml new file mode 100644 index 0000000..4da4393 --- /dev/null +++ b/docs-linter/styles/Microsoft/Auto.yml @@ -0,0 +1,11 @@ +extends: existence +message: "In general, don't hyphenate '%s'." +link: https://docs.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/a/auto +ignorecase: true +level: error +action: + name: convert + params: + - simple +tokens: + - 'auto-\w+' diff --git a/docs-linter/styles/Microsoft/Avoid.yml b/docs-linter/styles/Microsoft/Avoid.yml new file mode 100644 index 0000000..dab7822 --- /dev/null +++ b/docs-linter/styles/Microsoft/Avoid.yml @@ -0,0 +1,14 @@ +extends: existence +message: "Don't use '%s'. See the A-Z word list for details." +# See the A-Z word list +link: https://docs.microsoft.com/en-us/style-guide +ignorecase: true +level: error +tokens: + - abortion + - and so on + - app(?:lication)?s? (?:developer|program) + - app(?:lication)? file + - backbone + - backend + - contiguous selection diff --git a/docs-linter/styles/Microsoft/Contractions.yml b/docs-linter/styles/Microsoft/Contractions.yml new file mode 100644 index 0000000..8c81dcb --- /dev/null +++ b/docs-linter/styles/Microsoft/Contractions.yml @@ -0,0 +1,50 @@ +extends: substitution +message: "Use '%s' instead of '%s'." +link: https://docs.microsoft.com/en-us/style-guide/word-choice/use-contractions +level: error +ignorecase: true +action: + name: replace +swap: + are not: aren't + cannot: can't + could not: couldn't + did not: didn't + do not: don't + does not: doesn't + has not: hasn't + have not: haven't + how is: how's + is not: isn't + + 'it is(?!\.)': it's + 'it''s(?=\.)': it is + + should not: shouldn't + + "that is(?![.,])": that's + 'that''s(?=\.)': that is + + 'they are(?!\.)': they're + 'they''re(?=\.)': they are + + was not: wasn't + + 'we are(?!\.)': we're + 'we''re(?=\.)': we are + + 'we have(?!\.)': we've + 'we''ve(?=\.)': we have + + were not: weren't + + 'what is(?!\.)': what's + 'what''s(?=\.)': what is + + 'when is(?!\.)': when's + 'when''s(?=\.)': when is + + 'where is(?!\.)': where's + 'where''s(?=\.)': where is + + will not: won't diff --git a/docs-linter/styles/Microsoft/Dashes.yml b/docs-linter/styles/Microsoft/Dashes.yml new file mode 100644 index 0000000..72b05ba --- /dev/null +++ b/docs-linter/styles/Microsoft/Dashes.yml @@ -0,0 +1,13 @@ +extends: existence +message: "Remove the spaces around '%s'." +link: https://docs.microsoft.com/en-us/style-guide/punctuation/dashes-hyphens/emes +ignorecase: true +nonword: true +level: error +action: + name: edit + params: + - trim + - " " +tokens: + - '\s[—–]\s|\s[—–]|[—–]\s' diff --git a/docs-linter/styles/Microsoft/DateFormat.yml b/docs-linter/styles/Microsoft/DateFormat.yml new file mode 100644 index 0000000..1965313 --- /dev/null +++ b/docs-linter/styles/Microsoft/DateFormat.yml @@ -0,0 +1,8 @@ +extends: existence +message: Use 'July 31, 2016' format, not '%s'. +link: https://docs.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/term-collections/date-time-terms +ignorecase: true +level: error +nonword: true +tokens: + - '\d{1,2} (?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)|May|Jun(?:e)|Jul(?:y)|Aug(?:ust)|Sep(?:tember)?|Oct(?:ober)|Nov(?:ember)?|Dec(?:ember)?) \d{4}' diff --git a/docs-linter/styles/Microsoft/DateNumbers.yml b/docs-linter/styles/Microsoft/DateNumbers.yml new file mode 100644 index 0000000..14d4674 --- /dev/null +++ b/docs-linter/styles/Microsoft/DateNumbers.yml @@ -0,0 +1,40 @@ +extends: existence +message: "Don't use ordinal numbers for dates." +link: https://docs.microsoft.com/en-us/style-guide/numbers#numbers-in-dates +level: error +nonword: true +ignorecase: true +raw: + - \b(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)|May|Jun(?:e)|Jul(?:y)|Aug(?:ust)|Sep(?:tember)?|Oct(?:ober)|Nov(?:ember)?|Dec(?:ember)?)\b\s* +tokens: + - first + - second + - third + - fourth + - fifth + - sixth + - seventh + - eighth + - ninth + - tenth + - eleventh + - twelfth + - thirteenth + - fourteenth + - fifteenth + - sixteenth + - seventeenth + - eighteenth + - nineteenth + - twentieth + - twenty-first + - twenty-second + - twenty-third + - twenty-fourth + - twenty-fifth + - twenty-sixth + - twenty-seventh + - twenty-eighth + - twenty-ninth + - thirtieth + - thirty-first diff --git a/docs-linter/styles/Microsoft/DateOrder.yml b/docs-linter/styles/Microsoft/DateOrder.yml new file mode 100644 index 0000000..12d69ba --- /dev/null +++ b/docs-linter/styles/Microsoft/DateOrder.yml @@ -0,0 +1,8 @@ +extends: existence +message: "Always spell out the name of the month." +link: https://docs.microsoft.com/en-us/style-guide/numbers#numbers-in-dates +ignorecase: true +level: error +nonword: true +tokens: + - '\b\d{1,2}/\d{1,2}/(?:\d{4}|\d{2})\b' diff --git a/docs-linter/styles/Microsoft/Ellipses.yml b/docs-linter/styles/Microsoft/Ellipses.yml new file mode 100644 index 0000000..320457a --- /dev/null +++ b/docs-linter/styles/Microsoft/Ellipses.yml @@ -0,0 +1,9 @@ +extends: existence +message: "In general, don't use an ellipsis." +link: https://docs.microsoft.com/en-us/style-guide/punctuation/ellipses +nonword: true +level: warning +action: + name: remove +tokens: + - '\.\.\.' diff --git a/docs-linter/styles/Microsoft/FirstPerson.yml b/docs-linter/styles/Microsoft/FirstPerson.yml new file mode 100644 index 0000000..f58dea3 --- /dev/null +++ b/docs-linter/styles/Microsoft/FirstPerson.yml @@ -0,0 +1,16 @@ +extends: existence +message: "Use first person (such as '%s') sparingly." +link: https://docs.microsoft.com/en-us/style-guide/grammar/person +ignorecase: true +level: warning +nonword: true +tokens: + - (?:^|\s)I(?=\s) + - (?:^|\s)I(?=,\s) + - \bI'd\b + - \bI'll\b + - \bI'm\b + - \bI've\b + - \bme\b + - \bmy\b + - \bmine\b diff --git a/docs-linter/styles/Microsoft/Foreign.yml b/docs-linter/styles/Microsoft/Foreign.yml new file mode 100644 index 0000000..0d3d600 --- /dev/null +++ b/docs-linter/styles/Microsoft/Foreign.yml @@ -0,0 +1,13 @@ +extends: substitution +message: "Use '%s' instead of '%s'." +link: https://docs.microsoft.com/en-us/style-guide/word-choice/use-us-spelling-avoid-non-english-words +ignorecase: true +level: error +nonword: true +action: + name: replace +swap: + '\b(?:eg|e\.g\.)[\s,]': for example + '\b(?:ie|i\.e\.)[\s,]': that is + '\b(?:viz\.)[\s,]': namely + '\b(?:ergo)[\s,]': therefore diff --git a/docs-linter/styles/Microsoft/Gender.yml b/docs-linter/styles/Microsoft/Gender.yml new file mode 100644 index 0000000..47c0802 --- /dev/null +++ b/docs-linter/styles/Microsoft/Gender.yml @@ -0,0 +1,8 @@ +extends: existence +message: "Don't use '%s'." +link: https://github.com/MicrosoftDocs/microsoft-style-guide/blob/master/styleguide/grammar/nouns-pronouns.md#pronouns-and-gender +level: error +ignorecase: true +tokens: + - he/she + - s/he diff --git a/docs-linter/styles/Microsoft/GenderBias.yml b/docs-linter/styles/Microsoft/GenderBias.yml new file mode 100644 index 0000000..fc987b9 --- /dev/null +++ b/docs-linter/styles/Microsoft/GenderBias.yml @@ -0,0 +1,42 @@ +extends: substitution +message: "Consider using '%s' instead of '%s'." +ignorecase: true +level: error +action: + name: replace +swap: + (?:alumna|alumnus): graduate + (?:alumnae|alumni): graduates + air(?:m[ae]n|wom[ae]n): pilot(s) + anchor(?:m[ae]n|wom[ae]n): anchor(s) + authoress: author + camera(?:m[ae]n|wom[ae]n): camera operator(s) + door(?:m[ae]|wom[ae]n): concierge(s) + draft(?:m[ae]n|wom[ae]n): drafter(s) + fire(?:m[ae]n|wom[ae]n): firefighter(s) + fisher(?:m[ae]n|wom[ae]n): fisher(s) + fresh(?:m[ae]n|wom[ae]n): first-year student(s) + garbage(?:m[ae]n|wom[ae]n): waste collector(s) + lady lawyer: lawyer + ladylike: courteous + mail(?:m[ae]n|wom[ae]n): mail carriers + man and wife: husband and wife + man enough: strong enough + mankind: human kind + manmade: manufactured + manpower: personnel + middle(?:m[ae]n|wom[ae]n): intermediary + news(?:m[ae]n|wom[ae]n): journalist(s) + ombuds(?:man|woman): ombuds + oneupmanship: upstaging + poetess: poet + police(?:m[ae]n|wom[ae]n): police officer(s) + repair(?:m[ae]n|wom[ae]n): technician(s) + sales(?:m[ae]n|wom[ae]n): salesperson or sales people + service(?:m[ae]n|wom[ae]n): soldier(s) + steward(?:ess)?: flight attendant + tribes(?:m[ae]n|wom[ae]n): tribe member(s) + waitress: waiter + woman doctor: doctor + woman scientist[s]?: scientist(s) + work(?:m[ae]n|wom[ae]n): worker(s) diff --git a/docs-linter/styles/Microsoft/GeneralURL.yml b/docs-linter/styles/Microsoft/GeneralURL.yml new file mode 100644 index 0000000..dcef503 --- /dev/null +++ b/docs-linter/styles/Microsoft/GeneralURL.yml @@ -0,0 +1,11 @@ +extends: existence +message: "For a general audience, use 'address' rather than 'URL'." +link: https://docs.microsoft.com/en-us/style-guide/urls-web-addresses +level: warning +action: + name: replace + params: + - URL + - address +tokens: + - URL diff --git a/docs-linter/styles/Microsoft/HeadingAcronyms.yml b/docs-linter/styles/Microsoft/HeadingAcronyms.yml new file mode 100644 index 0000000..9dc3b6c --- /dev/null +++ b/docs-linter/styles/Microsoft/HeadingAcronyms.yml @@ -0,0 +1,7 @@ +extends: existence +message: "Avoid using acronyms in a title or heading." +link: https://docs.microsoft.com/en-us/style-guide/acronyms#be-careful-with-acronyms-in-titles-and-headings +level: warning +scope: heading +tokens: + - '[A-Z]{2,4}' diff --git a/docs-linter/styles/Microsoft/HeadingColons.yml b/docs-linter/styles/Microsoft/HeadingColons.yml new file mode 100644 index 0000000..7013c39 --- /dev/null +++ b/docs-linter/styles/Microsoft/HeadingColons.yml @@ -0,0 +1,8 @@ +extends: existence +message: "Capitalize '%s'." +link: https://docs.microsoft.com/en-us/style-guide/punctuation/colons +nonword: true +level: error +scope: heading +tokens: + - ':\s[a-z]' diff --git a/docs-linter/styles/Microsoft/HeadingPunctuation.yml b/docs-linter/styles/Microsoft/HeadingPunctuation.yml new file mode 100644 index 0000000..4954cb1 --- /dev/null +++ b/docs-linter/styles/Microsoft/HeadingPunctuation.yml @@ -0,0 +1,13 @@ +extends: existence +message: "Don't use end punctuation in headings." +link: https://docs.microsoft.com/en-us/style-guide/punctuation/periods +nonword: true +level: warning +scope: heading +action: + name: edit + params: + - trim_right + - ".?!" +tokens: + - "[a-z][.?!]$" diff --git a/docs-linter/styles/Microsoft/Headings.yml b/docs-linter/styles/Microsoft/Headings.yml new file mode 100644 index 0000000..63624ed --- /dev/null +++ b/docs-linter/styles/Microsoft/Headings.yml @@ -0,0 +1,28 @@ +extends: capitalization +message: "'%s' should use sentence-style capitalization." +link: https://docs.microsoft.com/en-us/style-guide/capitalization +level: suggestion +scope: heading +match: $sentence +indicators: + - ':' +exceptions: + - Azure + - CLI + - Code + - Cosmos + - Docker + - Emmet + - I + - Kubernetes + - Linux + - macOS + - Marketplace + - MongoDB + - REPL + - Studio + - TypeScript + - URLs + - Visual + - VS + - Windows diff --git a/docs-linter/styles/Microsoft/Hyphens.yml b/docs-linter/styles/Microsoft/Hyphens.yml new file mode 100644 index 0000000..7e5731c --- /dev/null +++ b/docs-linter/styles/Microsoft/Hyphens.yml @@ -0,0 +1,14 @@ +extends: existence +message: "'%s' doesn't need a hyphen." +link: https://docs.microsoft.com/en-us/style-guide/punctuation/dashes-hyphens/hyphens +level: warning +ignorecase: false +nonword: true +action: + name: edit + params: + - regex + - "-" + - " " +tokens: + - '\b[^\s-]+ly-\w+\b' diff --git a/docs-linter/styles/Microsoft/Negative.yml b/docs-linter/styles/Microsoft/Negative.yml new file mode 100644 index 0000000..d73221f --- /dev/null +++ b/docs-linter/styles/Microsoft/Negative.yml @@ -0,0 +1,13 @@ +extends: existence +message: "Form a negative number with an en dash, not a hyphen." +link: https://docs.microsoft.com/en-us/style-guide/numbers +nonword: true +level: error +action: + name: edit + params: + - regex + - "-" + - "–" +tokens: + - '(?<=\s)-\d+(?:\.\d+)?\b' diff --git a/docs-linter/styles/Microsoft/Ordinal.yml b/docs-linter/styles/Microsoft/Ordinal.yml new file mode 100644 index 0000000..e3483e3 --- /dev/null +++ b/docs-linter/styles/Microsoft/Ordinal.yml @@ -0,0 +1,13 @@ +extends: existence +message: "Don't add -ly to an ordinal number." +link: https://docs.microsoft.com/en-us/style-guide/numbers +level: error +action: + name: edit + params: + - trim + - ly +tokens: + - firstly + - secondly + - thirdly diff --git a/docs-linter/styles/Microsoft/OxfordComma.yml b/docs-linter/styles/Microsoft/OxfordComma.yml new file mode 100644 index 0000000..493b55c --- /dev/null +++ b/docs-linter/styles/Microsoft/OxfordComma.yml @@ -0,0 +1,8 @@ +extends: existence +message: "Use the Oxford comma in '%s'." +link: https://docs.microsoft.com/en-us/style-guide/punctuation/commas +scope: sentence +level: suggestion +nonword: true +tokens: + - '(?:[^\s,]+,){1,} \w+ (?:and|or) \w+[.?!]' diff --git a/docs-linter/styles/Microsoft/Passive.yml b/docs-linter/styles/Microsoft/Passive.yml new file mode 100644 index 0000000..102d377 --- /dev/null +++ b/docs-linter/styles/Microsoft/Passive.yml @@ -0,0 +1,183 @@ +extends: existence +message: "'%s' looks like passive voice." +ignorecase: true +level: suggestion +raw: + - \b(am|are|were|being|is|been|was|be)\b\s* +tokens: + - '[\w]+ed' + - awoken + - beat + - become + - been + - begun + - bent + - beset + - bet + - bid + - bidden + - bitten + - bled + - blown + - born + - bought + - bound + - bred + - broadcast + - broken + - brought + - built + - burnt + - burst + - cast + - caught + - chosen + - clung + - come + - cost + - crept + - cut + - dealt + - dived + - done + - drawn + - dreamt + - driven + - drunk + - dug + - eaten + - fallen + - fed + - felt + - fit + - fled + - flown + - flung + - forbidden + - foregone + - forgiven + - forgotten + - forsaken + - fought + - found + - frozen + - given + - gone + - gotten + - ground + - grown + - heard + - held + - hidden + - hit + - hung + - hurt + - kept + - knelt + - knit + - known + - laid + - lain + - leapt + - learnt + - led + - left + - lent + - let + - lighted + - lost + - made + - meant + - met + - misspelt + - mistaken + - mown + - overcome + - overdone + - overtaken + - overthrown + - paid + - pled + - proven + - put + - quit + - read + - rid + - ridden + - risen + - run + - rung + - said + - sat + - sawn + - seen + - sent + - set + - sewn + - shaken + - shaven + - shed + - shod + - shone + - shorn + - shot + - shown + - shrunk + - shut + - slain + - slept + - slid + - slit + - slung + - smitten + - sold + - sought + - sown + - sped + - spent + - spilt + - spit + - split + - spoken + - spread + - sprung + - spun + - stolen + - stood + - stridden + - striven + - struck + - strung + - stuck + - stung + - stunk + - sung + - sunk + - swept + - swollen + - sworn + - swum + - swung + - taken + - taught + - thought + - thrived + - thrown + - thrust + - told + - torn + - trodden + - understood + - upheld + - upset + - wed + - wept + - withheld + - withstood + - woken + - won + - worn + - wound + - woven + - written + - wrung diff --git a/docs-linter/styles/Microsoft/Percentages.yml b/docs-linter/styles/Microsoft/Percentages.yml new file mode 100644 index 0000000..b68a736 --- /dev/null +++ b/docs-linter/styles/Microsoft/Percentages.yml @@ -0,0 +1,7 @@ +extends: existence +message: "Use a numeral plus the units." +link: https://docs.microsoft.com/en-us/style-guide/numbers +nonword: true +level: error +tokens: + - '\b[a-zA-z]+\spercent\b' diff --git a/docs-linter/styles/Microsoft/Plurals.yml b/docs-linter/styles/Microsoft/Plurals.yml new file mode 100644 index 0000000..1bb6660 --- /dev/null +++ b/docs-linter/styles/Microsoft/Plurals.yml @@ -0,0 +1,7 @@ +extends: existence +message: "Don't add '%s' to a singular noun. Use plural instead." +ignorecase: true +level: error +link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/s/s-es +raw: + - '\(s\)|\(es\)' diff --git a/docs-linter/styles/Microsoft/Quotes.yml b/docs-linter/styles/Microsoft/Quotes.yml new file mode 100644 index 0000000..38f4976 --- /dev/null +++ b/docs-linter/styles/Microsoft/Quotes.yml @@ -0,0 +1,7 @@ +extends: existence +message: 'Punctuation should be inside the quotes.' +link: https://docs.microsoft.com/en-us/style-guide/punctuation/quotation-marks +level: error +nonword: true +tokens: + - '["“][^"”“]+["”][.,]' diff --git a/docs-linter/styles/Microsoft/RangeTime.yml b/docs-linter/styles/Microsoft/RangeTime.yml new file mode 100644 index 0000000..72d8bbf --- /dev/null +++ b/docs-linter/styles/Microsoft/RangeTime.yml @@ -0,0 +1,13 @@ +extends: existence +message: "Use 'to' instead of a dash in '%s'." +link: https://docs.microsoft.com/en-us/style-guide/numbers +nonword: true +level: error +action: + name: edit + params: + - regex + - "[-–]" + - "to" +tokens: + - '\b(?:AM|PM)\s?[-–]\s?.+(?:AM|PM)\b' diff --git a/docs-linter/styles/Microsoft/Semicolon.yml b/docs-linter/styles/Microsoft/Semicolon.yml new file mode 100644 index 0000000..4d90546 --- /dev/null +++ b/docs-linter/styles/Microsoft/Semicolon.yml @@ -0,0 +1,8 @@ +extends: existence +message: "Try to simplify this sentence." +link: https://docs.microsoft.com/en-us/style-guide/punctuation/semicolons +nonword: true +scope: sentence +level: suggestion +tokens: + - ';' diff --git a/docs-linter/styles/Microsoft/SentenceLength.yml b/docs-linter/styles/Microsoft/SentenceLength.yml new file mode 100644 index 0000000..f248cf0 --- /dev/null +++ b/docs-linter/styles/Microsoft/SentenceLength.yml @@ -0,0 +1,7 @@ +extends: occurrence +message: "Try to keep sentences short (< 30 words)." +scope: sentence +level: suggestion +max: 30 +token: \b(\w+)\b + diff --git a/docs-linter/styles/Microsoft/Spacing.yml b/docs-linter/styles/Microsoft/Spacing.yml new file mode 100644 index 0000000..bbd10e5 --- /dev/null +++ b/docs-linter/styles/Microsoft/Spacing.yml @@ -0,0 +1,8 @@ +extends: existence +message: "'%s' should have one space." +link: https://docs.microsoft.com/en-us/style-guide/punctuation/periods +level: error +nonword: true +tokens: + - '[a-z][.?!] {2,}[A-Z]' + - '[a-z][.?!][A-Z]' diff --git a/docs-linter/styles/Microsoft/Suspended.yml b/docs-linter/styles/Microsoft/Suspended.yml new file mode 100644 index 0000000..7282e9c --- /dev/null +++ b/docs-linter/styles/Microsoft/Suspended.yml @@ -0,0 +1,7 @@ +extends: existence +message: "Don't use '%s' unless space is limited." +link: https://docs.microsoft.com/en-us/style-guide/punctuation/dashes-hyphens/hyphens +ignorecase: true +level: warning +tokens: + - '\w+- and \w+-' diff --git a/docs-linter/styles/Microsoft/Terms.yml b/docs-linter/styles/Microsoft/Terms.yml new file mode 100644 index 0000000..65fca10 --- /dev/null +++ b/docs-linter/styles/Microsoft/Terms.yml @@ -0,0 +1,42 @@ +extends: substitution +message: "Prefer '%s' over '%s'." +# term preference should be based on microsoft style guide, such as +link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/a/adapter +level: warning +ignorecase: true +action: + name: replace +swap: + "(?:agent|virtual assistant|intelligent personal assistant)": personal digital assistant + "(?:assembler|machine language)": assembly language + "(?:drive C:|drive C>|C: drive)": drive C + "(?:internet bot|web robot)s?": bot(s) + "(?:microsoft cloud|the cloud)": cloud + "(?:mobile|smart) ?phone": phone + "24/7": every day + "audio(?:-| )book": audiobook + "back(?:-| )light": backlight + "chat ?bots?": chatbot(s) + adaptor: adapter + administrate: administer + afterwards: afterward + alphabetic: alphabetical + alphanumerical: alphanumeric + an URL: a URL + anti-aliasing: antialiasing + anti-malware: antimalware + anti-spyware: antispyware + anti-virus: antivirus + appendixes: appendices + artificial intelligence: AI + caap: CaaP + conversation-as-a-platform: conversation as a platform + eb: EB + gb: GB + gbps: Gbps + kb: KB + keypress: keystroke + mb: MB + pb: PB + tb: TB + zb: ZB diff --git a/docs-linter/styles/Microsoft/URLFormat.yml b/docs-linter/styles/Microsoft/URLFormat.yml new file mode 100644 index 0000000..4e24aa5 --- /dev/null +++ b/docs-linter/styles/Microsoft/URLFormat.yml @@ -0,0 +1,9 @@ +extends: substitution +message: Use 'of' (not 'for') to describe the relationship of the word URL to a resource. +ignorecase: true +link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/u/url +level: suggestion +action: + name: replace +swap: + URL for: URL of diff --git a/docs-linter/styles/Microsoft/Units.yml b/docs-linter/styles/Microsoft/Units.yml new file mode 100644 index 0000000..f062418 --- /dev/null +++ b/docs-linter/styles/Microsoft/Units.yml @@ -0,0 +1,16 @@ +extends: existence +message: "Don't spell out the number in '%s'." +link: https://docs.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/term-collections/units-of-measure-terms +level: error +raw: + - '[a-zA-Z]+\s' +tokens: + - '(?:centi|milli)?meters' + - '(?:kilo)?grams' + - '(?:kilo)?meters' + - '(?:mega)?pixels' + - cm + - inches + - lb + - miles + - pounds diff --git a/docs-linter/styles/Microsoft/Vocab.yml b/docs-linter/styles/Microsoft/Vocab.yml new file mode 100644 index 0000000..eebe97b --- /dev/null +++ b/docs-linter/styles/Microsoft/Vocab.yml @@ -0,0 +1,25 @@ +extends: existence +message: "Verify your use of '%s' with the A-Z word list." +link: 'https://docs.microsoft.com/en-us/style-guide' +level: suggestion +ignorecase: true +tokens: + - above + - accessible + - actionable + - against + - alarm + - alert + - alias + - allows? + - and/or + - as well as + - assure + - author + - avg + - beta + - ensure + - he + - insure + - sample + - she diff --git a/docs-linter/styles/Microsoft/We.yml b/docs-linter/styles/Microsoft/We.yml new file mode 100644 index 0000000..97c901c --- /dev/null +++ b/docs-linter/styles/Microsoft/We.yml @@ -0,0 +1,11 @@ +extends: existence +message: "Try to avoid using first-person plural like '%s'." +link: https://docs.microsoft.com/en-us/style-guide/grammar/person#avoid-first-person-plural +level: warning +ignorecase: true +tokens: + - we + - we'(?:ve|re) + - ours? + - us + - let's diff --git a/docs-linter/styles/Microsoft/Wordiness.yml b/docs-linter/styles/Microsoft/Wordiness.yml new file mode 100644 index 0000000..8a4fea7 --- /dev/null +++ b/docs-linter/styles/Microsoft/Wordiness.yml @@ -0,0 +1,127 @@ +extends: substitution +message: "Consider using '%s' instead of '%s'." +link: https://docs.microsoft.com/en-us/style-guide/word-choice/use-simple-words-concise-sentences +ignorecase: true +level: suggestion +action: + name: replace +swap: + "sufficient number(?: of)?": enough + (?:extract|take away|eliminate): remove + (?:in order to|as a means to): to + (?:inform|let me know): tell + (?:previous|prior) to: before + (?:utilize|make use of): use + a (?:large)? majority of: most + a (?:large)? number of: many + a myriad of: myriad + adversely impact: hurt + all across: across + all of a sudden: suddenly + all of these: these + all of(?! a sudden| these): all + all-time record: record + almost all: most + almost never: seldom + along the lines of: similar to + an adequate number of: enough + an appreciable number of: many + an estimated: about + any and all: all + are in agreement: agree + as a matter of fact: in fact + as a means of: to + as a result of: because of + as of yet: yet + as per: per + at a later date: later + at all times: always + at the present time: now + at this point in time: at this point + based in large part on: based on + based on the fact that: because + basic necessity: necessity + because of the fact that: because + came to a realization: realized + came to an abrupt end: ended abruptly + carry out an evaluation of: evaluate + close down: close + closed down: closed + complete stranger: stranger + completely separate: separate + concerning the matter of: regarding + conduct a review of: review + conduct an investigation: investigate + conduct experiments: experiment + continue on: continue + despite the fact that: although + disappear from sight: disappear + doomed to fail: doomed + drag and drop: drag + drag-and-drop: drag + due to the fact that: because + during the period of: during + during the time that: while + emergency situation: emergency + establish connectivity: connect + except when: unless + excessive number: too many + extend an invitation: invite + fall down: fall + fell down: fell + for the duration of: during + gather together: gather + has the ability to: can + has the capacity to: can + has the opportunity to: could + hold a meeting: meet + if this is not the case: if not + in a careful manner: carefully + in a thoughtful manner: thoughtfully + in a timely manner: timely + in addition: also + in an effort to: to + in between: between + in lieu of: instead of + in many cases: often + in most cases: usually + in order to: to + in some cases: sometimes + in spite of the fact that: although + in spite of: despite + in the (?:very)? near future: soon + in the event that: if + in the neighborhood of: roughly + in the vicinity of: close to + it would appear that: apparently + lift up: lift + made reference to: referred to + make reference to: refer to + mix together: mix + none at all: none + not in a position to: unable + not possible: impossible + of major importance: important + perform an assessment of: assess + pertaining to: about + place an order: order + plays a key role in: is essential to + present time: now + readily apparent: apparent + some of the: some + span across: span + subsequent to: after + successfully complete: complete + take action: act + take into account: consider + the question as to whether: whether + there is no doubt but that: doubtless + this day and age: this age + this is a subject that: this subject + time (?:frame|period): time + under the provisions of: under + until such time as: until + used for fuel purposes: used for fuel + whether or not: whether + with regard to: regarding + with the exception of: except for diff --git a/docs-linter/styles/Microsoft/meta.json b/docs-linter/styles/Microsoft/meta.json new file mode 100644 index 0000000..297719b --- /dev/null +++ b/docs-linter/styles/Microsoft/meta.json @@ -0,0 +1,4 @@ +{ + "feed": "https://github.com/errata-ai/Microsoft/releases.atom", + "vale_version": ">=1.0.0" +} From 60c2e4f9ba5e319c42a769cd7a6a3ca45954f232 Mon Sep 17 00:00:00 2001 From: nicoa Date: Mon, 22 Dec 2025 17:26:24 -0700 Subject: [PATCH 06/33] adjust rules --- docs-linter/.vale.ini | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/docs-linter/.vale.ini b/docs-linter/.vale.ini index 03b6c0e..cd7cea7 100644 --- a/docs-linter/.vale.ini +++ b/docs-linter/.vale.ini @@ -1,14 +1,13 @@ -# Core settings StylesPath = styles MinAlertLevel = suggestion - -# The "Vocab" setting must match the folder name inside 'styles/Vocab/' Vocab = terms - -# External packages Packages = Microsoft -# Rules for Markdown files [*.{md,mdx}] -# Apply the rules from these three sources BasedOnStyles = Vale, Microsoft, custom-rules + +# --- DISABLING RULES --- + +Microsoft.Accessibility = NO +Microsoft.Gender = NO +Microsoft.GenderBias = NO \ No newline at end of file From 654f4bbc89214dd3c063c727f6033389f7b82a4f Mon Sep 17 00:00:00 2001 From: nicoa Date: Mon, 22 Dec 2025 17:41:48 -0700 Subject: [PATCH 07/33] rule updates --- docs-linter/styles/custom-rules/Branding.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 docs-linter/styles/custom-rules/Branding.yml diff --git a/docs-linter/styles/custom-rules/Branding.yml b/docs-linter/styles/custom-rules/Branding.yml new file mode 100644 index 0000000..e7bdd31 --- /dev/null +++ b/docs-linter/styles/custom-rules/Branding.yml @@ -0,0 +1,20 @@ +# styles/custom-rules/Branding.yml +extends: substitution +message: "Use '%s' instead of '%s'." +link: https://my-company-style-guide.com +level: error +ignorecase: true +swap: + # Left side: The regex/text to find (lowercase) + # Right side: The correction to suggest + netfoundry: NetFoundry + frontdoor: Frontdoor + openziti: OpenZiti + zlan: zLAN + Zrok: zrok + docusaurus: Docusaurus + github: GitHub + bitbucket: Bitbucket + javascript: JavaScript + typescript: TypeScript + vscode: VS Code From 8aeb30c71e87b90a96252db8792ca271b4e38616 Mon Sep 17 00:00:00 2001 From: nicoa Date: Tue, 23 Dec 2025 11:32:43 -0700 Subject: [PATCH 08/33] vale working now --- docs-linter/.vale.ini | 5 ++--- docs-linter/smoke-test.md | 5 +++++ .../vocabularies/terms}/accept.txt | 4 ++++ .../vocabularies/terms}/reject.txt | 0 docs-linter/styles/custom-rules/Branding.yml | 18 ++++-------------- 5 files changed, 15 insertions(+), 17 deletions(-) create mode 100644 docs-linter/smoke-test.md rename docs-linter/styles/{Vocab => config/vocabularies/terms}/accept.txt (76%) rename docs-linter/styles/{Vocab => config/vocabularies/terms}/reject.txt (100%) diff --git a/docs-linter/.vale.ini b/docs-linter/.vale.ini index cd7cea7..27ce6a2 100644 --- a/docs-linter/.vale.ini +++ b/docs-linter/.vale.ini @@ -6,8 +6,7 @@ Packages = Microsoft [*.{md,mdx}] BasedOnStyles = Vale, Microsoft, custom-rules -# --- DISABLING RULES --- - +# Disable the noisy Microsoft rules Microsoft.Accessibility = NO Microsoft.Gender = NO -Microsoft.GenderBias = NO \ No newline at end of file +Microsoft.GenderBias = NO diff --git a/docs-linter/smoke-test.md b/docs-linter/smoke-test.md new file mode 100644 index 0000000..8baaf7f --- /dev/null +++ b/docs-linter/smoke-test.md @@ -0,0 +1,5 @@ +# Smoke test + +I pushed code to github using netfoundry. + +This is a testtoken. diff --git a/docs-linter/styles/Vocab/accept.txt b/docs-linter/styles/config/vocabularies/terms/accept.txt similarity index 76% rename from docs-linter/styles/Vocab/accept.txt rename to docs-linter/styles/config/vocabularies/terms/accept.txt index 0532cee..a4f7855 100644 --- a/docs-linter/styles/Vocab/accept.txt +++ b/docs-linter/styles/config/vocabularies/terms/accept.txt @@ -11,3 +11,7 @@ Frontdoor ZLAN OpenZiti Ziti +zLAN +zrok +JavaScript +TypeScript \ No newline at end of file diff --git a/docs-linter/styles/Vocab/reject.txt b/docs-linter/styles/config/vocabularies/terms/reject.txt similarity index 100% rename from docs-linter/styles/Vocab/reject.txt rename to docs-linter/styles/config/vocabularies/terms/reject.txt diff --git a/docs-linter/styles/custom-rules/Branding.yml b/docs-linter/styles/custom-rules/Branding.yml index e7bdd31..0ef3d44 100644 --- a/docs-linter/styles/custom-rules/Branding.yml +++ b/docs-linter/styles/custom-rules/Branding.yml @@ -1,20 +1,10 @@ -# styles/custom-rules/Branding.yml extends: substitution message: "Use '%s' instead of '%s'." -link: https://my-company-style-guide.com +link: https://netfoundry.io level: error ignorecase: true swap: - # Left side: The regex/text to find (lowercase) - # Right side: The correction to suggest - netfoundry: NetFoundry - frontdoor: Frontdoor - openziti: OpenZiti - zlan: zLAN - Zrok: zrok - docusaurus: Docusaurus - github: GitHub - bitbucket: Bitbucket - javascript: JavaScript - typescript: TypeScript + # KEEP: Substitutions that change structure (spaces, punctuation). For just capitalization, add to accept.txt vscode: VS Code + open ziti: OpenZiti + front door: Frontdoor From 8414c878619863dac87c0b512e87c6d09079a35f Mon Sep 17 00:00:00 2001 From: nicoa Date: Tue, 23 Dec 2025 12:38:10 -0700 Subject: [PATCH 09/33] test pipelines cvale --- bitbucket-pipelines.yml | 19 +++++++++++++++++++ docs-linter/sanity-check.md | 5 +++++ 2 files changed, 24 insertions(+) create mode 100644 bitbucket-pipelines.yml create mode 100644 docs-linter/sanity-check.md diff --git a/bitbucket-pipelines.yml b/bitbucket-pipelines.yml new file mode 100644 index 0000000..8086c7d --- /dev/null +++ b/bitbucket-pipelines.yml @@ -0,0 +1,19 @@ +image: jdkato/vale:latest + +pipelines: + pull-requests: + '**': # Runs on all PRs + - step: + name: Validate Linter Config + script: + # 1. Download external styles (Microsoft) + # This ensures network + config paths are valid + - vale sync + + # 2. Run a sanity check on a clean file + # If this fails, your config is broken (or the text is bad) + - vale tests/sanity-check.md + + # 3. (Optional) Syntax check your YAML files + # This ensures you didn't leave a tab or bad space in Branding.yml + - vale ls-config \ No newline at end of file diff --git a/docs-linter/sanity-check.md b/docs-linter/sanity-check.md new file mode 100644 index 0000000..519e370 --- /dev/null +++ b/docs-linter/sanity-check.md @@ -0,0 +1,5 @@ +# Sanity Check + +This file contains valid text. +I use GitHub and NetFoundry properly. +This ensures the linter configuration loads correctly. From b57af5e52ae1f9c744f467a79e3c18a7afcf40cc Mon Sep 17 00:00:00 2001 From: nicoa Date: Tue, 23 Dec 2025 12:44:08 -0700 Subject: [PATCH 10/33] Add Vale CI workflow --- .github/workflows/vale-check.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 .github/workflows/vale-check.yml diff --git a/.github/workflows/vale-check.yml b/.github/workflows/vale-check.yml new file mode 100644 index 0000000..5c0371e --- /dev/null +++ b/.github/workflows/vale-check.yml @@ -0,0 +1,26 @@ +name: Vale Linter Check + +on: + push: + branches: [ main, master ] + pull_request: + branches: [ main, master ] + +jobs: + vale-sanity-check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Install Vale + run: | + wget https://github.com/errata-ai/vale/releases/download/v3.9.0/vale_3.9.0_Linux_64-bit.tar.gz + tar -xvzf vale_3.9.0_Linux_64-bit.tar.gz + sudo mv vale /usr/local/bin/ + vale -v + + - name: Run Vale Smoke Test + run: | + cd docs-linter + vale sync + vale tests/sanity-check.md From 285d7f657971c956cc5d7162933eb4114acd2a91 Mon Sep 17 00:00:00 2001 From: nicoa Date: Tue, 23 Dec 2025 12:46:18 -0700 Subject: [PATCH 11/33] fix config to show develop --- .github/workflows/vale-check.yml | 4 ++-- bitbucket-pipelines.yml | 19 ------------------- docs-linter/.github/workflows/vale-check.yml | 0 3 files changed, 2 insertions(+), 21 deletions(-) delete mode 100644 bitbucket-pipelines.yml create mode 100644 docs-linter/.github/workflows/vale-check.yml diff --git a/.github/workflows/vale-check.yml b/.github/workflows/vale-check.yml index 5c0371e..73f0934 100644 --- a/.github/workflows/vale-check.yml +++ b/.github/workflows/vale-check.yml @@ -2,9 +2,9 @@ name: Vale Linter Check on: push: - branches: [ main, master ] + branches: [ develop ] pull_request: - branches: [ main, master ] + branches: [ develop ] jobs: vale-sanity-check: diff --git a/bitbucket-pipelines.yml b/bitbucket-pipelines.yml deleted file mode 100644 index 8086c7d..0000000 --- a/bitbucket-pipelines.yml +++ /dev/null @@ -1,19 +0,0 @@ -image: jdkato/vale:latest - -pipelines: - pull-requests: - '**': # Runs on all PRs - - step: - name: Validate Linter Config - script: - # 1. Download external styles (Microsoft) - # This ensures network + config paths are valid - - vale sync - - # 2. Run a sanity check on a clean file - # If this fails, your config is broken (or the text is bad) - - vale tests/sanity-check.md - - # 3. (Optional) Syntax check your YAML files - # This ensures you didn't leave a tab or bad space in Branding.yml - - vale ls-config \ No newline at end of file diff --git a/docs-linter/.github/workflows/vale-check.yml b/docs-linter/.github/workflows/vale-check.yml new file mode 100644 index 0000000..e69de29 From ff8223e5b5a532b7c77d8f93dc2814d64ed0762f Mon Sep 17 00:00:00 2001 From: nicoa Date: Tue, 23 Dec 2025 12:53:45 -0700 Subject: [PATCH 12/33] Force CI trigger From 308c92f02083edb14f0cb38f0893e41648793ede Mon Sep 17 00:00:00 2001 From: nicoa Date: Tue, 23 Dec 2025 12:56:06 -0700 Subject: [PATCH 13/33] Fix CI to target main branch --- .github/workflows/vale-check.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/vale-check.yml b/.github/workflows/vale-check.yml index 73f0934..6271d8d 100644 --- a/.github/workflows/vale-check.yml +++ b/.github/workflows/vale-check.yml @@ -2,9 +2,9 @@ name: Vale Linter Check on: push: - branches: [ develop ] + branches: [ main ] pull_request: - branches: [ develop ] + branches: [ main ] jobs: vale-sanity-check: From 7745e03fdebba5f4014522341bd988a0f8d9eb87 Mon Sep 17 00:00:00 2001 From: nicoa Date: Tue, 23 Dec 2025 14:19:40 -0700 Subject: [PATCH 14/33] add no fail line for buiild --- .github/workflows/vale-check.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/vale-check.yml b/.github/workflows/vale-check.yml index 6271d8d..0f9e256 100644 --- a/.github/workflows/vale-check.yml +++ b/.github/workflows/vale-check.yml @@ -24,3 +24,4 @@ jobs: cd docs-linter vale sync vale tests/sanity-check.md + vale tests/sanity-check.md --no-exit From b0780edcc6964d958836884a7174322d4bb74210 Mon Sep 17 00:00:00 2001 From: nicoa Date: Tue, 23 Dec 2025 14:31:41 -0700 Subject: [PATCH 15/33] add markdownlint step to container --- .github/workflows/vale-check.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/vale-check.yml b/.github/workflows/vale-check.yml index 0f9e256..1f4be01 100644 --- a/.github/workflows/vale-check.yml +++ b/.github/workflows/vale-check.yml @@ -23,5 +23,11 @@ jobs: run: | cd docs-linter vale sync - vale tests/sanity-check.md vale tests/sanity-check.md --no-exit + + - name: Install Markdownlint + run: sudo npm install -g markdownlint-cli + + - name: Run Markdownlint (Format Check) + run: | + markdownlint --config docs-linter/.markdownlint.json docs-linter/tests/sanity-check.md || true From c650e934965ff76bd0a19053b999735d2d439c3e Mon Sep 17 00:00:00 2001 From: nicoa Date: Tue, 23 Dec 2025 14:44:36 -0700 Subject: [PATCH 16/33] new test --- .github/workflows/vale-check.yml | 8 +++++--- docs-linter/smoke-test.md | 4 ++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/vale-check.yml b/.github/workflows/vale-check.yml index 1f4be01..df1c399 100644 --- a/.github/workflows/vale-check.yml +++ b/.github/workflows/vale-check.yml @@ -7,7 +7,7 @@ on: branches: [ main ] jobs: - vale-sanity-check: + vale-quality-check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -23,11 +23,13 @@ jobs: run: | cd docs-linter vale sync - vale tests/sanity-check.md --no-exit + # Run against your renamed file + vale tests/smoke-test.md --no-exit - name: Install Markdownlint run: sudo npm install -g markdownlint-cli - name: Run Markdownlint (Format Check) run: | - markdownlint --config docs-linter/.markdownlint.json docs-linter/tests/sanity-check.md || true + cd docs-linter + markdownlint --config .markdownlint.json tests/smoke-test.md || true diff --git a/docs-linter/smoke-test.md b/docs-linter/smoke-test.md index 8baaf7f..eb2a3eb 100644 --- a/docs-linter/smoke-test.md +++ b/docs-linter/smoke-test.md @@ -3,3 +3,7 @@ I pushed code to github using netfoundry. This is a testtoken. + +### + +moret esting From 371546a8ca1c238994381fceef9212716e834ef2 Mon Sep 17 00:00:00 2001 From: nicoa Date: Tue, 23 Dec 2025 15:19:18 -0700 Subject: [PATCH 17/33] remove tests --- .github/workflows/vale-check.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/vale-check.yml b/.github/workflows/vale-check.yml index df1c399..f9725cf 100644 --- a/.github/workflows/vale-check.yml +++ b/.github/workflows/vale-check.yml @@ -17,14 +17,12 @@ jobs: wget https://github.com/errata-ai/vale/releases/download/v3.9.0/vale_3.9.0_Linux_64-bit.tar.gz tar -xvzf vale_3.9.0_Linux_64-bit.tar.gz sudo mv vale /usr/local/bin/ - vale -v - name: Run Vale Smoke Test run: | cd docs-linter vale sync - # Run against your renamed file - vale tests/smoke-test.md --no-exit + vale smoke-test.md --no-exit - name: Install Markdownlint run: sudo npm install -g markdownlint-cli @@ -32,4 +30,4 @@ jobs: - name: Run Markdownlint (Format Check) run: | cd docs-linter - markdownlint --config .markdownlint.json tests/smoke-test.md || true + markdownlint --config .markdownlint.json smoke-test.md || true From 0c61eace855cf1cd0070f0c28b9eabc164fe8621 Mon Sep 17 00:00:00 2001 From: nicoa Date: Tue, 23 Dec 2025 16:31:46 -0700 Subject: [PATCH 18/33] EOD --- docs-linter/smoke-test.md | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/docs-linter/smoke-test.md b/docs-linter/smoke-test.md index eb2a3eb..523f713 100644 --- a/docs-linter/smoke-test.md +++ b/docs-linter/smoke-test.md @@ -1,9 +1,16 @@ -# Smoke test +# Smoke Test File -I pushed code to github using netfoundry. +This is a paragraph with trailing spaces at the end. +(That line has spaces, triggering MD009). -This is a testtoken. +# A Second H1 Header (Violation: MD025) -### +#### Skipped Header Level (Violation: MD001 - H1 to H4) -moret esting +Here is a list of Vale violations: + +1. **Branding:** We use netfoundry and github in our daily work. +2. **Passive Voice:** The file was opened by the admin. +3. **Wordiness:** In order to login, you must utilize the key. +4. **First Person:** I decided to push the code myself. +5. **Spelling:** This is a testtoken for moret esting. \ No newline at end of file From 7e3bc19bdc560a4ccc022da8f6723110c375d291 Mon Sep 17 00:00:00 2001 From: Nico Alba Date: Wed, 24 Dec 2025 12:04:04 -0700 Subject: [PATCH 19/33] Disable Microsoft.Vocab rule in Vale configuration --- docs-linter/.vale.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/docs-linter/.vale.ini b/docs-linter/.vale.ini index 27ce6a2..439f5c2 100644 --- a/docs-linter/.vale.ini +++ b/docs-linter/.vale.ini @@ -10,3 +10,4 @@ BasedOnStyles = Vale, Microsoft, custom-rules Microsoft.Accessibility = NO Microsoft.Gender = NO Microsoft.GenderBias = NO +Microsoft.Vocab = NO From f87fbea47ab87a4f2be919bf5faa8b3d3b3d5e99 Mon Sep 17 00:00:00 2001 From: Nico Alba Date: Wed, 24 Dec 2025 12:40:01 -0700 Subject: [PATCH 20/33] Update .vale.ini --- docs-linter/.vale.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/docs-linter/.vale.ini b/docs-linter/.vale.ini index 439f5c2..3fbfdb9 100644 --- a/docs-linter/.vale.ini +++ b/docs-linter/.vale.ini @@ -11,3 +11,4 @@ Microsoft.Accessibility = NO Microsoft.Gender = NO Microsoft.GenderBias = NO Microsoft.Vocab = NO +Microsoft.Acronyms = NO From deccf3b7059cb1e198c810122377d3b3d232d041 Mon Sep 17 00:00:00 2001 From: Nico Alba Date: Wed, 24 Dec 2025 15:11:10 -0700 Subject: [PATCH 21/33] Update .vale.ini --- docs-linter/.vale.ini | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs-linter/.vale.ini b/docs-linter/.vale.ini index 3fbfdb9..4a4e526 100644 --- a/docs-linter/.vale.ini +++ b/docs-linter/.vale.ini @@ -1,14 +1,19 @@ StylesPath = styles MinAlertLevel = suggestion +TokenIgnores = (https?://[^\s\)]+) Vocab = terms Packages = Microsoft [*.{md,mdx}] BasedOnStyles = Vale, Microsoft, custom-rules +BlockIgnores = (?s)(^---\n.*?\n---) + # Disable the noisy Microsoft rules Microsoft.Accessibility = NO Microsoft.Gender = NO Microsoft.GenderBias = NO Microsoft.Vocab = NO Microsoft.Acronyms = NO +Microsoft.Foreign = NO +Microsoft.Avoid = NO From b8025d8e1fe349588620d81e49d4218a355eb13d Mon Sep 17 00:00:00 2001 From: Nico Alba Date: Wed, 24 Dec 2025 15:15:12 -0700 Subject: [PATCH 22/33] Add TokenIgnores back to .vale.ini --- docs-linter/.vale.ini | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs-linter/.vale.ini b/docs-linter/.vale.ini index 4a4e526..465ebdb 100644 --- a/docs-linter/.vale.ini +++ b/docs-linter/.vale.ini @@ -1,12 +1,11 @@ StylesPath = styles MinAlertLevel = suggestion -TokenIgnores = (https?://[^\s\)]+) Vocab = terms Packages = Microsoft [*.{md,mdx}] BasedOnStyles = Vale, Microsoft, custom-rules - +TokenIgnores = (https?://[^\s\)]+) BlockIgnores = (?s)(^---\n.*?\n---) # Disable the noisy Microsoft rules From eb44f57d89a9e3af2cd60e4bc06506ebd4d91550 Mon Sep 17 00:00:00 2001 From: Nico Alba Date: Fri, 26 Dec 2025 10:24:07 -0700 Subject: [PATCH 23/33] Disable SentenceLength and Adverbs checks in Vale --- docs-linter/.vale.ini | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs-linter/.vale.ini b/docs-linter/.vale.ini index 465ebdb..d494661 100644 --- a/docs-linter/.vale.ini +++ b/docs-linter/.vale.ini @@ -16,3 +16,5 @@ Microsoft.Vocab = NO Microsoft.Acronyms = NO Microsoft.Foreign = NO Microsoft.Avoid = NO +Microsoft.SentenceLength = NO +Microsoft.Adverbs = NO From d80bb8baa1b63847a3170c836cc0f23131ae83aa Mon Sep 17 00:00:00 2001 From: Nico Alba Date: Fri, 26 Dec 2025 10:25:44 -0700 Subject: [PATCH 24/33] Add new terms to accept.txt vocabulary list --- .../config/vocabularies/terms/accept.txt | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/docs-linter/styles/config/vocabularies/terms/accept.txt b/docs-linter/styles/config/vocabularies/terms/accept.txt index a4f7855..3f27fa1 100644 --- a/docs-linter/styles/config/vocabularies/terms/accept.txt +++ b/docs-linter/styles/config/vocabularies/terms/accept.txt @@ -14,4 +14,24 @@ Ziti zLAN zrok JavaScript -TypeScript \ No newline at end of file +TypeScript +Okta +JWT +JWTs +CA +CAs +VM +VMs +TLDs +hostname +egressed +egress +ingress +ingressed +Semver +FQDN +FQDNs +AMIs +mfa +sidebar_position +sidebar_label From b0990985c0b565b10c226b70bb51df860b0c7e0d Mon Sep 17 00:00:00 2001 From: Nico Alba Date: Fri, 26 Dec 2025 10:26:05 -0700 Subject: [PATCH 25/33] Delete docs-linter/sanity-check.md --- docs-linter/sanity-check.md | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 docs-linter/sanity-check.md diff --git a/docs-linter/sanity-check.md b/docs-linter/sanity-check.md deleted file mode 100644 index 519e370..0000000 --- a/docs-linter/sanity-check.md +++ /dev/null @@ -1,5 +0,0 @@ -# Sanity Check - -This file contains valid text. -I use GitHub and NetFoundry properly. -This ensures the linter configuration loads correctly. From b15d614cfa9c9ef6065df393565cfb3e341b7a52 Mon Sep 17 00:00:00 2001 From: Nico Alba Date: Fri, 26 Dec 2025 11:22:20 -0700 Subject: [PATCH 26/33] Update accept.txt --- .../config/vocabularies/terms/accept.txt | 54 ++++++++++++------- 1 file changed, 35 insertions(+), 19 deletions(-) diff --git a/docs-linter/styles/config/vocabularies/terms/accept.txt b/docs-linter/styles/config/vocabularies/terms/accept.txt index 3f27fa1..ea38c82 100644 --- a/docs-linter/styles/config/vocabularies/terms/accept.txt +++ b/docs-linter/styles/config/vocabularies/terms/accept.txt @@ -1,21 +1,45 @@ -Docusaurus -GitHub -Bitbucket -API -CLI -Kubernetes +# ========================================== +# GENERAL TECHNICAL TERMS +# (Flexible: entering 'performant' allows 'Performant' at start of sentence) +# ========================================== +performant +hostname repo linter +egress +egressed +ingress +ingressed +sidebar_position +sidebar_label +config +microsegmentation + +# ========================================== +# BRANDS, PRODUCTS, & PROPER NOUNS +# (Strict: must match this capitalization exactly) +# ========================================== NetFoundry -Frontdoor -ZLAN OpenZiti Ziti -zLAN zrok +zLAN +Frontdoor +Docusaurus +GitHub +Bitbucket +Kubernetes +Okta JavaScript TypeScript -Okta +Semver + +# ========================================== +# ACRONYMS +# (Strict: must be uppercase) +# ========================================== +API +CLI JWT JWTs CA @@ -23,15 +47,7 @@ CAs VM VMs TLDs -hostname -egressed -egress -ingress -ingressed -Semver FQDN FQDNs AMIs -mfa -sidebar_position -sidebar_label +MFA From 36a8d5a5449a910416469e9a783ada29ff9b268b Mon Sep 17 00:00:00 2001 From: Nico Alba Date: Fri, 26 Dec 2025 11:28:07 -0700 Subject: [PATCH 27/33] Add exclusions for technical writing in .vale.ini --- docs-linter/.vale.ini | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs-linter/.vale.ini b/docs-linter/.vale.ini index d494661..e5390e2 100644 --- a/docs-linter/.vale.ini +++ b/docs-linter/.vale.ini @@ -16,5 +16,12 @@ Microsoft.Vocab = NO Microsoft.Acronyms = NO Microsoft.Foreign = NO Microsoft.Avoid = NO + +# The "Technical Writing" Exclusions +Microsoft.Passive = NO +Microsoft.HeadingAcronyms = NO +Microsoft.GeneralURL = NO Microsoft.SentenceLength = NO Microsoft.Adverbs = NO +Microsoft.We = NO +Microsoft.FirstPerson = NO From 65858ab0b22ab9a270cbfd5c86acb004a9b702c4 Mon Sep 17 00:00:00 2001 From: Nico Alba Date: Fri, 26 Dec 2025 11:43:25 -0700 Subject: [PATCH 28/33] Add terms 'plaintext', 'ciphertext', 'Keycloak', and 'IdP' --- docs-linter/styles/config/vocabularies/terms/accept.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs-linter/styles/config/vocabularies/terms/accept.txt b/docs-linter/styles/config/vocabularies/terms/accept.txt index ea38c82..01bf88e 100644 --- a/docs-linter/styles/config/vocabularies/terms/accept.txt +++ b/docs-linter/styles/config/vocabularies/terms/accept.txt @@ -14,6 +14,8 @@ sidebar_position sidebar_label config microsegmentation +plaintext +ciphertext # ========================================== # BRANDS, PRODUCTS, & PROPER NOUNS @@ -33,6 +35,7 @@ Okta JavaScript TypeScript Semver +Keycloak # ========================================== # ACRONYMS @@ -51,3 +54,6 @@ FQDN FQDNs AMIs MFA +IdP +IdPs + From 33d2d578257b096d849d4bea2718ee16787715a7 Mon Sep 17 00:00:00 2001 From: Nico Alba Date: Fri, 26 Dec 2025 12:30:37 -0700 Subject: [PATCH 29/33] updates --- docs-linter/.vale.ini | 7 +++---- docs-linter/styles/config/vocabularies/terms/accept.txt | 8 ++++++++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/docs-linter/.vale.ini b/docs-linter/.vale.ini index e5390e2..6ba94b1 100644 --- a/docs-linter/.vale.ini +++ b/docs-linter/.vale.ini @@ -5,10 +5,10 @@ Packages = Microsoft [*.{md,mdx}] BasedOnStyles = Vale, Microsoft, custom-rules -TokenIgnores = (https?://[^\s\)]+) +TokenIgnores = (https?://[^\s\)]+), (`.+?`) BlockIgnores = (?s)(^---\n.*?\n---) -# Disable the noisy Microsoft rules +# Disable noisy Microsoft rules Microsoft.Accessibility = NO Microsoft.Gender = NO Microsoft.GenderBias = NO @@ -16,8 +16,7 @@ Microsoft.Vocab = NO Microsoft.Acronyms = NO Microsoft.Foreign = NO Microsoft.Avoid = NO - -# The "Technical Writing" Exclusions +Microsoft.Terms = NO Microsoft.Passive = NO Microsoft.HeadingAcronyms = NO Microsoft.GeneralURL = NO diff --git a/docs-linter/styles/config/vocabularies/terms/accept.txt b/docs-linter/styles/config/vocabularies/terms/accept.txt index 01bf88e..33659f5 100644 --- a/docs-linter/styles/config/vocabularies/terms/accept.txt +++ b/docs-linter/styles/config/vocabularies/terms/accept.txt @@ -16,6 +16,10 @@ config microsegmentation plaintext ciphertext +untrusted +failover +failovers +antivirus # ========================================== # BRANDS, PRODUCTS, & PROPER NOUNS @@ -42,6 +46,8 @@ Keycloak # (Strict: must be uppercase) # ========================================== API +AMI +AMIs CLI JWT JWTs @@ -56,4 +62,6 @@ AMIs MFA IdP IdPs +FQDN +FQDNs From 6be32a65e70f8ce79bcf75f1b4d3bf4995926b09 Mon Sep 17 00:00:00 2001 From: Nico Alba Date: Fri, 26 Dec 2025 12:38:53 -0700 Subject: [PATCH 30/33] updates to tokens --- docs-linter/.vale.ini | 2 +- .../config/vocabularies/terms/accept.txt | 22 ++++--------------- 2 files changed, 5 insertions(+), 19 deletions(-) diff --git a/docs-linter/.vale.ini b/docs-linter/.vale.ini index 6ba94b1..1878bfd 100644 --- a/docs-linter/.vale.ini +++ b/docs-linter/.vale.ini @@ -5,7 +5,7 @@ Packages = Microsoft [*.{md,mdx}] BasedOnStyles = Vale, Microsoft, custom-rules -TokenIgnores = (https?://[^\s\)]+), (`.+?`) +TokenIgnores = (https?://[^\s\)]+), (`.+?`), (\*\*.+?\*\*) BlockIgnores = (?s)(^---\n.*?\n---) # Disable noisy Microsoft rules diff --git a/docs-linter/styles/config/vocabularies/terms/accept.txt b/docs-linter/styles/config/vocabularies/terms/accept.txt index 33659f5..254ebec 100644 --- a/docs-linter/styles/config/vocabularies/terms/accept.txt +++ b/docs-linter/styles/config/vocabularies/terms/accept.txt @@ -1,7 +1,3 @@ -# ========================================== -# GENERAL TECHNICAL TERMS -# (Flexible: entering 'performant' allows 'Performant' at start of sentence) -# ========================================== performant hostname repo @@ -20,11 +16,10 @@ untrusted failover failovers antivirus - -# ========================================== -# BRANDS, PRODUCTS, & PROPER NOUNS -# (Strict: must match this capitalization exactly) -# ========================================== +datacenter +datacenters +reachability +signin NetFoundry OpenZiti Ziti @@ -40,11 +35,6 @@ JavaScript TypeScript Semver Keycloak - -# ========================================== -# ACRONYMS -# (Strict: must be uppercase) -# ========================================== API AMI AMIs @@ -58,10 +48,6 @@ VMs TLDs FQDN FQDNs -AMIs MFA IdP IdPs -FQDN -FQDNs - From b52790886cfdcdd0279bbb75b066f718b50c1d39 Mon Sep 17 00:00:00 2001 From: Nico Alba Date: Fri, 26 Dec 2025 13:19:15 -0700 Subject: [PATCH 31/33] remove unwanted microsoft files --- docs-linter/styles/Microsoft/AMPM.yml | 9 - .../styles/Microsoft/Accessibility.yml | 30 -- docs-linter/styles/Microsoft/Acronyms.yml | 64 ----- docs-linter/styles/Microsoft/Adverbs.yml | 272 ------------------ docs-linter/styles/Microsoft/Avoid.yml | 14 - docs-linter/styles/Microsoft/ComplexWords.yml | 14 + docs-linter/styles/Microsoft/Foreign.yml | 13 - docs-linter/styles/Microsoft/GenderBias.yml | 42 --- docs-linter/styles/Microsoft/GeneralURL.yml | 11 - .../styles/Microsoft/HeadingAcronyms.yml | 7 - docs-linter/styles/Microsoft/Passive.yml | 183 ------------ docs-linter/styles/Microsoft/Quotes.yml | 7 - docs-linter/styles/Microsoft/RangeTime.yml | 13 - docs-linter/styles/Microsoft/Semicolon.yml | 8 - .../styles/Microsoft/SentenceLength.yml | 7 - docs-linter/styles/Microsoft/Suspended.yml | 7 - docs-linter/styles/Microsoft/Terms.yml | 42 --- docs-linter/styles/Microsoft/URLFormat.yml | 9 - docs-linter/styles/Microsoft/Units.yml | 16 -- docs-linter/styles/Microsoft/Vocab.yml | 25 -- docs-linter/styles/Microsoft/We.yml | 11 - docs-linter/styles/Microsoft/meta.json | 4 - 22 files changed, 14 insertions(+), 794 deletions(-) delete mode 100644 docs-linter/styles/Microsoft/AMPM.yml delete mode 100644 docs-linter/styles/Microsoft/Accessibility.yml delete mode 100644 docs-linter/styles/Microsoft/Acronyms.yml delete mode 100644 docs-linter/styles/Microsoft/Adverbs.yml delete mode 100644 docs-linter/styles/Microsoft/Avoid.yml create mode 100644 docs-linter/styles/Microsoft/ComplexWords.yml delete mode 100644 docs-linter/styles/Microsoft/Foreign.yml delete mode 100644 docs-linter/styles/Microsoft/GenderBias.yml delete mode 100644 docs-linter/styles/Microsoft/GeneralURL.yml delete mode 100644 docs-linter/styles/Microsoft/HeadingAcronyms.yml delete mode 100644 docs-linter/styles/Microsoft/Passive.yml delete mode 100644 docs-linter/styles/Microsoft/Quotes.yml delete mode 100644 docs-linter/styles/Microsoft/RangeTime.yml delete mode 100644 docs-linter/styles/Microsoft/Semicolon.yml delete mode 100644 docs-linter/styles/Microsoft/SentenceLength.yml delete mode 100644 docs-linter/styles/Microsoft/Suspended.yml delete mode 100644 docs-linter/styles/Microsoft/Terms.yml delete mode 100644 docs-linter/styles/Microsoft/URLFormat.yml delete mode 100644 docs-linter/styles/Microsoft/Units.yml delete mode 100644 docs-linter/styles/Microsoft/Vocab.yml delete mode 100644 docs-linter/styles/Microsoft/We.yml delete mode 100644 docs-linter/styles/Microsoft/meta.json diff --git a/docs-linter/styles/Microsoft/AMPM.yml b/docs-linter/styles/Microsoft/AMPM.yml deleted file mode 100644 index 8b9fed1..0000000 --- a/docs-linter/styles/Microsoft/AMPM.yml +++ /dev/null @@ -1,9 +0,0 @@ -extends: existence -message: Use 'AM' or 'PM' (preceded by a space). -link: https://docs.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/term-collections/date-time-terms -level: error -nonword: true -tokens: - - '\d{1,2}[AP]M' - - '\d{1,2} ?[ap]m' - - '\d{1,2} ?[aApP]\.[mM]\.' diff --git a/docs-linter/styles/Microsoft/Accessibility.yml b/docs-linter/styles/Microsoft/Accessibility.yml deleted file mode 100644 index f5f4829..0000000 --- a/docs-linter/styles/Microsoft/Accessibility.yml +++ /dev/null @@ -1,30 +0,0 @@ -extends: existence -message: "Don't use language (such as '%s') that defines people by their disability." -link: https://docs.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/term-collections/accessibility-terms -level: suggestion -ignorecase: true -tokens: - - a victim of - - able-bodied - - an epileptic - - birth defect - - crippled - - differently abled - - disabled - - dumb - - handicapped - - handicaps - - healthy person - - hearing-impaired - - lame - - maimed - - mentally handicapped - - missing a limb - - mute - - non-verbal - - normal person - - sight-impaired - - slow learner - - stricken with - - suffers from - - vision-impaired diff --git a/docs-linter/styles/Microsoft/Acronyms.yml b/docs-linter/styles/Microsoft/Acronyms.yml deleted file mode 100644 index 308ff7c..0000000 --- a/docs-linter/styles/Microsoft/Acronyms.yml +++ /dev/null @@ -1,64 +0,0 @@ -extends: conditional -message: "'%s' has no definition." -link: https://docs.microsoft.com/en-us/style-guide/acronyms -level: suggestion -ignorecase: false -# Ensures that the existence of 'first' implies the existence of 'second'. -first: '\b([A-Z]{3,5})\b' -second: '(?:\b[A-Z][a-z]+ )+\(([A-Z]{3,5})\)' -# ... with the exception of these: -exceptions: - - API - - ASP - - CLI - - CPU - - CSS - - CSV - - DEBUG - - DOM - - DPI - - FAQ - - GCC - - GDB - - GET - - GPU - - GTK - - GUI - - HTML - - HTTP - - HTTPS - - IDE - - JAR - - JSON - - JSX - - LESS - - LLDB - - NET - - NOTE - - NVDA - - OSS - - PATH - - PDF - - PHP - - POST - - RAM - - REPL - - RSA - - SCM - - SCSS - - SDK - - SQL - - SSH - - SSL - - SVG - - TBD - - TCP - - TODO - - URI - - URL - - USB - - UTF - - XML - - XSS - - YAML - - ZIP diff --git a/docs-linter/styles/Microsoft/Adverbs.yml b/docs-linter/styles/Microsoft/Adverbs.yml deleted file mode 100644 index 5619f99..0000000 --- a/docs-linter/styles/Microsoft/Adverbs.yml +++ /dev/null @@ -1,272 +0,0 @@ -extends: existence -message: "Remove '%s' if it's not important to the meaning of the statement." -link: https://docs.microsoft.com/en-us/style-guide/word-choice/use-simple-words-concise-sentences -ignorecase: true -level: warning -action: - name: remove -tokens: - - abnormally - - absentmindedly - - accidentally - - adventurously - - anxiously - - arrogantly - - awkwardly - - bashfully - - beautifully - - bitterly - - bleakly - - blindly - - blissfully - - boastfully - - boldly - - bravely - - briefly - - brightly - - briskly - - broadly - - busily - - calmly - - carefully - - carelessly - - cautiously - - cheerfully - - cleverly - - closely - - coaxingly - - colorfully - - continually - - coolly - - courageously - - crossly - - cruelly - - curiously - - daintily - - dearly - - deceivingly - - deeply - - defiantly - - deliberately - - delightfully - - diligently - - dimly - - doubtfully - - dreamily - - easily - - effectively - - elegantly - - energetically - - enormously - - enthusiastically - - excitedly - - extremely - - fairly - - faithfully - - famously - - ferociously - - fervently - - fiercely - - fondly - - foolishly - - fortunately - - frankly - - frantically - - freely - - frenetically - - frightfully - - furiously - - generally - - generously - - gently - - gladly - - gleefully - - gracefully - - gratefully - - greatly - - greedily - - happily - - hastily - - healthily - - heavily - - helplessly - - honestly - - hopelessly - - hungrily - - innocently - - inquisitively - - intensely - - intently - - interestingly - - inwardly - - irritably - - jaggedly - - jealously - - jovially - - joyfully - - joyously - - jubilantly - - judgmentally - - justly - - keenly - - kiddingly - - kindheartedly - - knavishly - - knowingly - - knowledgeably - - lazily - - lightly - - limply - - lively - - loftily - - longingly - - loosely - - loudly - - lovingly - - loyally - - madly - - majestically - - meaningfully - - mechanically - - merrily - - miserably - - mockingly - - mortally - - mysteriously - - naturally - - nearly - - neatly - - nervously - - nicely - - noisily - - obediently - - obnoxiously - - oddly - - offensively - - optimistically - - overconfidently - - painfully - - partially - - patiently - - perfectly - - playfully - - politely - - poorly - - positively - - potentially - - powerfully - - promptly - - properly - - punctually - - quaintly - - queasily - - queerly - - questionably - - quickly - - quietly - - quirkily - - quite - - quizzically - - randomly - - rapidly - - rarely - - readily - - really - - reassuringly - - recklessly - - regularly - - reluctantly - - repeatedly - - reproachfully - - restfully - - righteously - - rightfully - - rigidly - - roughly - - rudely - - safely - - scarcely - - scarily - - searchingly - - sedately - - seemingly - - selfishly - - separately - - seriously - - shakily - - sharply - - sheepishly - - shrilly - - shyly - - silently - - sleepily - - slowly - - smoothly - - softly - - solemnly - - solidly - - speedily - - stealthily - - sternly - - strictly - - suddenly - - supposedly - - surprisingly - - suspiciously - - sweetly - - swiftly - - sympathetically - - tenderly - - tensely - - terribly - - thankfully - - thoroughly - - thoughtfully - - tightly - - tremendously - - triumphantly - - truthfully - - ultimately - - unabashedly - - unaccountably - - unbearably - - unethically - - unexpectedly - - unfortunately - - unimpressively - - unnaturally - - unnecessarily - - urgently - - usefully - - uselessly - - utterly - - vacantly - - vaguely - - vainly - - valiantly - - vastly - - verbally - - very - - viciously - - victoriously - - violently - - vivaciously - - voluntarily - - warmly - - weakly - - wearily - - wetly - - wholly - - wildly - - willfully - - wisely - - woefully - - wonderfully - - worriedly - - yawningly - - yearningly - - yieldingly - - youthfully - - zealously - - zestfully - - zestily diff --git a/docs-linter/styles/Microsoft/Avoid.yml b/docs-linter/styles/Microsoft/Avoid.yml deleted file mode 100644 index dab7822..0000000 --- a/docs-linter/styles/Microsoft/Avoid.yml +++ /dev/null @@ -1,14 +0,0 @@ -extends: existence -message: "Don't use '%s'. See the A-Z word list for details." -# See the A-Z word list -link: https://docs.microsoft.com/en-us/style-guide -ignorecase: true -level: error -tokens: - - abortion - - and so on - - app(?:lication)?s? (?:developer|program) - - app(?:lication)? file - - backbone - - backend - - contiguous selection diff --git a/docs-linter/styles/Microsoft/ComplexWords.yml b/docs-linter/styles/Microsoft/ComplexWords.yml new file mode 100644 index 0000000..5be92d5 --- /dev/null +++ b/docs-linter/styles/Microsoft/ComplexWords.yml @@ -0,0 +1,14 @@ +extends: substitution +message: "Consider using '%s' instead of '%s'" +level: warning +ignorecase: true +# This rule swaps complex words for simpler ones (e.g. utilize -> use) +swap: + utilize: use + utilization: use + facilitate: help + leverage: use + commence: start + terminate: end + subsequently: later + \ No newline at end of file diff --git a/docs-linter/styles/Microsoft/Foreign.yml b/docs-linter/styles/Microsoft/Foreign.yml deleted file mode 100644 index 0d3d600..0000000 --- a/docs-linter/styles/Microsoft/Foreign.yml +++ /dev/null @@ -1,13 +0,0 @@ -extends: substitution -message: "Use '%s' instead of '%s'." -link: https://docs.microsoft.com/en-us/style-guide/word-choice/use-us-spelling-avoid-non-english-words -ignorecase: true -level: error -nonword: true -action: - name: replace -swap: - '\b(?:eg|e\.g\.)[\s,]': for example - '\b(?:ie|i\.e\.)[\s,]': that is - '\b(?:viz\.)[\s,]': namely - '\b(?:ergo)[\s,]': therefore diff --git a/docs-linter/styles/Microsoft/GenderBias.yml b/docs-linter/styles/Microsoft/GenderBias.yml deleted file mode 100644 index fc987b9..0000000 --- a/docs-linter/styles/Microsoft/GenderBias.yml +++ /dev/null @@ -1,42 +0,0 @@ -extends: substitution -message: "Consider using '%s' instead of '%s'." -ignorecase: true -level: error -action: - name: replace -swap: - (?:alumna|alumnus): graduate - (?:alumnae|alumni): graduates - air(?:m[ae]n|wom[ae]n): pilot(s) - anchor(?:m[ae]n|wom[ae]n): anchor(s) - authoress: author - camera(?:m[ae]n|wom[ae]n): camera operator(s) - door(?:m[ae]|wom[ae]n): concierge(s) - draft(?:m[ae]n|wom[ae]n): drafter(s) - fire(?:m[ae]n|wom[ae]n): firefighter(s) - fisher(?:m[ae]n|wom[ae]n): fisher(s) - fresh(?:m[ae]n|wom[ae]n): first-year student(s) - garbage(?:m[ae]n|wom[ae]n): waste collector(s) - lady lawyer: lawyer - ladylike: courteous - mail(?:m[ae]n|wom[ae]n): mail carriers - man and wife: husband and wife - man enough: strong enough - mankind: human kind - manmade: manufactured - manpower: personnel - middle(?:m[ae]n|wom[ae]n): intermediary - news(?:m[ae]n|wom[ae]n): journalist(s) - ombuds(?:man|woman): ombuds - oneupmanship: upstaging - poetess: poet - police(?:m[ae]n|wom[ae]n): police officer(s) - repair(?:m[ae]n|wom[ae]n): technician(s) - sales(?:m[ae]n|wom[ae]n): salesperson or sales people - service(?:m[ae]n|wom[ae]n): soldier(s) - steward(?:ess)?: flight attendant - tribes(?:m[ae]n|wom[ae]n): tribe member(s) - waitress: waiter - woman doctor: doctor - woman scientist[s]?: scientist(s) - work(?:m[ae]n|wom[ae]n): worker(s) diff --git a/docs-linter/styles/Microsoft/GeneralURL.yml b/docs-linter/styles/Microsoft/GeneralURL.yml deleted file mode 100644 index dcef503..0000000 --- a/docs-linter/styles/Microsoft/GeneralURL.yml +++ /dev/null @@ -1,11 +0,0 @@ -extends: existence -message: "For a general audience, use 'address' rather than 'URL'." -link: https://docs.microsoft.com/en-us/style-guide/urls-web-addresses -level: warning -action: - name: replace - params: - - URL - - address -tokens: - - URL diff --git a/docs-linter/styles/Microsoft/HeadingAcronyms.yml b/docs-linter/styles/Microsoft/HeadingAcronyms.yml deleted file mode 100644 index 9dc3b6c..0000000 --- a/docs-linter/styles/Microsoft/HeadingAcronyms.yml +++ /dev/null @@ -1,7 +0,0 @@ -extends: existence -message: "Avoid using acronyms in a title or heading." -link: https://docs.microsoft.com/en-us/style-guide/acronyms#be-careful-with-acronyms-in-titles-and-headings -level: warning -scope: heading -tokens: - - '[A-Z]{2,4}' diff --git a/docs-linter/styles/Microsoft/Passive.yml b/docs-linter/styles/Microsoft/Passive.yml deleted file mode 100644 index 102d377..0000000 --- a/docs-linter/styles/Microsoft/Passive.yml +++ /dev/null @@ -1,183 +0,0 @@ -extends: existence -message: "'%s' looks like passive voice." -ignorecase: true -level: suggestion -raw: - - \b(am|are|were|being|is|been|was|be)\b\s* -tokens: - - '[\w]+ed' - - awoken - - beat - - become - - been - - begun - - bent - - beset - - bet - - bid - - bidden - - bitten - - bled - - blown - - born - - bought - - bound - - bred - - broadcast - - broken - - brought - - built - - burnt - - burst - - cast - - caught - - chosen - - clung - - come - - cost - - crept - - cut - - dealt - - dived - - done - - drawn - - dreamt - - driven - - drunk - - dug - - eaten - - fallen - - fed - - felt - - fit - - fled - - flown - - flung - - forbidden - - foregone - - forgiven - - forgotten - - forsaken - - fought - - found - - frozen - - given - - gone - - gotten - - ground - - grown - - heard - - held - - hidden - - hit - - hung - - hurt - - kept - - knelt - - knit - - known - - laid - - lain - - leapt - - learnt - - led - - left - - lent - - let - - lighted - - lost - - made - - meant - - met - - misspelt - - mistaken - - mown - - overcome - - overdone - - overtaken - - overthrown - - paid - - pled - - proven - - put - - quit - - read - - rid - - ridden - - risen - - run - - rung - - said - - sat - - sawn - - seen - - sent - - set - - sewn - - shaken - - shaven - - shed - - shod - - shone - - shorn - - shot - - shown - - shrunk - - shut - - slain - - slept - - slid - - slit - - slung - - smitten - - sold - - sought - - sown - - sped - - spent - - spilt - - spit - - split - - spoken - - spread - - sprung - - spun - - stolen - - stood - - stridden - - striven - - struck - - strung - - stuck - - stung - - stunk - - sung - - sunk - - swept - - swollen - - sworn - - swum - - swung - - taken - - taught - - thought - - thrived - - thrown - - thrust - - told - - torn - - trodden - - understood - - upheld - - upset - - wed - - wept - - withheld - - withstood - - woken - - won - - worn - - wound - - woven - - written - - wrung diff --git a/docs-linter/styles/Microsoft/Quotes.yml b/docs-linter/styles/Microsoft/Quotes.yml deleted file mode 100644 index 38f4976..0000000 --- a/docs-linter/styles/Microsoft/Quotes.yml +++ /dev/null @@ -1,7 +0,0 @@ -extends: existence -message: 'Punctuation should be inside the quotes.' -link: https://docs.microsoft.com/en-us/style-guide/punctuation/quotation-marks -level: error -nonword: true -tokens: - - '["“][^"”“]+["”][.,]' diff --git a/docs-linter/styles/Microsoft/RangeTime.yml b/docs-linter/styles/Microsoft/RangeTime.yml deleted file mode 100644 index 72d8bbf..0000000 --- a/docs-linter/styles/Microsoft/RangeTime.yml +++ /dev/null @@ -1,13 +0,0 @@ -extends: existence -message: "Use 'to' instead of a dash in '%s'." -link: https://docs.microsoft.com/en-us/style-guide/numbers -nonword: true -level: error -action: - name: edit - params: - - regex - - "[-–]" - - "to" -tokens: - - '\b(?:AM|PM)\s?[-–]\s?.+(?:AM|PM)\b' diff --git a/docs-linter/styles/Microsoft/Semicolon.yml b/docs-linter/styles/Microsoft/Semicolon.yml deleted file mode 100644 index 4d90546..0000000 --- a/docs-linter/styles/Microsoft/Semicolon.yml +++ /dev/null @@ -1,8 +0,0 @@ -extends: existence -message: "Try to simplify this sentence." -link: https://docs.microsoft.com/en-us/style-guide/punctuation/semicolons -nonword: true -scope: sentence -level: suggestion -tokens: - - ';' diff --git a/docs-linter/styles/Microsoft/SentenceLength.yml b/docs-linter/styles/Microsoft/SentenceLength.yml deleted file mode 100644 index f248cf0..0000000 --- a/docs-linter/styles/Microsoft/SentenceLength.yml +++ /dev/null @@ -1,7 +0,0 @@ -extends: occurrence -message: "Try to keep sentences short (< 30 words)." -scope: sentence -level: suggestion -max: 30 -token: \b(\w+)\b - diff --git a/docs-linter/styles/Microsoft/Suspended.yml b/docs-linter/styles/Microsoft/Suspended.yml deleted file mode 100644 index 7282e9c..0000000 --- a/docs-linter/styles/Microsoft/Suspended.yml +++ /dev/null @@ -1,7 +0,0 @@ -extends: existence -message: "Don't use '%s' unless space is limited." -link: https://docs.microsoft.com/en-us/style-guide/punctuation/dashes-hyphens/hyphens -ignorecase: true -level: warning -tokens: - - '\w+- and \w+-' diff --git a/docs-linter/styles/Microsoft/Terms.yml b/docs-linter/styles/Microsoft/Terms.yml deleted file mode 100644 index 65fca10..0000000 --- a/docs-linter/styles/Microsoft/Terms.yml +++ /dev/null @@ -1,42 +0,0 @@ -extends: substitution -message: "Prefer '%s' over '%s'." -# term preference should be based on microsoft style guide, such as -link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/a/adapter -level: warning -ignorecase: true -action: - name: replace -swap: - "(?:agent|virtual assistant|intelligent personal assistant)": personal digital assistant - "(?:assembler|machine language)": assembly language - "(?:drive C:|drive C>|C: drive)": drive C - "(?:internet bot|web robot)s?": bot(s) - "(?:microsoft cloud|the cloud)": cloud - "(?:mobile|smart) ?phone": phone - "24/7": every day - "audio(?:-| )book": audiobook - "back(?:-| )light": backlight - "chat ?bots?": chatbot(s) - adaptor: adapter - administrate: administer - afterwards: afterward - alphabetic: alphabetical - alphanumerical: alphanumeric - an URL: a URL - anti-aliasing: antialiasing - anti-malware: antimalware - anti-spyware: antispyware - anti-virus: antivirus - appendixes: appendices - artificial intelligence: AI - caap: CaaP - conversation-as-a-platform: conversation as a platform - eb: EB - gb: GB - gbps: Gbps - kb: KB - keypress: keystroke - mb: MB - pb: PB - tb: TB - zb: ZB diff --git a/docs-linter/styles/Microsoft/URLFormat.yml b/docs-linter/styles/Microsoft/URLFormat.yml deleted file mode 100644 index 4e24aa5..0000000 --- a/docs-linter/styles/Microsoft/URLFormat.yml +++ /dev/null @@ -1,9 +0,0 @@ -extends: substitution -message: Use 'of' (not 'for') to describe the relationship of the word URL to a resource. -ignorecase: true -link: https://learn.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/u/url -level: suggestion -action: - name: replace -swap: - URL for: URL of diff --git a/docs-linter/styles/Microsoft/Units.yml b/docs-linter/styles/Microsoft/Units.yml deleted file mode 100644 index f062418..0000000 --- a/docs-linter/styles/Microsoft/Units.yml +++ /dev/null @@ -1,16 +0,0 @@ -extends: existence -message: "Don't spell out the number in '%s'." -link: https://docs.microsoft.com/en-us/style-guide/a-z-word-list-term-collections/term-collections/units-of-measure-terms -level: error -raw: - - '[a-zA-Z]+\s' -tokens: - - '(?:centi|milli)?meters' - - '(?:kilo)?grams' - - '(?:kilo)?meters' - - '(?:mega)?pixels' - - cm - - inches - - lb - - miles - - pounds diff --git a/docs-linter/styles/Microsoft/Vocab.yml b/docs-linter/styles/Microsoft/Vocab.yml deleted file mode 100644 index eebe97b..0000000 --- a/docs-linter/styles/Microsoft/Vocab.yml +++ /dev/null @@ -1,25 +0,0 @@ -extends: existence -message: "Verify your use of '%s' with the A-Z word list." -link: 'https://docs.microsoft.com/en-us/style-guide' -level: suggestion -ignorecase: true -tokens: - - above - - accessible - - actionable - - against - - alarm - - alert - - alias - - allows? - - and/or - - as well as - - assure - - author - - avg - - beta - - ensure - - he - - insure - - sample - - she diff --git a/docs-linter/styles/Microsoft/We.yml b/docs-linter/styles/Microsoft/We.yml deleted file mode 100644 index 97c901c..0000000 --- a/docs-linter/styles/Microsoft/We.yml +++ /dev/null @@ -1,11 +0,0 @@ -extends: existence -message: "Try to avoid using first-person plural like '%s'." -link: https://docs.microsoft.com/en-us/style-guide/grammar/person#avoid-first-person-plural -level: warning -ignorecase: true -tokens: - - we - - we'(?:ve|re) - - ours? - - us - - let's diff --git a/docs-linter/styles/Microsoft/meta.json b/docs-linter/styles/Microsoft/meta.json deleted file mode 100644 index 297719b..0000000 --- a/docs-linter/styles/Microsoft/meta.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "feed": "https://github.com/errata-ai/Microsoft/releases.atom", - "vale_version": ">=1.0.0" -} From 513b5750e340f77d627efaa0dacc52e302d2961e Mon Sep 17 00:00:00 2001 From: nicoa Date: Mon, 29 Dec 2025 09:07:03 -0700 Subject: [PATCH 32/33] remove duplicate vale-check --- docs-linter/.github/workflows/vale-check.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs-linter/.github/workflows/vale-check.yml diff --git a/docs-linter/.github/workflows/vale-check.yml b/docs-linter/.github/workflows/vale-check.yml deleted file mode 100644 index e69de29..0000000 From 16462ed016b9b84bd019a204bd70421b9d6b75d0 Mon Sep 17 00:00:00 2001 From: nicoa Date: Mon, 29 Dec 2025 09:08:04 -0700 Subject: [PATCH 33/33] remove disable section since i deleted the rules themselves --- docs-linter/.vale.ini | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/docs-linter/.vale.ini b/docs-linter/.vale.ini index 1878bfd..e0da6c4 100644 --- a/docs-linter/.vale.ini +++ b/docs-linter/.vale.ini @@ -7,20 +7,3 @@ Packages = Microsoft BasedOnStyles = Vale, Microsoft, custom-rules TokenIgnores = (https?://[^\s\)]+), (`.+?`), (\*\*.+?\*\*) BlockIgnores = (?s)(^---\n.*?\n---) - -# Disable noisy Microsoft rules -Microsoft.Accessibility = NO -Microsoft.Gender = NO -Microsoft.GenderBias = NO -Microsoft.Vocab = NO -Microsoft.Acronyms = NO -Microsoft.Foreign = NO -Microsoft.Avoid = NO -Microsoft.Terms = NO -Microsoft.Passive = NO -Microsoft.HeadingAcronyms = NO -Microsoft.GeneralURL = NO -Microsoft.SentenceLength = NO -Microsoft.Adverbs = NO -Microsoft.We = NO -Microsoft.FirstPerson = NO