« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data/validators.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/data/validators.js')
-rw-r--r--src/data/validators.js13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/data/validators.js b/src/data/validators.js
index efe76fe..718e9c5 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