diff --git a/lib/docs/filters/dart/entries.rb b/lib/docs/filters/dart/entries.rb index b07cc597..f94c451b 100644 --- a/lib/docs/filters/dart/entries.rb +++ b/lib/docs/filters/dart/entries.rb @@ -2,14 +2,28 @@ module Docs class Dart class EntriesFilter < Docs::EntriesFilter def get_name + title = get_title + kind = get_kind + breadcrumbs = at_css('.breadcrumbs').css('li:not(.self-crumb) > a') - breadcrumbs = breadcrumbs.length == 1 ? [] : breadcrumbs.slice(1..-1).map {|node| node.content} + first_part = '' + + if breadcrumbs.length == 2 && !kind.include?('class') + first_part = breadcrumbs[1].content + elsif breadcrumbs.length == 3 + first_part = breadcrumbs[2].content + end - first_part = breadcrumbs.join(':') - separator = first_part.empty? ? '' : ':' - last_part = get_title + separator = '' + unless first_part.empty? + if kind.include?('class') + separator = ':' + else + separator = '.' + end + end - first_part + separator + last_part + first_part + separator + title end def get_type @@ -27,6 +41,18 @@ module Docs at_css('.main-content > h1').content[/(.*)( )/, 1].split(' top-level')[0] end end + + def get_kind + title = at_css('h1.title') + + if not title.nil? + # v1 + title.at_css('.kind').content + else + # v2 + at_css('.main-content > h1').content[/(.*)( )(.+)/, 3] + end + end end end end