Flesh out feature profiles section
Add table detailing the profiles. Add anchors to link through to each module following a well-defined format (rather than the name of the module section). Allow UTF-8 in the spec.
This commit is contained in:
parent
ca9f30a7fd
commit
c6375ed3d1
10 changed files with 54 additions and 2 deletions
|
@ -1,3 +1,38 @@
|
||||||
Feature Profiles
|
Feature Profiles
|
||||||
================
|
================
|
||||||
|
|
||||||
|
Matrix supports many different kinds of clients: from embedded IoT devices to
|
||||||
|
desktop clients. Not all clients can provide the same feature sets as other
|
||||||
|
clients e.g. due to lack of physical hardware such as not having a screen.
|
||||||
|
Clients can fall into one of several profiles and each profile contains a set
|
||||||
|
of features that the client MUST support. This section details a set of
|
||||||
|
"feature profiles". Clients are expected to implement a profile in its entirety
|
||||||
|
in order for it to be classified as that profile.
|
||||||
|
|
||||||
|
Summary
|
||||||
|
-------
|
||||||
|
|
||||||
|
============================ ===== =========== ======== ========= ===== =====
|
||||||
|
Module / Profile Web Embed-Web Mobile Desktop CLI IoT
|
||||||
|
============================ ===== =========== ======== ========= ===== =====
|
||||||
|
`End-to-End Encryption`_ YES YES YES YES
|
||||||
|
`Instant Messaging`_ YES YES YES YES YES YES
|
||||||
|
`Presence`_ YES YES YES YES
|
||||||
|
`Push Notifications`_ YES
|
||||||
|
`Receipts`_ YES YES YES YES
|
||||||
|
`Typing Notifications`_ YES YES YES YES
|
||||||
|
`VoIP`_ YES YES YES
|
||||||
|
`Content Repository`_ YES YES YES YES
|
||||||
|
============================ ===== =========== ======== ========= ===== =====
|
||||||
|
|
||||||
|
*Please see each module for more details on what clients need to implement.*
|
||||||
|
|
||||||
|
.. _End-to-End Encryption: `module:e2e`_
|
||||||
|
.. _Instant Messaging: `module:im`_
|
||||||
|
.. _Presence: `module:presence`_
|
||||||
|
.. _Push Notifications: `module:push`_
|
||||||
|
.. _Receipts: `module:receipts`_
|
||||||
|
.. _Typing Notifications: `module:typing`_
|
||||||
|
.. _VoIP: `module:voip`_
|
||||||
|
.. _Content Repository: `module:content`_
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
Content repository
|
Content repository
|
||||||
==================
|
==================
|
||||||
|
|
||||||
|
.. _module:content:
|
||||||
|
|
||||||
HTTP API
|
HTTP API
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
End-to-End Encryption
|
End-to-End Encryption
|
||||||
=====================
|
=====================
|
||||||
|
|
||||||
|
.. _module:e2e:
|
||||||
|
|
||||||
.. TODO-doc
|
.. TODO-doc
|
||||||
- Why is this needed.
|
- Why is this needed.
|
||||||
- Overview of process
|
- Overview of process
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
Instant Messaging
|
Instant Messaging
|
||||||
=================
|
=================
|
||||||
|
|
||||||
|
.. _module:im:
|
||||||
|
|
||||||
Events
|
Events
|
||||||
------
|
------
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
Presence
|
Presence
|
||||||
========
|
========
|
||||||
|
|
||||||
|
.. _module:presence:
|
||||||
|
|
||||||
Each user has the concept of presence information. This encodes the
|
Each user has the concept of presence information. This encodes the
|
||||||
"availability" of that user, suitable for display on other user's clients.
|
"availability" of that user, suitable for display on other user's clients.
|
||||||
This is transmitted as an ``m.presence`` event and is one of the few events
|
This is transmitted as an ``m.presence`` event and is one of the few events
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
Push Notifications
|
Push Notifications
|
||||||
==================
|
==================
|
||||||
|
|
||||||
|
.. _module:push:
|
||||||
|
|
||||||
Overview
|
Overview
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
Receipts
|
Receipts
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
.. _module:receipts:
|
||||||
|
|
||||||
Receipts are used to publish which events in a room the user or their devices
|
Receipts are used to publish which events in a room the user or their devices
|
||||||
have interacted with. For example, which events the user has read. For
|
have interacted with. For example, which events the user has read. For
|
||||||
efficiency this is done as "up to" markers, i.e. marking a particular event
|
efficiency this is done as "up to" markers, i.e. marking a particular event
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
Typing Notifications
|
Typing Notifications
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
|
.. _module:typing:
|
||||||
|
|
||||||
Client APIs
|
Client APIs
|
||||||
~~~~~~~~~~~
|
~~~~~~~~~~~
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
Voice over IP
|
Voice over IP
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
|
.. _module:voip:
|
||||||
|
|
||||||
Matrix can also be used to set up VoIP calls. This is part of the core
|
Matrix can also be used to set up VoIP calls. This is part of the core
|
||||||
specification, although is at a relatively early stage. Voice (and video) over
|
specification, although is at a relatively early stage. Voice (and video) over
|
||||||
Matrix is built on the WebRTC 1.0 standard. Call events are sent to a room, like
|
Matrix is built on the WebRTC 1.0 standard. Call events are sent to a room, like
|
||||||
|
|
|
@ -122,13 +122,13 @@ def main(input_module, file_stream=None, out_dir=None, verbose=False):
|
||||||
|
|
||||||
# check the input files and substitute in sections where required
|
# check the input files and substitute in sections where required
|
||||||
log("Parsing input template: %s" % file_stream.name)
|
log("Parsing input template: %s" % file_stream.name)
|
||||||
temp = Template(file_stream.read())
|
temp = Template(file_stream.read().decode("utf-8"))
|
||||||
log("Creating output for: %s" % file_stream.name)
|
log("Creating output for: %s" % file_stream.name)
|
||||||
output = create_from_template(temp, sections)
|
output = create_from_template(temp, sections)
|
||||||
with open(
|
with open(
|
||||||
os.path.join(out_dir, os.path.basename(file_stream.name)), "w"
|
os.path.join(out_dir, os.path.basename(file_stream.name)), "w"
|
||||||
) as f:
|
) as f:
|
||||||
f.write(output)
|
f.write(output.encode("utf-8"))
|
||||||
log("Output file for: %s" % file_stream.name)
|
log("Output file for: %s" % file_stream.name)
|
||||||
check_unaccessed("units", units)
|
check_unaccessed("units", units)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue