matrix-spec/layouts/_partials/events/render-event.html
Kim Brose 2baca03e6b
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
Spec / Create release (push) Has been cancelled
Typos and clarifications (#2318)
Signed-off-by: HarHarLinks <2803622+HarHarLinks@users.noreply.github.com>
2026-03-03 16:41:50 +00:00

109 lines
3.2 KiB
HTML

{{/*
Renders a single event, given:
* `event_name`: the name to use for the event
* `event_data`: the event specification
* `desired_example_name` (optional): the exact name of the examples to render.
If `desired_example_name` is omitted we render all examples
whose names start with the `event_name`.
* `title` (optional): the title to display. May contain markdown. Defaults to
`event_name` wrapped in a <code> element.
*/}}
{{ $event_name := .event_name }}
{{ $desired_example_name := .desired_example_name }}
{{ $event_data := .event_data }}
{{ $anchor := anchorize $event_name }}
<section class="rendered-data event">
<details {{ if not .Site.Params.ui.rendered_data_collapsed }}open{{ end }}>
<summary>
<h1 id="{{ $anchor }}">
{{ with .title }}{{ . | markdownify }}{{ else }}<code>{{ $event_name }}</code>{{ end }}
{{ partial "td/heading-self-link.html" (dict "Anchor" $anchor) }}
</h1>
</summary>
<hr>
{{ if (index $event_data "x-addedInMatrixVersion") }}
{{ partial "added-in" (dict "v" (index $event_data "x-addedInMatrixVersion")) }}
{{ end }}
{{ if (index $event_data "x-changedInMatrixVersion") }}
{{ partial "changed-in" (dict "changes_dict" (index $event_data "x-changedInMatrixVersion")) }}
{{ end -}}
{{ $event_data.description | markdownify }}
{{ $state_key := index $event_data.properties "state_key" }}
<table class="basic-info">
<tr>
<th>Event type:</th>
<td>{{ if $state_key }}State event{{ else }}Message event{{ end }}</td>
</tr>
{{ if $state_key }}
<tr>
<th>State key:</th>
<td>{{ $state_key.description | markdownify }}</td>
</tr>
{{ end }}
</table>
<h2>Content</h2>
{{ $anchor_base := anchorize $event_name }}
{{ $additional_types := partial "json-schema/resolve-additional-types" (dict
"schema" $event_data.properties.content
"anchor_base" $anchor_base
) }}
{{ range $additional_types }}
{{ partial "openapi/render-object-table" . }}
{{end}}
<h2>Examples</h2>
{{ $all_examples := index site.Data "event-schemas" "examples" }}
{{ range $example_name, $example := $all_examples }}
{{/*
This is to allow the msgtype template to work.
It lets callers specify exactly the name of the example they want
*/}}
{{ if $desired_example_name }}
{{ if eq $example_name $desired_example_name }}
{{ partial "events/example" (dict "schema" $example "name" $example_name) }}
{{ end }}
{{/*
If `$desired_example_name` is not given, we will include any
example that is equal to the event name. Normally, this would
be handled by the case below, but that case does not work if
the event name includes a "$".
*/}}
{{ else if eq $event_name $example_name }}
{{ partial "events/example" (dict "schema" $example "name" $example_name) }}
{{/*
If `$desired_example_name` is not given, we will include any
examples whose first part (before "$") matches the event name
*/}}
{{ else }}
{{ $pieces := split $example_name "$" }}
{{ $example_base_name := index $pieces 0 }}
{{ if eq $event_name $example_base_name }}
{{ partial "events/example" (dict "schema" $example "name" $example_name) }}
{{ end }}
{{ end }}
{{ end }}
</details>
</section>