mirror of
https://github.com/gohugoio/hugo.git
synced 2025-04-26 21:51:02 +03:00
![]() Using this in a content adapter could look like this: ```handlebars {{ $projectID := "<myproject>" }} {{ $useCached := true }} {{ $api := "api" }} {{ if $useCached }} {{/* See https://www.sanity.io/docs/api-cdn */}} {{ $api = "apicdn" }} {{ end }} {{ $url := printf "https://%s.%s.sanity.io/v2021-06-07/data/query/production" $projectID $api }} {{/* prettier-ignore-start */ -}} {{ $q := `*[_type == 'post']{ title, publishedAt, summary, slug, body[]{ ..., _type == "image" => { ..., asset->{ _id, path, url, altText, title, description, metadata { dimensions { aspectRatio, width, height } } } } }, }` }} {{/* prettier-ignore-end */ -}} {{ $body := dict "query" $q | jsonify }} {{ $opts := dict "method" "post" "body" $body }} {{ $t := debug.Timer "sanity.get" }} {{ $r := resources.GetRemote $url $opts }} {{ $t.Stop }} {{ $m := $r | transform.Unmarshal }} {{ $result := $m.result }} {{ $t := debug.Timer "sanity.parse" }} {{ range $result }} {{ if not .slug }} {{ continue }} {{ end }} {{ $markdown := transform.PortableText .body }} {{ $t.Stop }} {{ $content := dict "mediaType" "text/markdown" "value" $markdown }} {{ $params := dict "portabletext" (.body | jsonify (dict "indent" " ")) }} {{ $page := dict "content" $content "kind" "page" "path" .slug.current "title" .title "date" (.publishedAt | time ) "summary" .summary "params" $params }} {{ $.AddPage $page }} {{ end }} ``` |
||
---|---|---|
.. | ||
testdata | ||
init.go | ||
remarshal.go | ||
remarshal_test.go | ||
transform.go | ||
transform_integration_test.go | ||
transform_test.go | ||
unmarshal.go | ||
unmarshal_test.go |