docs-matrix-spec/layouts/partials/render-example.html
Kévin Commaille 3adbfa30da
Look for examples in all possible locations (#2076)
We used to only look for examples in a few (sometimes arbitrary) places, and we didn't support showing several examples in most cases. This is intended to fix this. In the process we try to deduplicate code to make sure that we use the same logic everywhere.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2025-03-05 09:44:59 +00:00

40 lines
1 KiB
HTML

{{/*
Renders an example to be included in HTML, with support for pretty-printing
JSON.
Parameters:
* `example`: the example
* `mime`: the mime type of the example. Used to pretty-print JSON and for
syntax highlighting. If it is not provided, it is assumed to be
`application/json`.
*/}}
{{ $example := .example }}
{{/*
We need to convert the mime type to a recognized language.
For simplicity we only support JSON, which is also the default. Other mime
types are not highlighted.
*/}}
{{ $language := "json" }}
{{ if (and .mime (ne .mime "application/json")) }}
{{/*
`no-highlight` treats the value as plain text, but still styles the code
block like the ones with proper syntax highlighting.
*/}}
{{ $language = "no-highlight" }}
{{ end }}
{{ if eq $language "json" }}
{{ $example = jsonify (dict "indent" " ") $example }}
{{ $example = replace $example "\\u003c" "<" }}
{{ $example = replace $example "\\u003e" ">" }}
{{ end }}
```{{ $language }}
{{ $example | safeHTML }}
```