diff --git a/src/etc/htmldocck.py b/src/etc/htmldocck.py
index 440181a7611cb..2f7233685db52 100644
--- a/src/etc/htmldocck.py
+++ b/src/etc/htmldocck.py
@@ -218,7 +218,7 @@ def concat_multi_lines(f):
LINE_PATTERN = re.compile(r'''
- (?<=(?!?)
+ (?<=(?!?)@(?P!?)
(?P[A-Za-z]+(?:-[A-Za-z]+)*)
(?P.*)$
''', re.X | re.UNICODE)
@@ -233,6 +233,16 @@ def get_commands(template):
negated = (m.group('negated') == '!')
cmd = m.group('cmd')
+ if m.group('invalid') == '!':
+ print_err(
+ lineno,
+ line,
+ 'Invalid command: `!@{0}{1}`, (help: try with `@!{1}`)'.format(
+ '!' if negated else '',
+ cmd,
+ ),
+ )
+ continue
args = m.group('args')
if args and not args[:1].isspace():
print_err(lineno, line, 'Invalid template syntax')