@@ -274,6 +274,7 @@ sub generate_example_thumbnail {
274
274
my $project = shift ;
275
275
my $category = shift ;
276
276
my $example = shift ;
277
+ my $preloadhtmlref = shift ;
277
278
278
279
my $example_no_num = " $example " ;
279
280
$example_no_num =~ s /\A\d +\- // ;
@@ -283,8 +284,10 @@ sub generate_example_thumbnail {
283
284
my $example_mouseover_html = ' ' ;
284
285
if ( -f " $examples_dir /$category /$example /onmouseover.webp" ) {
285
286
$example_mouseover_html = " onmouseover=\" this.src='/$project /$category /$example /onmouseover.webp'\" onmouseout=\" this.src='$example_image_url ';\" " ;
287
+ $$preloadhtmlref .= " <link rel='preload' as='image' href='/$project /$category /$example /onmouseover.webp'>\n " ;
286
288
} elsif ( -f " $examples_dir /$category /onmouseover.webp" ) {
287
289
$example_mouseover_html = " onmouseover=\" this.src='/$project /$category /onmouseover.webp'\" onmouseout=\" this.src='$example_image_url ';\" " ;
290
+ $$preloadhtmlref .= " <link rel='preload' as='image' href='/$project /$category /onmouseover.webp'>\n " ;
288
291
}
289
292
290
293
return "
@@ -300,10 +303,11 @@ sub generate_example_thumbnail {
300
303
sub generate_example_thumbnails_for_category {
301
304
my $project = shift ;
302
305
my $category = shift ;
306
+ my $preloadhtmlref = shift ;
303
307
my @examples = get_examples_for_category($category );
304
308
my $retval = ' ' ;
305
309
foreach my $example (@examples ) {
306
- $retval .= generate_example_thumbnail($project , $category , $example );
310
+ $retval .= generate_example_thumbnail($project , $category , $example , $preloadhtmlref );
307
311
}
308
312
return $retval ;
309
313
}
@@ -325,7 +329,8 @@ sub handle_category_dir {
325
329
326
330
closedir ($dh );
327
331
328
- my $examples_list_html = generate_example_thumbnails_for_category($project , $category );
332
+ my $preloadhtml = ' ' ;
333
+ my $examples_list_html = generate_example_thumbnails_for_category($project , $category , \$preloadhtml );
329
334
330
335
my $dst = " $output_dir /$category " ;
331
336
@@ -345,6 +350,7 @@ sub handle_category_dir {
345
350
s /\@ project_name\@ / $project / g ;
346
351
s /\@ category_name\@ / $category / g ;
347
352
s /\@ category_description\@ / $category_description / g ;
353
+ s /\@ preload_images_html\@ / $preloadhtml / g ;
348
354
s /\@ examples_list_html\@ / $examples_list_html / g ;
349
355
s /\@ preview_image\@ / $preview_image / g ;
350
356
$html .= $_ ;
@@ -396,12 +402,13 @@ sub handle_category_dir {
396
402
closedir ($dh );
397
403
398
404
# write homepage
399
- my $homepage_list_html = " " ;
405
+ my $homepage_list_html = ' ' ;
406
+ my $homepage_preloadhtml = ' ' ;
400
407
foreach my $category (get_categories()) {
401
408
my $category_description = get_category_description($category );
402
409
$homepage_list_html .= " <h2>$category_description </h2>" ;
403
410
$homepage_list_html .= " <div class='list'>" ;
404
- $homepage_list_html .= generate_example_thumbnails_for_category($project , $category );
411
+ $homepage_list_html .= generate_example_thumbnails_for_category($project , $category , \ $homepage_preloadhtml );
405
412
$homepage_list_html .= " </div>" ;
406
413
}
407
414
@@ -414,6 +421,7 @@ sub handle_category_dir {
414
421
s /\@ project_name\@ / $project / g ;
415
422
s /\@ homepage_list_html\@ / $homepage_list_html / g ;
416
423
s /\@ preview_image\@ / $preview_image / g ;
424
+ s /\@ preload_images_html\@ / $homepage_preloadhtml / g ;
417
425
$html .= $_ ;
418
426
}
419
427
close ($htmltemplate );
0 commit comments