diff --git a/cmd/tools/vdoc.v b/cmd/tools/vdoc.v index 4123f1d963..66c0a9dcec 100644 --- a/cmd/tools/vdoc.v +++ b/cmd/tools/vdoc.v @@ -385,7 +385,11 @@ fn doc_node_html(dd doc.DocNode, link string, head bool, tb &table.Table) string hash_link := if !head { ' #' } else { '' } dnw.writeln('
') if dd.name.len > 0 { - dnw.write('
<$head_tag>$sym_name$hash_link') + if dd.kind == .const_group { + dnw.write('
<$head_tag>$sym_name$hash_link') + } else { + dnw.write('
<$head_tag>$dd.kind $sym_name$hash_link') + } if link.len != 0 { dnw.write('$link_svg') } @@ -412,19 +416,21 @@ fn (cfg DocConfig) readme_idx() int { return -1 } -fn write_toc(cn doc.DocNode, nodes []doc.DocNode, mut toc strings.Builder) { - mut toc_slug := if cn.name.len == 0 || cn.content.len == 0 { '' } else { slug(cn.name) } - if toc_slug == '' && cn.children.len > 0 { - toc_slug = slug(cn.name + '.' + cn.children[0].name) +fn write_toc(dn doc.DocNode, nodes []doc.DocNode, mut toc strings.Builder) { + mut toc_slug := if dn.name.len == 0 || dn.content.len == 0 { '' } else { slug(dn.name) } + if toc_slug == '' && dn.children.len > 0 { + toc_slug = slug(dn.name + '.' + dn.children[0].name) } - toc.write('
  • $cn.name') - if cn.name != 'Constants' { + if dn.name != 'Constants' { + toc.write('
  • $dn.kind $dn.name') toc.writeln('
      ') - for child in cn.children { - cname := cn.name + '.' + child.name - toc.writeln('
    • $child.name
    • ') + for child in dn.children { + cname := dn.name + '.' + child.name + toc.writeln('
    • $child.kind $child.name
    • ') } toc.writeln('
    ') + } else { + toc.write('
  • $dn.name') } toc.writeln('
  • ') } diff --git a/vlib/v/doc/doc.v b/vlib/v/doc/doc.v index d8d993925b..d9c0187082 100644 --- a/vlib/v/doc/doc.v +++ b/vlib/v/doc/doc.v @@ -28,6 +28,18 @@ pub enum SymbolKind { struct_field } +pub fn (sk SymbolKind) str() string { + return match sk { + .const_group { 'Constants' } + .function, .method { 'fn' } + .interface_ { 'interface' } + .typedef { 'type' } + .enum_ { 'enum' } + .struct_ { 'struct' } + else { '' } + } +} + pub struct Doc { prefs &pref.Preferences = new_vdoc_preferences() pub mut: