You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+18-17Lines changed: 18 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,10 +2,11 @@
2
2
3
3
This repository contains the Matrix Specification, rendered at [spec.matrix.org](http://spec.matrix.org/).
4
4
5
-
Developers looking to use Matrix should join [#matrix-dev:matrix.org](http://matrix.to/#/#matrix-dev:matrix.org)
5
+
Developers looking to use Matrix should join [#matrix-dev:matrix.org](https://matrix.to/#/#matrix-dev:matrix.org)
6
6
on Matrix for help.
7
7
8
-
Spec authors and proposal writers are welcome to join [#matrix-spec:matrix.org](http://matrix.to/#/#matrix-spec:matrix.org). We welcome contributions! See [CONTRIBUTING.rst](./CONTRIBUTING.rst) for details.
8
+
Spec authors and proposal writers are welcome to join [#matrix-spec:matrix.org](https://matrix.to/#/#matrix-spec:matrix.org).
9
+
We welcome contributions! See [CONTRIBUTING.rst](./CONTRIBUTING.rst) for details.
9
10
10
11
## Structure
11
12
@@ -21,7 +22,7 @@ The Matrix spec is compiled with [Hugo](https://gohugo.io/) (a static site gener
21
22
22
23
*`/data`: this can contain TOML, YAML, or JSON files. Files kept here are directly available to template code as
23
24
[data objects](https://gohugo.io/templates/data-templates/), so templates don't need to load them from a file and
24
-
parse them. This is also where our
25
+
parse them. This is also where our Swagger/OpenAPI definitions and schemas are.
25
26
26
27
*`/layouts`: this contains [Hugo templates](https://gohugo.io/templates/). Some templates define the overall layout of
27
28
a page: for example, whether it has header, footer, sidebar, and so on.
@@ -35,8 +36,8 @@ The Matrix spec is compiled with [Hugo](https://gohugo.io/) (a static site gener
35
36
36
37
*`/themes`: you can use just Hugo or use it with a theme. Themes primarily provide additional templates, which are
37
38
supplied in a `/themes/$theme_name/layouts` directory. You can use a theme but customise it by providing your own
38
-
versions of any of the them layouts in the base `/layouts` directory. That is, if a theme provides
39
-
`/themes/$theme_name/layouts/sidebar.html` and you provide `/layouts/sidebar.html`, then your version of this
39
+
versions of any of the theme layouts in the base `/layouts` directory. That is, if a theme provides
40
+
`/themes/$theme_name/layouts/sidebar.html` and you provide `/layouts/sidebar.html`, then your version of the
40
41
template will be used.
41
42
42
43
It also has the following top-level file:
@@ -48,10 +49,9 @@ Additionally, the following directories may be of interest:
48
49
49
50
*`/attic`: Here contains historical sections of specification and legacy drafts for the specification.
50
51
*`/changelogs`: Various bits of changelog for the specification areas.
51
-
*`/event-schemas`: [JSON Schema](http://json-schema.org/) definitions for the spec.
52
52
*`/data-definitions`: Bits of structured data consumable by Matrix implementations.
53
53
*`/meta`: Documentation relating to the spec's processes that are otherwise untracked (release instructions, etc).
54
-
*`/scripts`: Various scripts for generating the spec.
54
+
*`/scripts`: Various scripts for generating the spec and validating its contents.
55
55
*`/proposals`: Matrix Spec Change (MSC) proposals. See <https://spec.matrix.org/unstable/proposals/>.
56
56
57
57
## Authoring changes to the spec
@@ -62,7 +62,8 @@ place after an MSC has been accepted, not as part of a proposal itself.
62
62
1. Install the extended version (often the OS default) of Hugo: <https://gohugo.io/getting-started/installing>
63
63
2. Run `git submodule update --init --recursive` for good measure.
64
64
3. Run `npm i` to install the dependencies. Note that this will require NodeJS to be installed.
65
-
4. Run `npm run get-proposals` to seed the proposals data. This is not required.
65
+
4. Run `npm run get-proposals` to seed proposal data. This is merely for populating the content of the "Spec Change Proposals"
66
+
page and is not required.
66
67
5. Run `hugo serve` to run a local webserver which builds whenever a file change is detected. If watching doesn't appear
67
68
to be working for you, try `hugo serve --disableFastRender` instead.
68
69
6. Edit the specification 🙂
@@ -73,18 +74,18 @@ Awesome. If you're looking at making design-related changes to the spec site, pl
73
74
74
75
## Building the specification
75
76
76
-
If for some reason you're not a CI/CD system and want to render the spec yourself, follow the above steps for authoring
77
-
changes to the specification and instead of `hugo serve` run `hugo -d "spec"` - this will generate the spec to `/spec`.
78
-
If you'd like to serve the spec off a path instead of a domain root (eg: `/unstable`), add `--baseURL "/unstable"` to
79
-
the `hugo -d "spec"` command.
77
+
If for some reason you're not a CI/CD system and want to render a static version of the spec for yourself, follow the above
78
+
steps for authoring changes to the specification and instead of `hugo serve` run `hugo -d "spec"` - this will generate the
79
+
spec to `/spec`. If you'd like to serve the spec off a path instead of a domain root (eg: `/unstable`), add `--baseURL "/unstable"`
80
+
to the `hugo -d "spec"` command.
80
81
81
-
For building the swagger definitions, create a python3 virtualenv and activate it. Then run `pip install -r ./scripts/requirements.txt` and finally `python ./scripts/dump-swagger.py` to generate it to `./scripts/swagger/api-docs.json`.
82
-
To make use of the generated file, there are a number of options:
82
+
For building the swagger definitions, create a python3 virtualenv and activate it. Then run `pip install -r ./scripts/requirements.txt`
83
+
and finally `python ./scripts/dump-swagger.py` to generate it to `./scripts/swagger/api-docs.json`. To make use of the generated file,
84
+
there are a number of options:
83
85
84
-
* It can be uploaded from your filesystem to an online editor/viewer such as
85
-
http://editor.swagger.io/
86
+
* It can be uploaded from your filesystem to an online editor/viewer such as [on the swagger website](http://editor.swagger.io/).
86
87
* You can run a local HTTP server by running `./scripts/swagger-http-server.py`, and then view the documentation via an
87
-
online viewer; for example, at <http://petstore.swagger.io/?url=http://localhost:8000/api-docs.json>
88
+
online viewer; for example, at <http://petstore.swagger.io/?url=http://localhost:8000/api-docs.json>.
88
89
* You can host the swagger UI yourself. See <https://github.com/swagger-api/swagger-ui#how-to-run> for advice on how to
Add support for spoilers ([MSC2010](https://github.com/matrix-org/matrix-doc/pull/2010) and [MSC2557](https://github.com/matrix-org/matrix-doc/pull/2557)), and `color` attribute ([MSC2422](https://github.com/matrix-org/matrix-doc/pull/2422)).
Add `m.key.verification.ready` and `m.key.verification.done` to key verification framework as per [MSC2366](https://github.com/matrix-org/matrix-doc/pull/2366).
0 commit comments