commit 7f24335f97ee9c32666b22d5c031a4715fea45e2
parent f469f3dbdab3c7d19aad38f6c1f747f5fd3ca382
Author: David Eisinger <[email protected]>
Date: Wed, 19 Nov 2025 10:57:10 -0500
auto-generate image captions
Diffstat:
2 files changed, 25 insertions(+), 7 deletions(-)
diff --git a/bin/encrypt b/bin/encrypt
@@ -1,5 +1,7 @@
#!/usr/bin/env ruby
+require "open3"
+
file = ARGV.pop || raise("please supply a filename")
raise("file '#{file}' does not exist") unless File.exist?(file)
@@ -13,7 +15,22 @@ raise("file '#{file}' does not exist") unless File.exist?(file)
-iter 1000000
)
-output = %[{{<dither #{ File.basename(file) } "782x600" />}}]
+caption_cmd = ["codex", "exec", "caption this image: #{file}"]
+caption_output, status = Open3.capture2e(*caption_cmd)
+
+unless status.success?
+ warn "Caption generation failed:\n#{caption_output}"
+ exit 1
+end
+
+caption = caption_output.split("\n").last.to_s.strip
+
+if caption.empty?
+ warn "Caption output was empty."
+ exit 1
+end
+
+output = %[{{<dither #{ File.basename(file) } "782x600">}}#{ caption }{{</dither>}}]
IO.popen("pbcopy", "w") { |pb| pb.write(output) }
diff --git a/themes/v2/layouts/shortcodes/dither.html b/themes/v2/layouts/shortcodes/dither.html
@@ -4,10 +4,11 @@
{{ $imgClass := .Get 2 }}
<a href="{{ $img.RelPermalink }}">
- <img src="{{ $img.RelPermalink }}" width="{{ $img.Width }}" height="{{ $img.Height }}" class="{{ $imgClass }}">
- {{ with .Inner }}
- <figcaption>
- {{ . }}
- </figcaption>
- {{ end }}
+ <img
+ src="{{ $img.RelPermalink }}"
+ width="{{ $img.Width }}"
+ height="{{ $img.Height }}"
+ {{ with $imgClass }}class="{{ $imgClass }}"{{ end }}
+ {{ with .Inner }}alt="{{ . }}"{{ end }}
+ >
</a>