21
21
my $ * DEBUG = False ;
22
22
23
23
my $ tg ;
24
- my % types ;
25
24
my % methods-by-type ;
26
25
my $ footer = footer-html;
27
26
@@ -93,7 +92,6 @@ (Bool :$debug, Bool :$typegraph = False)
93
92
my $ file = . value ;
94
93
my $ what = $ podname ~~ /^ <[ A..Z ] > | '::' / ?? ' type' !! ' language' ;
95
94
say " $ file. path () => $ what /$ podname" ;
96
- % types {$ what }{$ podname } = " /$ what /$ podname" ;
97
95
my $ pod = eval slurp ($ file . path ) ~ " \n \$=pod" ;
98
96
$ pod .= [0 ];
99
97
if $ what eq ' language' {
@@ -197,7 +195,6 @@ (Bool :$debug, Bool :$typegraph = False)
197
195
say " $ podname .$ name" if $ * DEBUG ;
198
196
next if $ name ~~ /\s /;
199
197
% methods-by-type {$ podname }. push : $ chunk ;
200
- % types <routine >{$ name } = " /routine/" ~ uri_escape( $ name );
201
198
$ dr . add-new(
202
199
: kind<routine >,
203
200
# TODO: determine subkind, ie method/sub
@@ -215,7 +212,7 @@ (Bool :$debug, Bool :$typegraph = False)
215
212
write-disambiguation-files($ dr );
216
213
write-operator-files($ dr );
217
214
write-type-graph-images(: force($ typegraph ));
218
- write-search-file();
215
+ write-search-file($ dr );
219
216
write-index-file($ dr );
220
217
say " Writing per-routine files" ;
221
218
for $ dr . lookup(' routine' , : by<kind >). list -> $ d {
@@ -360,19 +357,20 @@ (Bool :$debug, Bool :$typegraph = False)
360
357
' ;
361
358
}
362
359
363
- sub write-search-file () {
360
+ sub write-search-file ($ dr ) {
364
361
say " Writing html/search.html" ;
365
362
my $ template = slurp (" search_template.html" );
366
363
my @ items ;
367
364
my sub fix-url ($ raw ) { $ raw . substr (1 ) ~ ' .html' };
368
- @ items . push : % types < language > . pairs . sort . map ({
369
- " \{ label: \" Language: { . key } \" , value: \" { . key } \" , url: \" { fix-url(. value ) } \" \} "
365
+ @ items . push : $ dr . lookup( ' language' , : by< kind >) . sort ( *. name ) . map ({
366
+ " \{ label: \" Language: { . name } \" , value: \" { . name } \" , url: \" { fix-url(. url ) } \" \} "
370
367
});
371
- @ items . push : % types < type > . sort . map ({
372
- " \{ label: \" Type: { . key } \" , value: \" { . key } \" , url: \" { fix-url(. value ) } \" \} "
368
+ @ items . push : $ dr . lookup( ' type' , : by< kind >) . sort ( *. name ) . map ({
369
+ " \{ label: \" Type: { . name } \" , value: \" { . name } \" , url: \" { fix-url(. url ) } \" \} "
373
370
});
374
- @ items . push : % types <routine >. sort . map ({
375
- " \{ label: \" Routine: { . key } \" , value: \" { . key } \" , url: \" { fix-url(. value ) } \" \} "
371
+ my % seen ;
372
+ @ items . push : $ dr . lookup(' routine' , : by<kind >). grep ({! % seen {. name }++ }). sort (*. name ). map ({
373
+ " \{ label: \" Routine: { . name } \" , value: \" { . name } \" , url: \" { fix-url(. url) } \" \} "
376
374
});
377
375
378
376
my $ items = @ items . join (" ,\n " );
0 commit comments