davideisinger.com

My personal website
Log | Files | Refs | README

commit 7f24335f97ee9c32666b22d5c031a4715fea45e2
parent f469f3dbdab3c7d19aad38f6c1f747f5fd3ca382
Author: David Eisinger <[email protected]>
Date:   Wed, 19 Nov 2025 10:57:10 -0500

auto-generate image captions

Diffstat:
Mbin/encrypt | 19++++++++++++++++++-
Mthemes/v2/layouts/shortcodes/dither.html | 13+++++++------
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>