diff --git a/lib/src/generator/templates.runtime_renderers.dart b/lib/src/generator/templates.runtime_renderers.dart index 8ab27dc425..56e8c70b3f 100644 --- a/lib/src/generator/templates.runtime_renderers.dart +++ b/lib/src/generator/templates.runtime_renderers.dart @@ -4215,20 +4215,6 @@ class _Renderer_DocumentationComment self.renderSimpleVariable(c, remainingNames, 'bool'), getBool: (CT_ c) => c.hasNodoc, ), - 'modelElementRenderer': Property( - getValue: (CT_ c) => c.modelElementRenderer, - renderVariable: (CT_ c, Property self, - List remainingNames) => - self.renderSimpleVariable( - c, remainingNames, 'ModelElementRenderer'), - isNullValue: (CT_ c) => false, - renderValue: (CT_ c, RendererBase r, - List ast, StringSink sink) { - renderSimple(c.modelElementRenderer, ast, r.template, sink, - parent: r, - getters: _invisibleGetters['ModelElementRenderer']!); - }, - ), 'needsPrecache': Property( getValue: (CT_ c) => c.needsPrecache, renderVariable: (CT_ c, Property self, @@ -16140,7 +16126,6 @@ const _invisibleGetters = { 'fullyQualifiedNameWithoutLibrary', 'hasDocumentationComment', 'hasNodoc', - 'modelElementRenderer', 'needsPrecache', 'pathContext', 'sourceFileName' @@ -16574,7 +16559,6 @@ const _invisibleGetters = { 'runtimeType', 'superclassConstraints' }, - 'ModelElementRenderer': {'hashCode', 'runtimeType'}, 'ModelNode': {'hashCode', 'runtimeType', 'sourceCode'}, 'PackageGraph': { 'allConstructedModelElements', diff --git a/lib/src/model/documentation_comment.dart b/lib/src/model/documentation_comment.dart index 154ba60218..fd89a19e81 100644 --- a/lib/src/model/documentation_comment.dart +++ b/lib/src/model/documentation_comment.dart @@ -7,7 +7,6 @@ import 'package:dartdoc/src/model/documentation.dart'; import 'package:dartdoc/src/model/inheritable.dart'; import 'package:dartdoc/src/model/locatable.dart'; import 'package:dartdoc/src/model/source_code_mixin.dart'; -import 'package:dartdoc/src/render/model_element_renderer.dart'; import 'package:dartdoc/src/utils.dart'; import 'package:dartdoc/src/warnings.dart'; import 'package:meta/meta.dart'; @@ -136,8 +135,6 @@ mixin DocumentationComment p.Context get pathContext; - ModelElementRenderer get modelElementRenderer; - static const _allDirectiveNames = { 'animation', 'end-inject-html', @@ -360,7 +357,29 @@ mixin DocumentationComment } var youTubeId = url.group(url.groupCount)!; - return modelElementRenderer.renderYoutubeUrl(youTubeId, width, height); + // Blank lines before and after, and no indenting at the beginning and end + // is needed so that Markdown doesn't confuse this with code, so be + // careful of whitespace here. + return ''' + + + +'''; // Must end at start of line, or following inline text will be indented. }); } @@ -477,8 +496,41 @@ mixin DocumentationComment } var overlayId = '${uniqueId}_play_button_'; - return modelElementRenderer.renderAnimation( - uniqueId, width, height, movieUrl, overlayId); + return ''' + +
+
+
+ +
+ +'''; // Must end at start of line, or following inline text will be indented. }); } diff --git a/lib/src/model/model_element.dart b/lib/src/model/model_element.dart index ff251b57f5..d3cc911503 100644 --- a/lib/src/model/model_element.dart +++ b/lib/src/model/model_element.dart @@ -23,7 +23,6 @@ import 'package:dartdoc/src/model/feature_set.dart'; import 'package:dartdoc/src/model/model.dart'; import 'package:dartdoc/src/model/prefix.dart'; import 'package:dartdoc/src/model_utils.dart' as utils; -import 'package:dartdoc/src/render/model_element_renderer.dart'; import 'package:dartdoc/src/render/parameter_renderer.dart'; import 'package:dartdoc/src/runtime_stats.dart'; import 'package:dartdoc/src/source_linker.dart'; @@ -413,7 +412,14 @@ abstract class ModelElement extends Canonicalization }; } - String get attributesAsString => modelElementRenderer.renderAttributes(this); + String get attributesAsString { + var allAttributes = attributes.toList(growable: false) + ..sort(byAttributeOrdering); + return allAttributes + .map((f) => + '${f.linkedNameWithParameters}') + .join(); + } // True if this is a function, or if it is an type alias to a function. bool get isCallable => @@ -677,14 +683,10 @@ abstract class ModelElement extends Canonicalization return htmlEscape.convert(name); } - return modelElementRenderer.renderLinkedName(this); + var cssClass = isDeprecated ? ' class="deprecated"' : ''; + return '$displayName'; }(); - @visibleForTesting - @override - ModelElementRenderer get modelElementRenderer => - const ModelElementRendererHtml(); - ParameterRenderer get _parameterRenderer => const ParameterRendererHtml(); ParameterRenderer get _parameterRendererDetailed => diff --git a/lib/src/render/model_element_renderer.dart b/lib/src/render/model_element_renderer.dart deleted file mode 100644 index bff766a79e..0000000000 --- a/lib/src/render/model_element_renderer.dart +++ /dev/null @@ -1,104 +0,0 @@ -// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file -// for details. All rights reserved. Use of this source code is governed by a -// BSD-style license that can be found in the LICENSE file. - -import 'package:dartdoc/src/model/attribute.dart'; -import 'package:dartdoc/src/model/model_element.dart'; - -abstract class ModelElementRenderer { - const ModelElementRenderer(); - - String renderLinkedName(ModelElement modelElement); - - String renderYoutubeUrl(String youTubeId, int width, int height); - - String renderAnimation( - String uniqueId, int width, int height, Uri movieUrl, String overlayId); - - String renderAttributes(ModelElement modelElement) { - var allAttributes = modelElement.attributes.toList(growable: false) - ..sort(byAttributeOrdering); - return allAttributes - .map((f) => - '${f.linkedNameWithParameters}') - .join(); - } -} - -class ModelElementRendererHtml extends ModelElementRenderer { - const ModelElementRendererHtml(); - - @override - String renderLinkedName(ModelElement modelElement) { - var cssClass = modelElement.isDeprecated ? ' class="deprecated"' : ''; - return '' - '${modelElement.displayName}'; - } - - @override - String renderYoutubeUrl(String youTubeId, int width, int height) { - // Blank lines before and after, and no indenting at the beginning and end - // is needed so that Markdown doesn't confuse this with code, so be - // careful of whitespace here. - return ''' - - - -'''; // Must end at start of line, or following inline text will be indented. - } - - @override - String renderAnimation( - String uniqueId, int width, int height, Uri movieUrl, String overlayId) { - return ''' - -
-
-
- -
- -'''; // Must end at start of line, or following inline text will be indented. - } -} diff --git a/test/documentation_comment_test.dart b/test/documentation_comment_test.dart index 8088697899..cdad6b2be0 100644 --- a/test/documentation_comment_test.dart +++ b/test/documentation_comment_test.dart @@ -111,16 +111,43 @@ More text.''')); '''); expectNoWarnings(); - var rendered = libraryModel.modelElementRenderer.renderAnimation( - 'barHerderAnimation', - 100, - 200, - Uri.parse('http://host/path/to/video.mp4'), - 'barHerderAnimation_play_button_'); expect(doc, equals(''' Text. -$rendered + +
+
+
+ +
+ + End text.''')); }