Is there any way to have a permalink that shows information from a single entry from a JSON file?
I’m aware this isn’t the usual way of publishing posts or pages, but I am trying to use Hugo for an edge case. It’s a website that aggregates daily searches in a number of verified sources and links back to them.
The information comes from an API and the single.html will show a summary and some metadata from the search.
Is this even possible ?
Option A - Pages from Data
Perhaps the cleanest approach is to automatically create a page for each entry in the JSON file. Hugo can’t do that yet. See:
Option B - List Everything, Display None/One
Next you could look at creating a monolithic page with all of the entries, each encapsulated by a parent element with a unique id and CSS display
property set to none
. Then include the unique id in the URL (e.g., https://example.com/results?id=123
), and use some JS to toggle the CSS display
property of the related element.
Option C - gomplate
See https://discourse.gohugo.io/t/using-gomplate-to-generate-pages-from-data-sources/27160
n.b. I have no experience with this approach.
Option D - External Script
Something like https://discourse.gohugo.io/t/split-a-json-array-into-markdown-files/30919.
n.b. I have no experience with this approach.
1 Like
Thank you for the in-depth answer @jmooring
Option B feels like it’s easier for me to achieve with what I know of JS but the JSON file will eventually grow and when that time comes I will move on to Gomplate. Wouldn’t like to have the user download 1 or 10Mb of JSON just to view one single entry.