Commit ce6b0fd
xxwhirlpool
·
2026-05-26 15:44:38 -0400 EDT
parent fedd132
iconshare
4 files changed,
+85,
-1
+2,
-0
1@@ -49,5 +49,7 @@ config/.local/bin/uvx
2 scripts/Scripts/.directory
3 scripts/Scripts/icons
4 scripts/Scripts/gallery.html
5+scripts/Scripts/iconshare_pl/icons/*
6+scripts/Scripts/iconshare_pl/out/*
7 config/.local/bin/khal_reminder
8 config/.config/khal/config_reminder
1@@ -44,4 +44,4 @@ files = Dir[icondir].each do |icon|
2 htmlfile.write(imghtml)
3 end
4
5-htmlfile.write("</main")
6+htmlfile.write("</main>")
1@@ -0,0 +1,44 @@
2+#!/usr/bin/env perl
3+
4+use 5.38.2;
5+use strict;
6+use warnings;
7+
8+use Template;
9+use File::Slurp;
10+use File::Copy;
11+
12+sub usage {
13+ die("Usage: iconshare.pl [DIR]\n");
14+}
15+
16+my ($icon_dir) = @ARGV;
17+
18+if (not defined $icon_dir) {
19+ usage
20+}
21+
22+my @icons = read_dir($icon_dir, prefix => 1);
23+
24+mkdir("out");
25+
26+if ( -d "out" ) {
27+ foreach my $icon (@icons) {
28+ copy($icon, "out") or die "copy failed: $!";
29+ }
30+} else {
31+ die("directory cannot be created: out, $!");
32+}
33+
34+my %data = (
35+ title => "gallery",
36+ icons => \@icons,
37+);
38+
39+my $tt = Template->new({
40+ INCLUDE_PATH => "./templates",
41+ INTERPOLATE => 1,
42+}) or die "$Template::ERROR\n";
43+
44+my $htmlfile = "out/gallery.html";
45+$tt->process("iconshare.tt", \%data, $htmlfile) or die $tt->error(), "\n";
1@@ -0,0 +1,38 @@
2+<!DOCTYPE html>
3+<html lang="en">
4+<head>
5+ <title>[% title %]</title>
6+
7+ <style>
8+ html {
9+ background: #eff1f5;
10+ display: flex;
11+ flex-direction: column;
12+ align-items: center;
13+ }
14+
15+ .wrapper {
16+ background: #303446;
17+ padding-block: 1rem;
18+ padding-inline: 1rem;
19+ max-width: 27em;
20+ }
21+
22+ .wrapper img {
23+ margin-block-end: 4px;
24+ padding-inline: 2px;
25+ }
26+ </style>
27+</head>
28+
29+<body>
30+
31+<main class="wrapper">
32+ [% FOREACH icon IN icons %]
33+ <img src="[% icon %]">
34+ [% END %]
35+</main>
36+
37+</body>
38+
39+</html>