mirror of
https://github.com/matrix-org/matrix-spec
synced 2026-05-01 06:34:09 +02:00
Compare commits
4 commits
d281b10b89
...
5d912fec16
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5d912fec16 | ||
|
|
252de984cc | ||
|
|
a6112535bf | ||
|
|
fdd2a9abe8 |
4
.github/workflows/main.yml
vendored
4
.github/workflows/main.yml
vendored
|
|
@ -236,6 +236,10 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
tar -C "spec${baseURL}" --strip-components=1 -xzf openapi.tar.gz
|
tar -C "spec${baseURL}" --strip-components=1 -xzf openapi.tar.gz
|
||||||
|
|
||||||
|
- name: "🔍 pagefind indexing"
|
||||||
|
run: |
|
||||||
|
npx -y pagefind --site "spec${baseURL}"
|
||||||
|
|
||||||
- name: "📦 Tarball creation"
|
- name: "📦 Tarball creation"
|
||||||
run: |
|
run: |
|
||||||
cd spec
|
cd spec
|
||||||
|
|
|
||||||
|
|
@ -661,3 +661,9 @@ dd {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Style for page search */
|
||||||
|
#search {
|
||||||
|
display: none;
|
||||||
|
padding-bottom: 1rem;
|
||||||
|
}
|
||||||
1
changelogs/client_server/newsfragments/2328.feature
Normal file
1
changelogs/client_server/newsfragments/2328.feature
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Add the `is_animated` flag to the `info` object of the `m.image` msgtype and the `m.sticker` event, as per [MSC4230](https://github.com/matrix-org/matrix-spec-proposals/pull/423O).
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Add link to JSON signing algorithm in server-server auth section for clarity. Contributed by @thetayloredman.
|
||||||
1
changelogs/internal/newsfragments/2331.feature
Normal file
1
changelogs/internal/newsfragments/2331.feature
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Add page search widget.
|
||||||
|
|
@ -277,12 +277,12 @@ queried from multiple servers to mitigate against DNS spoofing.
|
||||||
|
|
||||||
Every HTTP request made by a homeserver is authenticated using public
|
Every HTTP request made by a homeserver is authenticated using public
|
||||||
key digital signatures. The request method, target and body are signed
|
key digital signatures. The request method, target and body are signed
|
||||||
by wrapping them in a JSON object and signing it using the JSON signing
|
by wrapping them in a JSON object and signing it using the [JSON signing
|
||||||
algorithm. The resulting signatures are added as an Authorization header
|
algorithm](/appendices#signing-json). The resulting signatures are added
|
||||||
with an auth scheme of `X-Matrix`. Note that the target field should
|
as an Authorization header with an auth scheme of `X-Matrix`. Note that
|
||||||
include the full path starting with `/_matrix/...`, including the `?`
|
the target field should include the full path starting with `/_matrix/...`,
|
||||||
and any query parameters if present, but should not include the leading
|
including the `?` and any query parameters if present, but should not
|
||||||
`https:`, nor the destination server's hostname.
|
include the leading `https:`, nor the destination server's hostname.
|
||||||
|
|
||||||
Step 1 sign JSON:
|
Step 1 sign JSON:
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,8 @@
|
||||||
"h": 398,
|
"h": 398,
|
||||||
"w": 394,
|
"w": 394,
|
||||||
"mimetype": "image/jpeg",
|
"mimetype": "image/jpeg",
|
||||||
"size": 31037
|
"size": 31037,
|
||||||
|
"is_animated": false
|
||||||
},
|
},
|
||||||
"url": "mxc://example.org/JWEIFJgwEIhweiWJE",
|
"url": "mxc://example.org/JWEIFJgwEIhweiWJE",
|
||||||
"msgtype": "m.image"
|
"msgtype": "m.image"
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,8 @@
|
||||||
"mimetype": "image/png",
|
"mimetype": "image/png",
|
||||||
"h": 200,
|
"h": 200,
|
||||||
"w": 140,
|
"w": 140,
|
||||||
"size": 73602
|
"size": 73602,
|
||||||
|
"is_animated": true
|
||||||
},
|
},
|
||||||
"h": 200,
|
"h": 200,
|
||||||
"thumbnail_url": "mxc://matrix.org/sHhqkFCvSkFwtmvtETOtKnLP",
|
"thumbnail_url": "mxc://matrix.org/sHhqkFCvSkFwtmvtETOtKnLP",
|
||||||
|
|
|
||||||
|
|
@ -34,5 +34,19 @@ properties:
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: thumbnail_info.yaml
|
- $ref: thumbnail_info.yaml
|
||||||
description: Metadata about the image referred to in `thumbnail_url`.
|
description: Metadata about the image referred to in `thumbnail_url`.
|
||||||
|
is_animated:
|
||||||
|
x-addedInMatrixVersion: "1.18"
|
||||||
|
description: |-
|
||||||
|
If this flag is `true`, the original image SHOULD be assumed to be
|
||||||
|
animated. If this flag is `false`, the original image SHOULD be assumed to
|
||||||
|
NOT be animated.
|
||||||
|
|
||||||
|
If a sending client is unable to determine whether an image is animated,
|
||||||
|
it SHOULD leave the flag unset.
|
||||||
|
|
||||||
|
Receiving clients MAY use this flag to optimize whether to download the
|
||||||
|
original image rather than a thumbnail if it is animated, but they SHOULD
|
||||||
|
NOT trust this flag.
|
||||||
|
type: boolean
|
||||||
title: ImageInfo
|
title: ImageInfo
|
||||||
type: object
|
type: object
|
||||||
|
|
|
||||||
|
|
@ -16,3 +16,7 @@
|
||||||
{{ $inter := resources.Get "css/fonts/Inter.css" -}}
|
{{ $inter := resources.Get "css/fonts/Inter.css" -}}
|
||||||
<link rel="preload" href="{{ $inter.RelPermalink }}" as="style">
|
<link rel="preload" href="{{ $inter.RelPermalink }}" as="style">
|
||||||
<link rel="stylesheet" href="{{ $inter.RelPermalink }}">
|
<link rel="stylesheet" href="{{ $inter.RelPermalink }}">
|
||||||
|
|
||||||
|
{{/* Load Pagefind stuff to power the page search. */}}
|
||||||
|
<link href="/pagefind/pagefind-ui.css" rel="stylesheet">
|
||||||
|
<script src="/pagefind/pagefind-ui.js"></script>
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,28 @@
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
|
<li class="nav-item" id="search-button">
|
||||||
|
<a class="nav-link" href="#" role="button">Search</a>
|
||||||
|
</li>
|
||||||
|
<script>
|
||||||
|
document.querySelector("#search-button").addEventListener("click", (event) => {
|
||||||
|
const search = document.querySelector("#search");
|
||||||
|
|
||||||
|
if (search.style.display === "block") {
|
||||||
|
// Hide the search widget.
|
||||||
|
search.style.display = "none";
|
||||||
|
} else {
|
||||||
|
// Initialise the search widget if needed.
|
||||||
|
if (!search.innerHTML.length) {
|
||||||
|
new PagefindUI({ element: "#search", showSubResults: true });
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unhide and focus the search widget.
|
||||||
|
search.style.display = "block";
|
||||||
|
search.querySelector("input").focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
{{ if .Site.Params.versions -}}
|
{{ if .Site.Params.versions -}}
|
||||||
<li class="nav-item dropdown d-none d-lg-block td-navbar__version-menu">
|
<li class="nav-item dropdown d-none d-lg-block td-navbar__version-menu">
|
||||||
{{ partial "navbar-version-selector.html" . -}}
|
{{ partial "navbar-version-selector.html" . -}}
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,7 @@
|
||||||
</aside>
|
</aside>
|
||||||
<main class="col-12 col-md-9 col-xl-8 ps-md-5" role="main">
|
<main class="col-12 col-md-9 col-xl-8 ps-md-5" role="main">
|
||||||
{{ partial "version-banner.html" . }}
|
{{ partial "version-banner.html" . }}
|
||||||
|
<div id="search"></div>
|
||||||
{{ if not (.Param "ui.breadcrumb_disable") -}}
|
{{ if not (.Param "ui.breadcrumb_disable") -}}
|
||||||
{{ partial "breadcrumb.html" . -}}
|
{{ partial "breadcrumb.html" . -}}
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue