mirror of
https://github.com/matrix-org/matrix-spec
synced 2026-03-23 19:44:09 +01:00
A p HTML element cannot contain other block elements, so the "parent" element is closed when the first "child" one is opened. We need to use Page.RenderString with options to force Hugo to keep the wrapping p elements even if the content contains a single paragraph. Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
88 lines
2.8 KiB
HTML
88 lines
2.8 KiB
HTML
{{/*
|
|
|
|
Render a single HTTP API operation: that is, a method+endpoint combination, given:
|
|
|
|
* `method`: the method, e.g. GET, PUT
|
|
* `endpoint`: the endpoint
|
|
* `operation_data`: the OpenAPI data for the operation
|
|
|
|
This template renders the operation as a `<section>` containing:
|
|
|
|
* an `<h1>` heading containing the method and endpoint
|
|
* a `<details>` element containing the details, including:
|
|
* operation description
|
|
* basic info about the operation
|
|
* request details
|
|
* response details
|
|
|
|
*/}}
|
|
|
|
{{ $method := .method }}
|
|
{{ $endpoint := .endpoint }}
|
|
{{ $operation_data := .operation_data }}
|
|
{{ $anchor := anchorize $endpoint }}
|
|
|
|
<section class="rendered-data http-api {{ $method }}">
|
|
|
|
<details {{ if not site.Params.ui.rendered_data_collapsed }}open{{ end }}>
|
|
<summary>
|
|
|
|
<h1 id="{{ lower $method }}{{ $anchor }}">
|
|
<span class="http-api-method {{ $method }}">{{ $method }}</span>
|
|
<span class="endpoint{{ if $operation_data.deprecated }} deprecated-inline{{ end }}">{{ $endpoint }}</span>
|
|
</h1>
|
|
</summary>
|
|
|
|
<hr/>
|
|
|
|
{{ if $operation_data.deprecated }}
|
|
{{ partial "alert" (dict "type" "warning" "omit_title" "true" "content" "This API is deprecated and will be removed from a future release.") }}
|
|
{{ end }}
|
|
|
|
{{ if (index $operation_data "x-addedInMatrixVersion") }}
|
|
{{ partial "added-in" (dict "v" (index $operation_data "x-addedInMatrixVersion")) }}
|
|
{{ end }}
|
|
{{ if (index $operation_data "x-changedInMatrixVersion") }}
|
|
{{ partial "changed-in" (dict "changes_dict" (index $operation_data "x-changedInMatrixVersion")) }}
|
|
{{ end -}}
|
|
|
|
{{ $operation_data.description | page.RenderString (dict "display" "block") }}
|
|
|
|
|
|
<table class="basic-info">
|
|
<tr>
|
|
<th>Rate-limited:</th>
|
|
{{ $rate_limited := index $operation_data.responses "429" }}
|
|
<td>{{ if $rate_limited }}Yes{{ else }}No{{ end }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Requires authentication:</th>
|
|
{{/*
|
|
Authentication is defined with the `security` key. We assume that the
|
|
key is not set if no authentication is necessary. If the key is set,
|
|
authentication is required unless it contains an item that is an empty
|
|
object.
|
|
*/}}
|
|
{{ $requires_authentication := "Yes" }}
|
|
{{ if $operation_data.security }}
|
|
{{ range $operation_data.security }}
|
|
{{ if eq (len (index $operation_data.security 0)) 0 }}
|
|
{{ $requires_authentication = "Optional" }}
|
|
{{ end }}
|
|
{{ end }}
|
|
{{ else }}
|
|
{{ $requires_authentication = "No" }}
|
|
{{ end }}
|
|
<td>{{ $requires_authentication }}</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<hr/>
|
|
{{ partial "openapi/render-request" (dict "parameters" $operation_data.parameters "request_body" $operation_data.requestBody "anchor_base" $anchor ) }}
|
|
<hr/>
|
|
{{ partial "openapi/render-responses" (dict "responses" $operation_data.responses "anchor_base" $anchor ) }}
|
|
|
|
</details>
|
|
|
|
</section>
|