Adds Hugo shortcode for content files to get data values

Hugo shortcode to access data file values within a content file. Set the data file, add an optional key (otherwise the entire file object will come back), and set the type to either count to get a count of the key's values or value to just get its value.
This commit is contained in:
Andrew Gioia 2023-09-26 19:30:41 +00:00
parent 81ac8a484c
commit 1712a885d9
1 changed files with 22 additions and 0 deletions

22
Shortcodes/getdata.html Normal file
View File

@ -0,0 +1,22 @@
<!--
-- Hugo shortcode for content pages to access data file properties or counts
--
-- @param file data file to reference in ./data
-- @param key key in the data file object whose value you want
-- @param type `count` to get a count of all items if an array, `value` to get the key's value
--
-- {{% getdata file="icons.json" key="address-book" type="value" %}}
-->
{{- $file := .Get "file" -}}
{{- $key := .Get "key" -}}
{{- $type := .Get "type" -}}
{{- if eq $type "count" -}}
{{- if $key -}}
{{- (index .Site.Data $file $key) | len -}}
{{- else -}}
{{- (index .Site.Data $file) | len -}}
{{- end -}}
{{- else -}}
{{- index .Site.Data $file $key -}}
{{- end -}}