Skip to content

Improve display text for libraries #3552

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Nov 2, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions lib/src/element_type.dart
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,12 @@ abstract class ElementType
/// Name with generics and nullability indication.
String get nameWithGenerics;

@override
String get displayName => throw UnimplementedError();

@override
String get breadcrumbName => throw UnimplementedError();

DartType get instantiatedType;

Iterable<ElementType> get typeArguments;
Expand Down
2 changes: 1 addition & 1 deletion lib/src/generator/generator_frontend.dart
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ class GeneratorFrontEnd implements Generator {

for (var lib in filterNonDocumented(package.libraries)) {
if (!multiplePackages) {
logInfo('Generating docs for library ${lib.name} from '
logInfo('Generating docs for library ${lib.breadcrumbName} from '
'${lib.element.source.uri}...');
}
if (!lib.isAnonymous && !lib.hasDocumentation) {
Expand Down
109 changes: 77 additions & 32 deletions lib/src/generator/template_data.dart
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,11 @@ abstract class TemplateData<T extends Documentable> extends TemplateDataBase {

String? get belowSidebarPath => self.belowSidebarPath;

String _layoutTitle(String name, String kind, {required bool isDeprecated}) =>
String _layoutTitle(
String name, {
String? kind,
bool isDeprecated = false,
}) =>
_packageGraph.rendererFactory.templateRenderer
.composeLayoutTitle(name, kind, isDeprecated);
}
Expand Down Expand Up @@ -136,8 +140,11 @@ class PackageTemplateData extends TemplateData<Package> {
Package get self => package;

@override
String get layoutTitle =>
_layoutTitle(package.name, package.kind.toString(), isDeprecated: false);
String get layoutTitle => _layoutTitle(
package.name,
kind: package.kind.toString(),
);

@override
String get metaDescription =>
'${package.name} API docs, for the Dart programming language.';
Expand Down Expand Up @@ -183,9 +190,10 @@ class CategoryTemplateData extends TemplateData<Category>
String get title => '${category.name} ${category.kind} - Dart API';

@override
String get layoutTitle =>
_layoutTitle(category.name, category.kind.toString(),
isDeprecated: false);
String get layoutTitle => _layoutTitle(
category.name,
kind: category.kind.toString(),
);

@override
String get metaDescription =>
Expand Down Expand Up @@ -215,8 +223,10 @@ class LibraryTemplateData extends TemplateData<Library>
List<Documentable> get navLinks => [_packageGraph.defaultPackage];

@override
String get layoutTitle => _layoutTitle(library.name, Kind.library.toString(),
isDeprecated: library.isDeprecated);
String get layoutTitle => _layoutTitle(
library.breadcrumbName,
isDeprecated: library.isDeprecated,
);

@override
Library get self => library;
Expand Down Expand Up @@ -284,9 +294,12 @@ abstract class InheritingContainerTemplateData<T extends InheritingContainer>
'${library.name} library, for the Dart programming language.';

@override
String get layoutTitle =>
_layoutTitle(clazz.nameWithLinkedGenerics, clazz.fullkind,
isDeprecated: clazz.isDeprecated);
String get layoutTitle => _layoutTitle(
clazz.nameWithLinkedGenerics,
kind: clazz.fullkind,
isDeprecated: clazz.isDeprecated,
);

@override
List<Documentable> get navLinks => [_packageGraph.defaultPackage, library];
}
Expand Down Expand Up @@ -321,9 +334,12 @@ class ExtensionTemplateData<T extends Extension> extends TemplateData<T>
'${library.name} library, for the Dart programming language.';

@override
String get layoutTitle =>
_layoutTitle(extension.name, extension.kind.toString(),
isDeprecated: false);
String get layoutTitle => _layoutTitle(
extension.name, kind: extension.kind.toString(),
// TODO(srawlins): Why can't an extension be deprecated?
isDeprecated: false,
);

@override
List<Documentable> get navLinks => [_packageGraph.defaultPackage, library];
}
Expand Down Expand Up @@ -359,9 +375,12 @@ final class ExtensionTypeTemplateData<T extends ExtensionType>
'${library.name} library, for the Dart programming language.';

@override
String get layoutTitle =>
_layoutTitle(extensionType.name, extensionType.kind.toString(),
isDeprecated: false);
String get layoutTitle => _layoutTitle(
extensionType.name,
kind: extensionType.kind.toString(),
// TODO(srawlins): Use real deprecation here.
isDeprecated: false,
);

@override
List<Documentable> get navLinks => [_packageGraph.defaultPackage, library];
Expand Down Expand Up @@ -391,8 +410,12 @@ class ConstructorTemplateData extends TemplateData<Constructor>
Constructor get self => constructor;

@override
String get layoutTitle => _layoutTitle(constructor.name, constructor.fullKind,
isDeprecated: constructor.isDeprecated);
String get layoutTitle => _layoutTitle(
constructor.name,
kind: constructor.fullKind,
isDeprecated: constructor.isDeprecated,
);

@override
List<Documentable> get navLinks => [_packageGraph.defaultPackage, library];
@override
Expand Down Expand Up @@ -440,10 +463,14 @@ class FunctionTemplateData extends TemplateData<ModelFunction>
@override
String get title =>
'${function.name} function - ${library.name} library - Dart API';

@override
String get layoutTitle =>
_layoutTitle(function.nameWithGenerics, Kind.function.toString(),
isDeprecated: function.isDeprecated);
String get layoutTitle => _layoutTitle(
function.nameWithGenerics,
kind: Kind.function.toString(),
isDeprecated: function.isDeprecated,
);

@override
String get metaDescription =>
'API docs for the ${function.name} function from the '
Expand Down Expand Up @@ -478,10 +505,14 @@ class MethodTemplateData extends TemplateData<Method>
String get title =>
'${method.name} method - ${container.name} ${container.kind} - '
'${library.name} library - Dart API';

@override
String get layoutTitle =>
_layoutTitle(method.nameWithGenerics, method.fullkind,
isDeprecated: method.isDeprecated);
String get layoutTitle => _layoutTitle(
method.nameWithGenerics,
kind: method.fullkind,
isDeprecated: method.isDeprecated,
);

@override
String get metaDescription =>
'API docs for the ${method.name} method from the ${container.name} '
Expand Down Expand Up @@ -518,9 +549,14 @@ class PropertyTemplateData extends TemplateData<Field>
String get title => '${property.name} ${property.kind} - '
'${container.name} ${container.kind} - '
'${library.name} library - Dart API';

@override
String get layoutTitle => _layoutTitle(property.name, property.fullkind,
isDeprecated: property.isDeprecated);
String get layoutTitle => _layoutTitle(
property.name,
kind: property.fullkind,
isDeprecated: property.isDeprecated,
);

@override
String get metaDescription =>
'API docs for the ${property.name} ${property.kind} from the '
Expand Down Expand Up @@ -552,10 +588,14 @@ class TypedefTemplateData extends TemplateData<Typedef>
@override
String get title =>
'${typeDef.name} typedef - ${library.name} library - Dart API';

@override
String get layoutTitle =>
_layoutTitle(typeDef.nameWithGenerics, Kind.typedef.toString(),
isDeprecated: typeDef.isDeprecated);
String get layoutTitle => _layoutTitle(
typeDef.nameWithGenerics,
kind: Kind.typedef.toString(),
isDeprecated: typeDef.isDeprecated,
);

@override
String get metaDescription =>
'API docs for the ${typeDef.name} typedef from the '
Expand Down Expand Up @@ -584,9 +624,14 @@ class TopLevelPropertyTemplateData extends TemplateData<TopLevelVariable>
@override
String get title =>
'${property.name} $_type - ${library.name} library - Dart API';

@override
String get layoutTitle =>
_layoutTitle(property.name, _type, isDeprecated: property.isDeprecated);
String get layoutTitle => _layoutTitle(
property.name,
kind: _type,
isDeprecated: property.isDeprecated,
);

@override
String get metaDescription =>
'API docs for the ${property.name} $_type from the '
Expand Down
22 changes: 15 additions & 7 deletions lib/src/generator/templates.aot_renderers_for_html.dart
Original file line number Diff line number Diff line change
Expand Up @@ -1109,17 +1109,25 @@ String renderLibrary(LibraryTemplateData context0) {
var context1 = context0.self;
buffer.writeln();
buffer.write('''
<div>''');
<div>
''');
buffer.write(_renderLibrary_partial_source_link_1(context1));
buffer.write('''<h1><span class="kind-library">''');
buffer.write(context1.name);
buffer.write('''</span> ''');
buffer.writeln();
buffer.write('''
<h1>
<span class="kind-library">''');
buffer.write(context1.displayName);
buffer.write('''</span>
''');
buffer.writeEscaped(context1.kind.toString());
buffer.write(' ');
buffer.write(_renderLibrary_partial_feature_set_2(context1));
buffer.write(' ');
buffer.write(_renderLibrary_partial_categorization_3(context1));
buffer.write('''</h1></div>''');
buffer.writeln();
buffer.write('''
</h1>
</div>''');
buffer.writeln();
var context2 = context0.library;
buffer.write('\n ');
Expand Down Expand Up @@ -3579,7 +3587,7 @@ String _deduplicated_lib_templates_html__head_html(TemplateDataBase context0) {
<li><a href="''');
buffer.write(context4.href);
buffer.write('''">''');
buffer.writeEscaped(context4.name);
buffer.writeEscaped(context4.breadcrumbName);
buffer.write('''</a></li>''');
}
var context5 = context0.navLinksWithGenerics;
Expand All @@ -3589,7 +3597,7 @@ String _deduplicated_lib_templates_html__head_html(TemplateDataBase context0) {
<li><a href="''');
buffer.write(context6.href);
buffer.write('''">''');
buffer.writeEscaped(context6.name);
buffer.writeEscaped(context6.breadcrumbName);
if (context6.hasGenericParameters == true) {
buffer.write('''<span class="signature">''');
buffer.write(context6.genericParameters);
Expand Down
Loading