Skip to content

Commit ab52275

Browse files
jdkorenjcollins-g
authored andcommitted
Begin abstraction for template render helper (#2072)
Adds a class used by TemplateData to help render template elements. Code that produces raw HTML will gradually migrate into this new class.
1 parent d5f90cf commit ab52275

File tree

4 files changed

+152
-73
lines changed

4 files changed

+152
-73
lines changed

lib/src/html/html_generator_instance.dart

Lines changed: 31 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import 'dart:io' show File;
88

99
import 'package:collection/collection.dart' show compareNatural;
1010
import 'package:dartdoc/src/html/html_generator.dart' show HtmlGeneratorOptions;
11+
import 'package:dartdoc/src/html/template_render_helper.dart';
1112
import 'package:dartdoc/src/html/resource_loader.dart' as loader;
1213
import 'package:dartdoc/src/html/resources.g.dart' as resources;
1314
import 'package:dartdoc/src/html/template_data.dart';
@@ -28,6 +29,7 @@ class HtmlGeneratorInstance {
2829
final PackageGraph _packageGraph;
2930
final List<Indexable> _indexedElements = <Indexable>[];
3031
final FileWriter _writer;
32+
final HtmlRenderHelper _templateHelper = HtmlRenderHelper();
3133

3234
HtmlGeneratorInstance(
3335
this._options, this._templates, this._packageGraph, this._writer);
@@ -273,7 +275,8 @@ class HtmlGeneratorInstance {
273275
}
274276

275277
void generatePackage(PackageGraph packageGraph, Package package) {
276-
TemplateData data = PackageTemplateData(_options, packageGraph, package);
278+
TemplateData data =
279+
PackageTemplateData(_options, packageGraph, _templateHelper, package);
277280
logInfo('documenting ${package.name}');
278281

279282
_build('index.html', _templates.indexTemplate, data);
@@ -283,7 +286,8 @@ class HtmlGeneratorInstance {
283286
void generateCategory(PackageGraph packageGraph, Category category) {
284287
logInfo(
285288
'Generating docs for category ${category.name} from ${category.package.fullyQualifiedName}...');
286-
TemplateData data = CategoryTemplateData(_options, packageGraph, category);
289+
TemplateData data =
290+
CategoryTemplateData(_options, packageGraph, _templateHelper, category);
287291

288292
_build(path.joinAll(category.href.split('/')), _templates.categoryTemplate,
289293
data);
@@ -295,102 +299,107 @@ class HtmlGeneratorInstance {
295299
if (!lib.isAnonymous && !lib.hasDocumentation) {
296300
packageGraph.warnOnElement(lib, PackageWarning.noLibraryLevelDocs);
297301
}
298-
TemplateData data = LibraryTemplateData(_options, packageGraph, lib);
302+
TemplateData data =
303+
LibraryTemplateData(_options, packageGraph, _templateHelper, lib);
299304

300305
_build(path.join(lib.dirName, '${lib.fileName}'),
301306
_templates.libraryTemplate, data);
302307
}
303308

304309
void generateClass(PackageGraph packageGraph, Library lib, Class clazz) {
305-
TemplateData data = ClassTemplateData(_options, packageGraph, lib, clazz);
310+
TemplateData data =
311+
ClassTemplateData(_options, packageGraph, _templateHelper, lib, clazz);
306312
_build(path.joinAll(clazz.href.split('/')), _templates.classTemplate, data);
307313
}
308314

309315
void generateExtension(
310316
PackageGraph packageGraph, Library lib, Extension ext) {
311-
TemplateData data = ExtensionTemplateData(_options, packageGraph, lib, ext);
317+
TemplateData data = ExtensionTemplateData(
318+
_options, packageGraph, _templateHelper, lib, ext);
312319
_build(
313320
path.joinAll(ext.href.split('/')), _templates.extensionTemplate, data);
314321
}
315322

316323
void generateMixins(PackageGraph packageGraph, Library lib, Mixin mixin) {
317-
TemplateData data = MixinTemplateData(_options, packageGraph, lib, mixin);
324+
TemplateData data =
325+
MixinTemplateData(_options, packageGraph, _templateHelper, lib, mixin);
318326
_build(path.joinAll(mixin.href.split('/')), _templates.mixinTemplate, data);
319327
}
320328

321329
void generateConstructor(PackageGraph packageGraph, Library lib, Class clazz,
322330
Constructor constructor) {
323331
TemplateData data = ConstructorTemplateData(
324-
_options, packageGraph, lib, clazz, constructor);
332+
_options, packageGraph, _templateHelper, lib, clazz, constructor);
325333

326334
_build(path.joinAll(constructor.href.split('/')),
327335
_templates.constructorTemplate, data);
328336
}
329337

330338
void generateEnum(PackageGraph packageGraph, Library lib, Enum eNum) {
331-
TemplateData data = EnumTemplateData(_options, packageGraph, lib, eNum);
339+
TemplateData data =
340+
EnumTemplateData(_options, packageGraph, _templateHelper, lib, eNum);
332341

333342
_build(path.joinAll(eNum.href.split('/')), _templates.enumTemplate, data);
334343
}
335344

336345
void generateFunction(
337346
PackageGraph packageGraph, Library lib, ModelFunction function) {
338-
TemplateData data =
339-
FunctionTemplateData(_options, packageGraph, lib, function);
347+
TemplateData data = FunctionTemplateData(
348+
_options, packageGraph, _templateHelper, lib, function);
340349

341350
_build(path.joinAll(function.href.split('/')), _templates.functionTemplate,
342351
data);
343352
}
344353

345354
void generateMethod(
346355
PackageGraph packageGraph, Library lib, Container clazz, Method method) {
347-
TemplateData data =
348-
MethodTemplateData(_options, packageGraph, lib, clazz, method);
356+
TemplateData data = MethodTemplateData(
357+
_options, packageGraph, _templateHelper, lib, clazz, method);
349358

350359
_build(
351360
path.joinAll(method.href.split('/')), _templates.methodTemplate, data);
352361
}
353362

354363
void generateConstant(
355364
PackageGraph packageGraph, Library lib, Container clazz, Field property) {
356-
TemplateData data =
357-
ConstantTemplateData(_options, packageGraph, lib, clazz, property);
365+
TemplateData data = ConstantTemplateData(
366+
_options, packageGraph, _templateHelper, lib, clazz, property);
358367

359368
_build(path.joinAll(property.href.split('/')), _templates.constantTemplate,
360369
data);
361370
}
362371

363372
void generateProperty(
364373
PackageGraph packageGraph, Library lib, Container clazz, Field property) {
365-
TemplateData data =
366-
PropertyTemplateData(_options, packageGraph, lib, clazz, property);
374+
TemplateData data = PropertyTemplateData(
375+
_options, packageGraph, _templateHelper, lib, clazz, property);
367376

368377
_build(path.joinAll(property.href.split('/')), _templates.propertyTemplate,
369378
data);
370379
}
371380

372381
void generateTopLevelProperty(
373382
PackageGraph packageGraph, Library lib, TopLevelVariable property) {
374-
TemplateData data =
375-
TopLevelPropertyTemplateData(_options, packageGraph, lib, property);
383+
TemplateData data = TopLevelPropertyTemplateData(
384+
_options, packageGraph, _templateHelper, lib, property);
376385

377386
_build(path.joinAll(property.href.split('/')),
378387
_templates.topLevelPropertyTemplate, data);
379388
}
380389

381390
void generateTopLevelConstant(
382391
PackageGraph packageGraph, Library lib, TopLevelVariable property) {
383-
TemplateData data =
384-
TopLevelConstTemplateData(_options, packageGraph, lib, property);
392+
TemplateData data = TopLevelConstTemplateData(
393+
_options, packageGraph, _templateHelper, lib, property);
385394

386395
_build(path.joinAll(property.href.split('/')),
387396
_templates.topLevelConstantTemplate, data);
388397
}
389398

390399
void generateTypeDef(
391400
PackageGraph packageGraph, Library lib, Typedef typeDef) {
392-
TemplateData data =
393-
TypedefTemplateData(_options, packageGraph, lib, typeDef);
401+
TemplateData data = TypedefTemplateData(
402+
_options, packageGraph, _templateHelper, lib, typeDef);
394403

395404
_build(path.joinAll(typeDef.href.split('/')), _templates.typeDefTemplate,
396405
data);

0 commit comments

Comments
 (0)