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' {