You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
2.8 KiB
HTML
98 lines
2.8 KiB
HTML
{{/*
|
|
|
|
Renders a single event, given:
|
|
|
|
* `event_name`: the name we want to display 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`.
|
|
|
|
*/}}
|
|
|
|
{{ $event_name := .event_name }}
|
|
{{ $desired_example_name := .desired_example_name }}
|
|
{{ $event_data := .event_data }}
|
|
|
|
<section class="rendered-data event">
|
|
|
|
<details {{ if not .Site.Params.ui.rendered_data_collapsed }}open{{ end }}>
|
|
<summary>
|
|
|
|
<h1 id="{{ anchorize $event_name }}">
|
|
<code>{{ $event_name }}</code>
|
|
</h1>
|
|
|
|
<hr/>
|
|
|
|
{{ if (index $event_data "x-addedInMatrixVersion") }}
|
|
{{ partial "added-in" (dict "v" (index $event_data "x-addedInMatrixVersion")) }}
|
|
{{ end }}
|
|
|
|
{{ $event_data.description | markdownify }}
|
|
|
|
</summary>
|
|
|
|
{{ $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>
|
|
|
|
{{ $additional_types := partial "json-schema/resolve-additional-types" $event_data.properties.content }}
|
|
|
|
{{ range $additional_types }}
|
|
{{ partial "openapi/render-object-table" (dict "caption" .title "properties" .properties "required" .required) }}
|
|
{{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 }}
|
|
{{ $example_content := partial "json-schema/resolve-refs" (dict "schema" $example "path" "event-schemas/examples") }}
|
|
```json
|
|
{{ jsonify (dict "indent" " ") $example_content }}
|
|
```
|
|
{{ end }}
|
|
{{/*
|
|
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 }}
|
|
{{ $example_content := partial "json-schema/resolve-refs" (dict "schema" $example "path" "event-schemas/examples") }}
|
|
{{ $example_json := jsonify (dict "indent" " ") $example_content }}
|
|
{{ $example_json = replace $example_json "\\u003c" "<" }}
|
|
{{ $example_json = replace $example_json "\\u003e" ">" | safeHTML }}
|
|
|
|
```json
|
|
{{ $example_json }}
|
|
```
|
|
{{ end }}
|
|
{{ end }}
|
|
{{ end }}
|
|
|
|
</section>
|