diff --git a/cmd/tools/vdoc/html.v b/cmd/tools/vdoc/html.v
index 11b385839d606d..a963f8f3760b0f 100644
--- a/cmd/tools/vdoc/html.v
+++ b/cmd/tools/vdoc/html.v
@@ -210,13 +210,14 @@ fn (vd VDoc) gen_html(d doc.Doc) string {
}
// write nav1
if cfg.is_multi || vd.docs.len > 1 {
- mut submod_prefix := ''
+ mut used_submod_prefix := []string{}
for i, dc in vd.docs {
- if i - 1 >= 0 && dc.head.name.starts_with(submod_prefix + '.') {
+ names := dc.head.name.split('.')
+ submod_prefix := if names.len > 1 { names[0] } else { dc.head.name }
+ if i - 1 >= 0 && submod_prefix in used_submod_prefix {
continue
}
- names := dc.head.name.split('.')
- submod_prefix = if names.len > 1 { names[0] } else { dc.head.name }
+ used_submod_prefix << submod_prefix
mut href_name := './${dc.head.name}.html'
if (cfg.is_vlib && dc.head.name == 'builtin' && !cfg.include_readme)
|| dc.head.name == 'README' {