@@ -13,7 +13,9 @@ import 'package:dartdoc/src/generator/resource_loader.dart' as loader;
1313import 'package:mustache/mustache.dart' ;
1414import 'package:path/path.dart' as path;
1515
16- const _partials = < String > [
16+ // resource_loader and the Resource API doesn't support viewing resources like
17+ // a directory listing, so we have to explicitly list the partials.
18+ const _partials_html = < String > [
1719 'callable' ,
1820 'callable_multiline' ,
1921 'categorization' ,
@@ -42,6 +44,27 @@ const _partials = <String>[
4244 'accessor_setter' ,
4345];
4446
47+ const _partials_md = < String > [
48+ 'accessor_getter' ,
49+ 'accessor_setter' ,
50+ 'callable' ,
51+ 'callable_multiline' ,
52+ 'categorization' ,
53+ 'class' ,
54+ 'constant' ,
55+ 'documentation' ,
56+ 'extension' ,
57+ 'features' ,
58+ 'footer' ,
59+ 'head' ,
60+ 'library' ,
61+ 'mixin' ,
62+ 'name_summary' ,
63+ 'property' ,
64+ 'source_code' ,
65+ 'source_link' ,
66+ ];
67+
4568const String _headerPlaceholder = '{{! header placeholder }}' ;
4669const String _footerPlaceholder = '{{! footer placeholder }}' ;
4770const String _footerTextPlaceholder = '{{! footer-text placeholder }}' ;
@@ -82,17 +105,33 @@ abstract class _TemplatesLoader {
82105/// Loads default templates included in the Dartdoc program.
83106class _DefaultTemplatesLoader extends _TemplatesLoader {
84107 final String _format;
108+ final List <String > _partials;
109+
110+ factory _DefaultTemplatesLoader .create (String format) {
111+ List <String > partials;
112+ switch (format) {
113+ case 'html' :
114+ partials = _partials_html;
115+ break ;
116+ case 'md' :
117+ partials = _partials_md;
118+ break ;
119+ default :
120+ partials = [];
121+ }
122+ return _DefaultTemplatesLoader (format, partials);
123+ }
85124
86- _DefaultTemplatesLoader (this ._format);
125+ _DefaultTemplatesLoader (this ._format, this ._partials );
87126
88127 @override
89128 Future <Map <String , String >> loadPartials () async {
90- var partials = < String , String > {};
129+ var templates = < String , String > {};
91130 for (String name in _partials) {
92131 var uri = 'package:dartdoc/templates/$_format /_$name .$_format ' ;
93- partials [name] = await loader.loadAsString (uri);
132+ templates [name] = await loader.loadAsString (uri);
94133 }
95- return partials ;
134+ return templates ;
96135 }
97136
98137 @override
@@ -178,7 +217,7 @@ class Templates {
178217 {List <String > headerPaths,
179218 List <String > footerPaths,
180219 List <String > footerTextPaths}) async {
181- return _create (_DefaultTemplatesLoader (format),
220+ return _create (_DefaultTemplatesLoader . create (format),
182221 headerPaths: headerPaths,
183222 footerPaths: footerPaths,
184223 footerTextPaths: footerTextPaths);
0 commit comments