mirror of
https://github.com/matrix-org/matrix-spec
synced 2025-12-20 08:38:36 +01:00
Fixes #784 Add a collapsible list of endpoints to the top of the page for each distinct spec. We do this by storing endpoint metadata on $page and creating a new partial, endpoints-toc.html, which renders it.
60 lines
1.9 KiB
HTML
60 lines
1.9 KiB
HTML
{{/*
|
|
|
|
Render an HTTP API, given:
|
|
|
|
* `api_data`: the OpenAPI data
|
|
* `base_url`: the base URL: that is, the part we glue onto the front
|
|
of each value in `paths` to get a complete URL.
|
|
* `anchor_base`: an optional prefix for the HTML IDs generated by
|
|
this template.
|
|
* `page`: the (Hugo) Page object to store endpoint metadata in the Scratch of. Used to build the endpoints TOC.
|
|
* `module`: the current CS API module name, if any. Used to group endpoints in the TOC.
|
|
|
|
This template replaces the old {{*_http_api}} template.
|
|
|
|
*/}}
|
|
|
|
{{ $api_data := index .api_data }}
|
|
{{ $base_url := .base_url }}
|
|
{{ $anchor_base := .anchor_base }}
|
|
{{ $page := .page }}
|
|
{{ $module := .module }}
|
|
|
|
{{ range $path_name, $path_data := $api_data.paths }}
|
|
|
|
{{ $endpoint := delimit (slice $base_url $path_name ) "" }}
|
|
|
|
{{/* note that a `paths` entry can be a $ref */}}
|
|
|
|
{{ $params := dict "endpoint" $endpoint }}
|
|
|
|
{{ with $path_data.get }}
|
|
|
|
{{ $operation_params := merge $params (dict "method" "GET" "operation_data" . "anchor_base" $anchor_base "page" $page "module" $module) }}
|
|
{{ partial "openapi/render-operation" $operation_params }}
|
|
|
|
{{ end }}
|
|
|
|
{{ with $path_data.post }}
|
|
|
|
{{ $operation_params := merge $params (dict "method" "POST" "operation_data" . "anchor_base" $anchor_base "page" $page "module" $module) }}
|
|
{{ partial "openapi/render-operation" $operation_params }}
|
|
|
|
{{ end }}
|
|
|
|
{{ with $path_data.put }}
|
|
|
|
{{ $operation_params := merge $params (dict "method" "PUT" "operation_data" . "anchor_base" $anchor_base "page" $page "module" $module) }}
|
|
{{ partial "openapi/render-operation" $operation_params }}
|
|
|
|
{{ end }}
|
|
|
|
{{ with $path_data.delete }}
|
|
|
|
{{ $operation_params := merge $params (dict "method" "DELETE" "operation_data" . "anchor_base" $anchor_base "page" $page "module" $module) }}
|
|
{{ partial "openapi/render-operation" $operation_params }}
|
|
|
|
{{ end }}
|
|
|
|
{{ end }}
|