The image was fine. The page had nowhere to be.
The image proved the shortcode worked and nothing about the page.
Two things were true at once and I couldn’t make them fit together.
The build was publishing my image to public/. The build was not publishing
public/first-try/index.html.
I assumed one of those had to be a lie, and spent a while looking for which.
Neither was. The asset pipeline and the page renderer don’t know about each
other — a shortcode calling resources.Get emits its image whether or not any
page renders successfully. So the image being served proved the shortcode
worked and proved precisely nothing about the page.
The page had no template. No theme in hugo.toml, empty layouts/, and
therefore no page.html for a single page to render into. Hugo skipped it,
silently, because a page with no template isn’t an error either.
I keep arriving at the same reflex from different directions today: check the output file, not the exit code, not the summary table, not the other thing that happened to work.