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, -1
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>")
+44, -0
 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";
+38, -0
 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>