{{/* This template is used to render a Client-Server API Module. Modules are defined alongside the `_index.md` for the CS API. The following parameters are expected: * `filename` the name of the module file to render, without extension (i.e. `spaces`). * `name` the display name of the module (i.e. `Spaces`). */}} {{ $name := .Params.name }} {{ $filename := .Params.filename }} {{ with .Site.GetPage "client-server-api/modules" }} {{ with .Resources.GetMatch (printf "%s%s" $filename ".md") }} {{/* Preserve previous scratch values so nested modules don't leak */}} {{ $prevPage := .Scratch.Get "endpoint_page" }} {{ $prevModule := .Scratch.Get "endpoint_module" }} {{/* Allow endpoints rendered in the module to accumulate on the parent page */}} {{ .Scratch.Set "endpoint_page" $.Page }} {{/* Name the module for grouping in the endpoints list */}} {{ .Scratch.Set "endpoint_module" $name }} {{ .RenderShortcodes }} {{/* Restore previous scratch values */}} {{ if $prevPage }} {{ .Scratch.Set "endpoint_page" $prevPage }} {{ else }} {{ .Scratch.Delete "endpoint_page" }} {{ end }} {{ if $prevModule }} {{ .Scratch.Set "endpoint_module" $prevModule }} {{ else }} {{ .Scratch.Delete "endpoint_module" }} {{ end }} {{ end }} {{ end }}