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.
50 lines
1.7 KiB
HTML
50 lines
1.7 KiB
HTML
{{/*
|
|
|
|
This template is used to render the `m.room.message` events.
|
|
|
|
It replaces the old {{msgtype_events}} template.
|
|
|
|
*/}}
|
|
|
|
{{ $path := "event-schemas/schema" }}
|
|
{{ $compact := false }}
|
|
|
|
{{/*
|
|
The old template starts with an explicit list of events, presumably
|
|
to define the order in which they are rendered.
|
|
*/}}
|
|
{{ $msgtypes := (slice "m.room.message$m.text" "m.room.message$m.emote" "m.room.message$m.notice" "m.room.message$m.image" "m.room.message$m.file") }}
|
|
|
|
{{/*
|
|
It excludes `m.room.message$m.server_notice` and `m.room.message$m.key.verification.request`
|
|
since they are in their own modules.
|
|
*/}}
|
|
{{ $excluded := slice "m.room.message$m.server_notice" "m.room.message$m.key.verification.request" }}
|
|
|
|
{{/*
|
|
It then adds any other events that start with `m.room.message`.
|
|
*/}}
|
|
{{ $events := index .Site.Data "event-schemas" "schema" }}
|
|
{{ $expected_prefix := "m.room.message$"}}
|
|
{{ range $object_name, $event_data := $events }}
|
|
|
|
{{ $prefix := substr $object_name 0 (len $expected_prefix) }}
|
|
{{ if and (eq $prefix $expected_prefix) (not (in $excluded $object_name)) (not (in $msgtypes $object_name)) }}
|
|
{{ $msgtypes = $msgtypes | append $object_name }}
|
|
{{ end }}
|
|
|
|
{{ end }}
|
|
|
|
{{ $site_data := .Site.Data }}
|
|
|
|
{{ range $msgtypes }}
|
|
|
|
{{ $event_data := index $site_data "event-schemas" "schema" . }}
|
|
{{ $event_data = partial "json-schema/resolve-refs" (dict "schema" $event_data "path" $path) }}
|
|
{{ $event_data := partial "json-schema/resolve-allof" $event_data }}
|
|
|
|
{{ $event_name := index (split . "$") 1 }}
|
|
{{ partial "events/render-event" (dict "event_name" $event_name "desired_example_name" . "event_data" $event_data)}}
|
|
|
|
{{ end }}
|