diff --git a/docs/modelists/channel-modes.csv b/docs/modelists/channel-modes.csv
index 89bf109..d96dc72 100644
--- a/docs/modelists/channel-modes.csv
+++ b/docs/modelists/channel-modes.csv
@@ -48,7 +48,7 @@ owner,,"q (m_customprefix, m_chanprotect)",,y (when enabled),y (when enabled),q,
paranoia,,,,,,,,,,,p*,
permanent,,P (m_permchannels),P,P,P,P,z,,,,,P
private,p,p,p*,p*,p*,p,p,p,p,p*,p*,p
-quiet,,,q,q,q,,,,,,,
+quiet,,(via extban m:),q,q,q,(via extban ~q:),(via extban ~q:),,,,,
redirect,,L (m_redirect),f,f,f,L,L,,,,,
registered,,r (m_services_account),,,,r,R,R,R,,r,r
regmoderated,,M (m_services_account),,,,M,M,M,,,M,M
diff --git a/docs/modelists/channel-modes.html b/docs/modelists/channel-modes.html
index 8682644..d7f3761 100644
--- a/docs/modelists/channel-modes.html
+++ b/docs/modelists/channel-modes.html
@@ -235,7 +235,7 @@ td:first-child, th[scope="row"] {
+p | +p | +p* | +p* | +p* | +p | +p | +p | +p | +p* | +p* | +p |
quiet |
-n/a | n/a | +q | +q | +q | n/a | n/a | n/a | n/a | n/a | n/a | n/a |
+n/a | (via extban m:) | +q | +q | +q | (via extban ~q:) | (via extban ~q:) | n/a | n/a | n/a | n/a | n/a |
redirect |
n/a | +L (m_redirect) | +f | +f | +f | +L | +L | n/a | n/a | n/a | n/a | n/a |
diff --git a/docs/modelists/extbans.csv b/docs/modelists/extbans.csv
index eb6c760..fdf2e4f 100644
--- a/docs/modelists/extbans.csv
+++ b/docs/modelists/extbans.csv
@@ -32,4 +32,4 @@ ban_server,$s:,s:,,
ban_stripcolor,,S:,,
ban_unregistered_mark,,,,~M:
ban_unregistered_matching,,U:,,
-quiet,+q (cmode),m:,~q:,~q:
+quiet,(via cmode +q),m:,~q:,~q:
diff --git a/docs/modelists/extbans.html b/docs/modelists/extbans.html
index cb48d1d..15484ce 100644
--- a/docs/modelists/extbans.html
+++ b/docs/modelists/extbans.html
@@ -179,7 +179,7 @@ td:first-child, th[scope="row"] {
n/a | U: | n/a | n/a |
quiet |
-+q (cmode) | m: | ~q: | ~q: |
+(via cmode +q) | m: | ~q: | ~q: |
diff --git a/docs/modelists/modelists-genhtml.py b/docs/modelists/modelists-genhtml.py
index 57b9be2..8ace53f 100755
--- a/docs/modelists/modelists-genhtml.py
+++ b/docs/modelists/modelists-genhtml.py
@@ -22,18 +22,21 @@ def _write(outf, text):
def _format(articlename, text):
# More formatting
if text:
- if 'modes' in articlename:
- text = '+' + text
- try:
- text, note = text.split(' ', 1)
- except ValueError:
- if text.endswith('*'):
- text = '%s | ' % text
- else:
- text = '%s | ' % text
+ if text.startswith('('):
+ text = '%s | ' % text
else:
- text = '%s
%s' % (text, note)
- text = '%s | ' % text
+ if 'modes' in articlename:
+ text = '+' + text
+ try:
+ text, note = text.split(' ', 1)
+ except ValueError:
+ if text.endswith('*'):
+ text = '%s | ' % text
+ else:
+ text = '%s | ' % text
+ else:
+ text = '%s
%s' % (text, note)
+ text = '%s | ' % text
else:
text = 'n/a | '
return text