From 882a5c413b3a0413824761e5577e0ad41d204e2e Mon Sep 17 00:00:00 2001 From: secondskoll Date: Tue, 3 Feb 2026 12:52:01 +1000 Subject: [PATCH 1/8] feat: fix #153 --- .../Canonical/005-Industry-product-names.yml | 5 ++- .../Canonical/007-Headings-sentence-case.yml | 2 +- .../013-Spell-out-numbers-below-10.yml | 2 +- ...er-than-nine-should-be-in-numeric-form.yml | 2 +- ...more-digits-must-have-comma-separators.yml | 2 +- .../Canonical/019-no-google-drive-images.yml | 2 +- tests/data/manifest.yml | 40 +++++++++++++++---- vale.ini | 12 +++--- 8 files changed, 46 insertions(+), 21 deletions(-) diff --git a/styles/Canonical/005-Industry-product-names.yml b/styles/Canonical/005-Industry-product-names.yml index d2a2866..bdce374 100644 --- a/styles/Canonical/005-Industry-product-names.yml +++ b/styles/Canonical/005-Industry-product-names.yml @@ -2,7 +2,7 @@ extends: substitution message: "Use '%s' instead of '%s'" link: https://docs.ubuntu.com/styleguide/en/#other-commonly-referenced-products/projects ignorecase: true -level: error +level: warning scope: - sentence - list @@ -20,7 +20,8 @@ swap: Mysql : 'MySQL' docker : 'Docker' KubeFlow : 'Kubeflow' - Google cloud : 'Google Cloud Platform' + Google cloud platform : 'Google Cloud Platform' + Google cloud(?! platform) : 'Google Cloud Platform' Influxdb : 'InfluxDB' mattermost : 'Mattermost' diff --git a/styles/Canonical/007-Headings-sentence-case.yml b/styles/Canonical/007-Headings-sentence-case.yml index 67ea6da..19a5fbf 100644 --- a/styles/Canonical/007-Headings-sentence-case.yml +++ b/styles/Canonical/007-Headings-sentence-case.yml @@ -2,6 +2,6 @@ extends: capitalization # Fork of Google style guide rule message: "'%s' should use sentence-style capitalisation." link: "https://docs.ubuntu.com/styleguide/en/#sentence-case" -level: error +level: warning scope: heading match: $sentence diff --git a/styles/Canonical/013-Spell-out-numbers-below-10.yml b/styles/Canonical/013-Spell-out-numbers-below-10.yml index a265b00..0a32be9 100644 --- a/styles/Canonical/013-Spell-out-numbers-below-10.yml +++ b/styles/Canonical/013-Spell-out-numbers-below-10.yml @@ -7,7 +7,7 @@ scope: - sentence - table.header - table.cell -level: warning +level: suggestion swap: (?' diff --git a/tests/data/manifest.yml b/tests/data/manifest.yml index 9b8ef32..ed67e3c 100644 --- a/tests/data/manifest.yml +++ b/tests/data/manifest.yml @@ -108,14 +108,38 @@ rules: - SnapD - pro severity: error - # 005-Industry-product-names: - # cases: - # - id: valid - # filetypes: [md, rst] - # content: - # expect: - # triggers: - # severity: + 005-Industry-product-names: + cases: + - id: valid + filetypes: [md, rst] + content: | + nVidia should be 'NVIDIA' + Openstack should be 'OpenStack' + Postgresql should be 'PostgreSQL' + Kuberentes should be 'Kubernetes' + Aws should be 'AWS' + Mysql should be 'MySQL' + docker should be 'Docker' + KubeFlow should be 'Kubeflow' + Google cloud platform should be 'Google Cloud Platform' + Google cloud should be 'Google Cloud Platform' + Influxdb should be 'InfluxDB' + mattermost should be 'Mattermost' + expect: + triggers: + - nVidia + - Openstack + - Postgresql + - Kuberentes + - Aws + - Mysql + - docker + - KubeFlow + - Google cloud platform + - Google cloud + - Influxdb + - mattermost + severity: warning 006-Contractions-forbidden: cases: - id: contractions-forbidden diff --git a/vale.ini b/vale.ini index 5b06de5..984acdc 100644 --- a/vale.ini +++ b/vale.ini @@ -11,21 +11,21 @@ BasedOnStyles = Canonical Canonical.000-US-spellcheck = error Canonical.003-Ubuntu-names-versions = error -Canonical.005-Industry-product-names = error +Canonical.005-Industry-product-names = warning Canonical.006-Contractions-forbidden = warning -Canonical.007-Headings-sentence-case = error +Canonical.007-Headings-sentence-case = warning Canonical.008-Headings-no-period = warning Canonical.009-Headings-no-links = warning Canonical.010-Punctuation-double-spaces = warning Canonical.012-Date-format = warning -Canonical.013-Spell-out-numbers-below-10 = warning -Canonical.014a-Numbers-greater-than-nine-should-be-in-numeric-form = suggest -Canonical.014b-Numbers-with-five-or-more-digits-must-have-comma-separators = suggest +Canonical.013-Spell-out-numbers-below-10 = suggestion +Canonical.014a-Numbers-greater-than-nine-should-be-in-numeric-form = suggestion +Canonical.014b-Numbers-with-five-or-more-digits-must-have-comma-separators = suggestion Canonical.015-No-prompts-in-comments = warning Canonical.016-No-inline-comments = warning Canonical.017-Avoid-long-code-blocks = warning Canonical.019-no-google-drive-images = error -Canonical.025b-latinisms-to-reconsider = suggest +Canonical.025b-latinisms-to-reconsider = suggestion Canonical.025c-latinisms-to-avoid = warning Canonical.400-Enforce-inclusive-terms = error Canonical.500-Repeated-words = warning From 8d269cad493b222f754e870e60a8a21b1a5f244e Mon Sep 17 00:00:00 2001 From: secondskoll Date: Tue, 3 Feb 2026 14:43:31 +1000 Subject: [PATCH 2/8] fix: rule 010 and add tests --- .../010-Punctuation-double-spaces.yml | 5 ++-- tests/data/manifest.yml | 25 +++++++++++++------ 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/styles/Canonical/010-Punctuation-double-spaces.yml b/styles/Canonical/010-Punctuation-double-spaces.yml index f6e8c19..6f8ca2a 100644 --- a/styles/Canonical/010-Punctuation-double-spaces.yml +++ b/styles/Canonical/010-Punctuation-double-spaces.yml @@ -5,11 +5,10 @@ message: "'%s' should have one space." link: level: warning scope: - - sentence - - list + - raw nonword: true tokens: - - '[a-z][.?!] {2,}[A-Z]' + - '[.?!] {2,}(?=\n)' # Reasoning: # We appreciate that you may have been taught to put two spaces after a diff --git a/tests/data/manifest.yml b/tests/data/manifest.yml index ed67e3c..04043b4 100644 --- a/tests/data/manifest.yml +++ b/tests/data/manifest.yml @@ -196,14 +196,23 @@ rules: # expect: # triggers: # severity: - # 010-Punctuation-double-spaces: - # cases: - # - id: valid - # filetypes: [md, rst] - # content: - # expect: - # triggers: - # severity: + 010-Punctuation-double-spaces: + cases: + - id: valid + filetypes: [md, rst] + content: | + Two spaces after a sentence. Is fine if it isn't EOL. + Two spaces after EOL is bad. + This will be fine though. + How about this? + This is also bad! + And this is fine? + expect: + triggers: + - '. ' + - '? ' + - '! ' + severity: warning # 012-Date-format: # cases: # - id: valid From 7858ff59db14ec4a465e8faf3647d29b99f98745 Mon Sep 17 00:00:00 2001 From: secondskoll Date: Tue, 3 Feb 2026 15:12:48 +1000 Subject: [PATCH 3/8] fix: latinism rules level, efficacy, add tests --- ...25a-latinisms-with-english-equivalents.yml | 19 +-- .../025b-latinisms-to-reconsider.yml | 4 +- styles/Canonical/025c-latinisms-to-avoid.yml | 2 +- tests/data/manifest.yml | 138 +++++++++++++++--- vale.ini | 5 +- 5 files changed, 131 insertions(+), 37 deletions(-) diff --git a/styles/Canonical/025a-latinisms-with-english-equivalents.yml b/styles/Canonical/025a-latinisms-with-english-equivalents.yml index b1e6aef..2cb2e18 100644 --- a/styles/Canonical/025a-latinisms-with-english-equivalents.yml +++ b/styles/Canonical/025a-latinisms-with-english-equivalents.yml @@ -1,16 +1,13 @@ +# 025 - Latinisms that have English equivalents + extends: substitution message: "Instead of '%[2]s', use %[1]s." link: https://docs.ubuntu.com/styleguide/en#latin-words-and-phrases -level: error -scope: - - sentence - - list - - heading - - table.header - - table.cell +level: suggestion +nonword: true ignorecase: true -swap: # Multiple word terms need to use "this\\sword" to match properly - "a\\spriori": "'self-evident', 'presupposed', 'presumed', or 'assumed'" +swap: + \ba\spriori\b: "'self-evident', 'presupposed', 'presumed', or 'assumed'" \bad\shoc\b: "'unscheduled', 'unexpected', 'improvised', 'temporary', or 'bespoke'" \bad\sinfinitum\b: "'and so on', 'to the fullest extent', or 'recursively'" \bcf\.?\b: "'refer to'" @@ -24,7 +21,6 @@ swap: # Multiple word terms need to use "this\\sword" to match properly \b(?:id\sest\b|ie\b|i\.e\.(?!\w)|i\.e(?![\.\w])): "'that is' or 'in other words'" \bin\ssitu\b: "'in place'" \b(?:nota\sbene\b|nb\b|n\.b\.(?!\w)|n\.b(?![\.\w])): "'note', 'notice', 'observe', 'pay attention to', or 'keep your eye on'" - \bper\b: "'each', 'every', or 'according to'" \bper\sdiem\b: "'every day'" \bper\scapita\b: "'every/each person'" \bper\sse\b: "'necessarily' or 'intrinsically'" @@ -34,6 +30,5 @@ swap: # Multiple word terms need to use "this\\sword" to match properly \bstatus\squo\b: "'state' or 'state of things'" \bverbatim\b: "'exact words', 'exactly'" \b(?:versus|vs\.(?!\w)|vs(?![\.\w])): "'compared to/with' or 'opposed to'" - \bvia\b: "'through', 'with', or 'using'" \bvice\sversa\b: "'the reverse' or 'the other way around'" - \b(?:viz\.(?!\w)|viz(?![\w\.])): "'specifically' or 'namely'" \ No newline at end of file + \b(viz\.(?!\w)|viz(?![\w\.])): "'specifically' or 'namely'" \ No newline at end of file diff --git a/styles/Canonical/025b-latinisms-to-reconsider.yml b/styles/Canonical/025b-latinisms-to-reconsider.yml index eb8dd74..f0663ec 100644 --- a/styles/Canonical/025b-latinisms-to-reconsider.yml +++ b/styles/Canonical/025b-latinisms-to-reconsider.yml @@ -1,7 +1,7 @@ # 025 - Latinisms that we strongly advise against extends: existence -message: Instead of 'a.m.', 'AM', 'p.m.', and 'PM', use 24-hour time. +message: Use 24-hour time instead of 'AM', or 'PM', . link: https://docs.ubuntu.com/styleguide/en#latin-words-and-phrases level: suggestion scope: @@ -12,4 +12,4 @@ scope: - table.cell nonword: true tokens: - - '\b[1|2]?:?\d?\d\s?(?:[AaPp]\.?[Mm]\.?)(?!\w+\b|\.)' \ No newline at end of file + - '\b[1|2]?\d?:?\d?\d\s?(?:[AaPp]\.?[Mm]\.?)\b' \ No newline at end of file diff --git a/styles/Canonical/025c-latinisms-to-avoid.yml b/styles/Canonical/025c-latinisms-to-avoid.yml index 8323c9b..632c948 100644 --- a/styles/Canonical/025c-latinisms-to-avoid.yml +++ b/styles/Canonical/025c-latinisms-to-avoid.yml @@ -3,7 +3,7 @@ extends: existence message: "Don't use academic Latin terms like 'a posteriori', 'et al', and 'stet'." link: https://docs.ubuntu.com/styleguide/en#latin-words-and-phrases -level: warning +level: suggestion scope: - sentence - list diff --git a/tests/data/manifest.yml b/tests/data/manifest.yml index 04043b4..fd2d324 100644 --- a/tests/data/manifest.yml +++ b/tests/data/manifest.yml @@ -272,31 +272,129 @@ rules: # severity: 025a-latinisms-with-english-equivalents: cases: - - id: latin-terms - filetypes: [rst] + - id: latin-terms-with-substitutions + filetypes: [md, rst] content: | - This is a priori. Ergo this is also an issue. + This is a priori knowledge that we can use. + We created an ad hoc solution for the problem. + The loop continues ad infinitum until stopped. + Please refer to cf. the documentation. + There is a caveat to consider here. + The system was built circa 2020. + It became the de facto standard. + Ergo, we must take action. + You can use Python, Java, etc. in this course. + We support multiple languages, e.g. Python and Go. + The service is provided gratis to all users. + This is the core principle, i.e. the most important one. + The data remains in situ for processing. + Please note (n.b.) this important point. + The cost is $50 per diem. + The budget is $100 per capita. + This is not wrong per se, but could be improved. + She provides pro bono legal services. + We must add a proviso to the contract. + Each stanza in the configuration file defines a section. + We want to maintain the status quo. + Copy the text verbatim into the file. + This is Linux vs. Windows comparison. + The reverse is also true, vice versa. + We need three specific items, viz. CPU, RAM, and storage. expect: triggers: - a priori + - ad hoc + - ad infinitum + - cf + - caveat + - circa + - de facto + - etc - Ergo - severity: error - # 025b-latinisms-to-reconsider: - # cases: - # - id: valid - # filetypes: [md, rst] - # content: - # expect: - # triggers: - # severity: - # 025c-latinisms-to-avoid: - # cases: - # - id: valid - # filetypes: [md, rst] - # content: - # expect: - # triggers: - # severity: + - e.g. + - gratis + - i.e. + - in situ + - n.b. + - per diem + - per capita + - per se + - pro bono + - proviso + - stanza + - status quo + - verbatim + - vs. + - vice versa + - viz. + severity: suggestion + - id: clean-text + filetypes: [md, rst] + content: | + This is self-evident and we can proceed. + We created a temporary solution for the problem. + For example, you can use Python or Go. + That is the most important principle. + expect: + triggers: [] + 025b-latinisms-to-reconsider: + cases: + - id: time-format-ampm + filetypes: [md, rst] + content: | + The meeting is at 3:00 PM today. + We start at 9:30 AM tomorrow. + The server restarts at 2:00 am daily. + Please arrive by 11:45 pm. + The event runs from 10 AM to 4 PM. + Set your alarm for 6:30am. + expect: + triggers: + - 3:00 PM + - 9:30 AM + - 2:00 am + - 11:45 pm + - 10 AM + - 4 PM + - 6:30am + severity: suggestion + - id: clean-time-format + filetypes: [md, rst] + content: | + The meeting is at 15:00 today. + We start at 09:30 tomorrow. + The server restarts at 02:00 daily. + The event runs from 10:00 to 16:00. + expect: + triggers: [] + 025c-latinisms-to-avoid: + cases: + - id: academic-latin-terms + filetypes: [md, rst] + content: | + This is based on a posteriori reasoning. + The argument continues ad nauseum. + As shown by Smith et al. in their paper. + The same method was used (ibid). + The text contains an error [sic]. + Let the correction stet as written. + expect: + triggers: + - a posteriori + - ad nauseum + - et al + - ibid + - sic + - stet + severity: suggestion + - id: clean-academic-text + filetypes: [md, rst] + content: | + This is based on empirical evidence. + The argument continues excessively. + As shown by Smith and colleagues in their paper. + expect: + triggers: [] # 400-Enforce-inclusive-terms: # cases: # - id: valid diff --git a/vale.ini b/vale.ini index 984acdc..f8c5796 100644 --- a/vale.ini +++ b/vale.ini @@ -1,5 +1,5 @@ StylesPath = styles -MinAlertLevel = warning +MinAlertLevel = suggestion Vocab = Canonical IgnoredClasses = woke-ignore, vale-ignore @@ -25,8 +25,9 @@ Canonical.015-No-prompts-in-comments = warning Canonical.016-No-inline-comments = warning Canonical.017-Avoid-long-code-blocks = warning Canonical.019-no-google-drive-images = error +Canonical.025a-latinisms-with-english-equivalents = suggestion Canonical.025b-latinisms-to-reconsider = suggestion -Canonical.025c-latinisms-to-avoid = warning +Canonical.025c-latinisms-to-avoid = suggestion Canonical.400-Enforce-inclusive-terms = error Canonical.500-Repeated-words = warning From 4fb5cf2135bbfa541287c045a5cd0303fd209f47 Mon Sep 17 00:00:00 2001 From: secondskoll Date: Tue, 3 Feb 2026 15:51:20 +1000 Subject: [PATCH 4/8] fix: use EOL token --- styles/Canonical/010-Punctuation-double-spaces.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/styles/Canonical/010-Punctuation-double-spaces.yml b/styles/Canonical/010-Punctuation-double-spaces.yml index 6f8ca2a..f886a1f 100644 --- a/styles/Canonical/010-Punctuation-double-spaces.yml +++ b/styles/Canonical/010-Punctuation-double-spaces.yml @@ -8,7 +8,7 @@ scope: - raw nonword: true tokens: - - '[.?!] {2,}(?=\n)' + - '[.?!] {2,}$' # Reasoning: # We appreciate that you may have been taught to put two spaces after a From 42f8e27f1958cab991490ad782867614f9025620 Mon Sep 17 00:00:00 2001 From: secondskoll Date: Tue, 3 Feb 2026 15:54:11 +1000 Subject: [PATCH 5/8] feat: fix #148 --- styles/Canonical/008-Headings-no-period.yml | 6 +-- tests/data/manifest.yml | 43 +++++++++++++++++---- 2 files changed, 38 insertions(+), 11 deletions(-) diff --git a/styles/Canonical/008-Headings-no-period.yml b/styles/Canonical/008-Headings-no-period.yml index 9ae9f0a..2901e52 100644 --- a/styles/Canonical/008-Headings-no-period.yml +++ b/styles/Canonical/008-Headings-no-period.yml @@ -4,12 +4,12 @@ extends: existence message: "Don't use end punctuation in headings." link: https://docs.ubuntu.com/styleguide/en#headings nonword: true -level: warning +level: suggestion scope: heading action: name: edit params: - remove - - '.' + - '[.!?,]' tokens: - - '[a-z0-9][.](?:\s|$)' \ No newline at end of file + - '[.!?,](?:\s|$)' \ No newline at end of file diff --git a/tests/data/manifest.yml b/tests/data/manifest.yml index fd2d324..3e83dd4 100644 --- a/tests/data/manifest.yml +++ b/tests/data/manifest.yml @@ -180,14 +180,41 @@ rules: # expect: # triggers: # severity: - # 008-Headings-no-period: - # cases: - # - id: valid - # filetypes: [md, rst] - # content: - # expect: - # triggers: - # severity: + 008-Headings-no-period: + cases: + - id: MD-headings + filetypes: [md] + content: | + # This is a heading. + ## Another heading! + ### Yet another heading? + #### Heading without punctuation + expect: + triggers: + - '.' + - '!' + - '?' + severity: suggestion + - id: RST-headings + filetypes: [rst] + content: | + Some heading. + ************* + + Another heading! + ################ + + Yet another heading? + ******************** + + Heading without punctuation + ########################### + expect: + triggers: + - '.' + - '!' + - '?' + severity: suggestion # 009-Headings-no-links: # cases: # - id: valid From 95d5d422999c85bee43eee30d1f92a31ae8810f1 Mon Sep 17 00:00:00 2001 From: secondskoll Date: Tue, 3 Feb 2026 16:44:05 +1000 Subject: [PATCH 6/8] fix: #146, add tests, adjust level --- styles/Canonical/016-No-inline-comments.yml | 10 +-- tests/data/manifest.yml | 87 +++++++++++++++++++-- vale.ini | 2 +- 3 files changed, 85 insertions(+), 14 deletions(-) diff --git a/styles/Canonical/016-No-inline-comments.yml b/styles/Canonical/016-No-inline-comments.yml index 5f77f05..6a76579 100644 --- a/styles/Canonical/016-No-inline-comments.yml +++ b/styles/Canonical/016-No-inline-comments.yml @@ -2,9 +2,9 @@ extends: existence message: "Avoid inline comments in code blocks." scope: raw nonword: true -level: warning +level: suggestion tokens: - - ^```[^\n\{\}]*\n(([^\n`][^\n#]*\n|\n))*([^\n#]+ +#.*\n)+([^\n`]*\n)*``` - - ^```[^\n\{\}]*\n([^\n`][^\n]*\n|\n)*([^\n\/][^\n\/]+ +\/\/.*\n)+([^\n`]*\n)*``` - - '\.\. (code-block|code|sourcecode)::.*\n( {3,}:\w+:\n)*(\s+.* +#.*\n)+' - - '\.\. (code-block|code|sourcecode)::.*\n( {3,}:\w+:\n)*(\s+.* +\/\/.*\n)+' + - ^```[^\n\{\}]*\n(([^\n`][^\n#]*\n|\n))*([^\n#]+ +#.*\n)+([^\n`]*\n)*```$ + - ^```[^\n\{\}]*\n([^\n`][^\n]*\n|\n)*([^\n\/][^\n\/]+ +\/\/.*\n)+([^\n`]*\n)*```$ + - '\.\. (?:code-block|code|sourcecode):: ?.*\n(?: {3,}:\w+:\n)*(?:\n| {3,}[^\n#]+\n)*( {3,}[^\n]*#[^\n]*\n)(?:\n| {3,}[^\n#]+\n)*' + - '\.\. (?:code-block|code|sourcecode):: ?.*\n(?: {3,}:\w+:\n)*(?:\n| {3,}[^\n\/\/]+\n)*( {3,}[^\n]*\/\/[^\n]*\n)(?:\n| {3,}[^\n\/\/]+\n)*' diff --git a/tests/data/manifest.yml b/tests/data/manifest.yml index 3e83dd4..bb80923 100644 --- a/tests/data/manifest.yml +++ b/tests/data/manifest.yml @@ -280,14 +280,85 @@ rules: # expect: # triggers: # severity: - # 016-No-inline-comments: - # cases: - # - id: valid - # filetypes: [md, rst] - # content: - # expect: - # triggers: - # severity: + 016-No-inline-comments: + cases: + - id: md-hash-comments + filetypes: [md] + content: | + Here is some code with inline comments: + + ```python + def calculate(): + result = 42 # This is the answer + return result # Return the value + ``` + expect: + triggers: + - |- + ```python + def calculate(): + result = 42 # This is the answer + return result # Return the value + ``` + severity: suggestion + - id: md-slash-comments + filetypes: [md] + content: | + Here is some JavaScript with inline comments: + + ```javascript + function process() { + let value = 10; // Initialize value + return value * 2; // Double it + } + ``` + expect: + triggers: + - |- + ```javascript + function process() { + let value = 10; // Initialize value + return value * 2; // Double it + } + ``` + severity: suggestion + - id: rst-hash-comments + filetypes: [rst] + content: | + Here is some code with inline comments. + + .. code-block:: python + + def calculate(): + result = 42 # This is the answer + return result # Return the value + expect: + triggers: + - | + .. code-block:: python + + def calculate(): + result = 42 # This is the answer + severity: suggestion + - id: rst-slash-comments + filetypes: [rst] + content: | + Here is some JavaScript with inline comments. + + .. code-block:: javascript + + function process() { + let value = 10; // Initialize value + return value * 2; // Double it + } + expect: + triggers: + - | + .. code-block:: javascript + + function process() { + let value = 10; // Initialize value + severity: suggestion # For 017, see the end of this file, as the content is long. # 019-no-google-drive-images: # cases: diff --git a/vale.ini b/vale.ini index f8c5796..7439311 100644 --- a/vale.ini +++ b/vale.ini @@ -22,7 +22,7 @@ Canonical.013-Spell-out-numbers-below-10 = suggestion Canonical.014a-Numbers-greater-than-nine-should-be-in-numeric-form = suggestion Canonical.014b-Numbers-with-five-or-more-digits-must-have-comma-separators = suggestion Canonical.015-No-prompts-in-comments = warning -Canonical.016-No-inline-comments = warning +Canonical.016-No-inline-comments = suggestion Canonical.017-Avoid-long-code-blocks = warning Canonical.019-no-google-drive-images = error Canonical.025a-latinisms-with-english-equivalents = suggestion From a1d4fed0ac5c9bfe06b746701a6ea210adea7c64 Mon Sep 17 00:00:00 2001 From: secondskoll Date: Tue, 3 Feb 2026 16:46:45 +1000 Subject: [PATCH 7/8] chore: fix file endings --- styles/Canonical/008-Headings-no-period.yml | 2 +- styles/Canonical/025a-latinisms-with-english-equivalents.yml | 2 +- styles/Canonical/025b-latinisms-to-reconsider.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/styles/Canonical/008-Headings-no-period.yml b/styles/Canonical/008-Headings-no-period.yml index 2901e52..601e820 100644 --- a/styles/Canonical/008-Headings-no-period.yml +++ b/styles/Canonical/008-Headings-no-period.yml @@ -12,4 +12,4 @@ action: - remove - '[.!?,]' tokens: - - '[.!?,](?:\s|$)' \ No newline at end of file + - '[.!?,](?:\s|$)' diff --git a/styles/Canonical/025a-latinisms-with-english-equivalents.yml b/styles/Canonical/025a-latinisms-with-english-equivalents.yml index 2cb2e18..d231d2b 100644 --- a/styles/Canonical/025a-latinisms-with-english-equivalents.yml +++ b/styles/Canonical/025a-latinisms-with-english-equivalents.yml @@ -31,4 +31,4 @@ swap: \bverbatim\b: "'exact words', 'exactly'" \b(?:versus|vs\.(?!\w)|vs(?![\.\w])): "'compared to/with' or 'opposed to'" \bvice\sversa\b: "'the reverse' or 'the other way around'" - \b(viz\.(?!\w)|viz(?![\w\.])): "'specifically' or 'namely'" \ No newline at end of file + \b(viz\.(?!\w)|viz(?![\w\.])): "'specifically' or 'namely'" diff --git a/styles/Canonical/025b-latinisms-to-reconsider.yml b/styles/Canonical/025b-latinisms-to-reconsider.yml index f0663ec..3edc9c6 100644 --- a/styles/Canonical/025b-latinisms-to-reconsider.yml +++ b/styles/Canonical/025b-latinisms-to-reconsider.yml @@ -12,4 +12,4 @@ scope: - table.cell nonword: true tokens: - - '\b[1|2]?\d?:?\d?\d\s?(?:[AaPp]\.?[Mm]\.?)\b' \ No newline at end of file + - '\b[1|2]?\d?:?\d?\d\s?(?:[AaPp]\.?[Mm]\.?)\b' From a56b5971ec33ffcf3c44726d6915297a48ff7a40 Mon Sep 17 00:00:00 2001 From: secondskoll Date: Tue, 3 Feb 2026 16:52:11 +1000 Subject: [PATCH 8/8] chore: adjust severity level of rule 008 --- vale.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vale.ini b/vale.ini index 7439311..1fde99d 100644 --- a/vale.ini +++ b/vale.ini @@ -14,7 +14,7 @@ Canonical.003-Ubuntu-names-versions = error Canonical.005-Industry-product-names = warning Canonical.006-Contractions-forbidden = warning Canonical.007-Headings-sentence-case = warning -Canonical.008-Headings-no-period = warning +Canonical.008-Headings-no-period = suggestion Canonical.009-Headings-no-links = warning Canonical.010-Punctuation-double-spaces = warning Canonical.012-Date-format = warning