diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2024-02-14 12:03:52 -0400 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2024-02-14 13:35:33 -0400 |
commit | d642e41ed5459b86a55b0db274a93adb2f7d907a (patch) | |
tree | 8652a41fc631ad765cb07ae40fd1a1c08a2f6ace /src/data/validators.js | |
parent | 9b13c1eb3766aeec4be518a755b209d6e0cdfd42 (diff) |
data: detect & report miscapitalization in commentary heading
Diffstat (limited to 'src/data/validators.js')
-rw-r--r-- | src/data/validators.js | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/data/validators.js b/src/data/validators.js index efe76fe0..718e9c57 100644 --- a/src/data/validators.js +++ b/src/data/validators.js @@ -5,7 +5,8 @@ import printable_characters from 'printable-characters'; const {strlen} = printable_characters; import {colors, ENABLE_COLOR} from '#cli'; -import {commentaryRegex} from '#wiki-data'; +import {commentaryRegexCaseInsensitive, commentaryRegexCaseSensitive} + from '#wiki-data'; import { cut, @@ -302,7 +303,7 @@ export function isCommentary(commentaryText) { isContentString(commentaryText); const rawMatches = - Array.from(commentaryText.matchAll(commentaryRegex)); + Array.from(commentaryText.matchAll(commentaryRegexCaseInsensitive)); if (empty(rawMatches)) { throw new TypeError(`Expected at least one commentary heading`); @@ -332,6 +333,14 @@ export function isCommentary(commentaryText) { `(Check for missing "|-" in YAML, or a misshapen annotation)`); } + commentaryRegexCaseSensitive.lastIndex = 0; + if (!commentaryRegexCaseSensitive.test(ownInput)) { + throw new TypeError( + `Miscapitalization in commentary heading:\n` + + `${colors.red(`"${cut(ownInput, 60)}"`)}\n` + + `(Check for ${colors.red(`"<I>"`)} instead of ${colors.green(`"<i>"`)})`); + } + const nextHeading = (index === niceMatches.length - 1 ? commentaryText.length |