Kegan Dougal
9c882ea5e4
Detect unused {{ vars }} and whine loudly.
9 years ago
Kegan Dougal
c6375ed3d1
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.
9 years ago
Kegan Dougal
6afdfc0771
Add more logging and make logging context clearer
...
This is now actually useful if you want to debug why your swagger YAML
isn't producing a table you think it should be.
9 years ago
Kegan Dougal
f1adad5fb3
Add more logging with file prefixes
...
This makes the handoff between gendoc and batesian clearer in the logs.
9 years ago
Kegan Dougal
5115346297
Add instant_messaging module; modify batesian section rules
...
Previously, all `m.room.*` events were wodged into `{{room_events}}` which
isn't great when you want to pull specific ones out. Batesian had a 1:1
mapping of `render_foo()` to a section `{{foo}}`, and having to constantly
add functions for new types is a PITA. Batesian now supports returning a
`dict` instead of a section `string` where the keys are the `{{foo}}` and
the value is what will be inserted. Also add conflicting section key checks
to avoid multiple definitions of the same `{{foo}}`. Define dicts for
event schemata and swagger HTTP APIs.
Using this new feature, split out the instant messaging stuff from the events
section, and replace `{{room_events}}` with a list of specific events e.g.
`{{m_room_member_event}}`.
9 years ago
Kegan Dougal
5b134119bd
Add presence module; fix relative title bug
...
If a relative title appeared after an HTTP API table, it
would insert the wrong level because it thought that part
of the table was a title.
9 years ago
Kegan Dougal
388aeefac0
Remove obsolete key
9 years ago
Kegan Dougal
b0eb985523
Merge branch 'master' into spec-restructure-modules
9 years ago
Kegan Dougal
056b5eba22
Partially handle representing top-level array responses
...
If an HTTP API returned a top-level array response, the templating system
would fail to create a table for it. This is now partially fixed by pulling
out the type of the elements (no recursion is done to populate nested tables)
9 years ago
Kegan Dougal
0c0ac3e814
Fix common event fields template to use subtitle char
9 years ago
Kegan Dougal
f71763b0d3
Implement relative title styles
...
Templates don't know at what level they will be inserted. Previously, we
hard-coded the title style which is not compatible with the build target
system. Define a set of styles which will be replaced by the gendoc script
when it encounters them:
'<' : Make this title a sub-heading
'/' : Make this title a heading at the same level
'>' : Make this title a super-heading
The build target system is now basically complete and functioning.
9 years ago
Mark Haines
2efadea583
Merge branch 'master' into markjh/document_v1_rooms_api
9 years ago
Mark Haines
f33c0846c3
Merge remote-tracking branch 'origin/master' into markjh/document_v1_rooms_api
9 years ago
Mark Haines
6b5b8432b3
Turn on code highlighting for HTTP api responses and add a
...
code highlighting stylesheet for the specification.
9 years ago
Mark Haines
7c2ccb1aeb
Merge remote-tracking branch 'origin/master' into markjh/swagger_examples
9 years ago
Mark Haines
7ac5c3766c
Merge remote-tracking branch 'origin/master' into markjh/event-schema
...
Conflicts:
templating/matrix_templates/units.py
9 years ago
Mark Haines
f99a38ce72
Update the hard-coded paths in templating units.py.
...
Replace the hard code paths with global variables.
9 years ago
Mark Haines
63f08bace6
Fix the examples in the swagger API documentation to be valid JSON
9 years ago
Mark Haines
7f81501762
Allow relative references to schema to work in python and node.
...
Rename "schema/v1/core" to "schema/v1/core-event-schema".
Add self-referential symlinks to schema/v1/core-event-schema
The python json schema libraries expect that relative references are
relative to the file they are in. The node json schema libraries
expect that relateive references are relative to the first file loaded.
To support both kinds we reference the core event schema using
"core-event-schema/event.json". We then symlink the core-event-schema
directory to both the location of the file refering to "event.json" so
that it will work in python and to the location of the top level file
so that it will work in node.
9 years ago
Kegan Dougal
5b59c67510
Minor formatting fixes. Fix state event templating.
9 years ago
Mark Haines
315f97e36b
Merge branch 'master' into markjh/document_v1_rooms_api
9 years ago
Mark Haines
380f186273
Log which file a json parse error occurred in
9 years ago
Mark Haines
2cf8da6b20
Update the gendoc script to load the core event schema from
...
separate files.
9 years ago
Daniel Wagner-Hall
a19e18a4da
Merge branch 'master' into daniel/threepidinvites-2
9 years ago
Mark Haines
7eb8b4fde2
Add new-style docs for the APIs for getting events for a room
9 years ago
Daniel Wagner-Hall
59a4e84361
s/registration/login/
9 years ago
Daniel Wagner-Hall
b8e2ac5c1b
Swaggerify /login
9 years ago
Daniel Wagner-Hall
c66a933640
Merge branch 'master' into daniel/threepidinvites-2
9 years ago
Daniel Wagner-Hall
306f91edb3
Specify third party room invitations
...
SYN-458
9 years ago
Kegsay
3011823c51
Merge pull request #27 from matrix-org/receipts
...
Document receipts
9 years ago
Daniel Wagner-Hall
99106bb6fe
Add explanatory comments
...
Also, remove line which was accidentally removed
9 years ago
Daniel Wagner-Hall
f67e27e843
Split on double-newlines not single
...
Otherwise all sorts of tables get horribly broken
9 years ago
Daniel Wagner-Hall
55f33736b2
Preserve newlines in wrapped text
9 years ago
Kegsay
cf3475515e
Merge pull request #33 from matrix-org/daniel/threepidinvites
...
Spec /room/{roomId}/join
9 years ago
Daniel Wagner-Hall
d399e5b93b
Use an alias object rather than flat fields
9 years ago
Kegan Dougal
a92fa6392d
Include patternProperties as normal properties (they basically are just patterns instead of keys; we could probably annotate this more nicely in the future)
9 years ago
Daniel Wagner-Hall
64cfc00f50
Remove unused fluff
9 years ago
Daniel Wagner-Hall
90f5dc370b
Populate aliases from canonical endpoint
...
Swagger validates badly if you have endpoints without the full
specification of things, so instead let's generate them the other way
around.
9 years ago
Daniel Wagner-Hall
d53943c8c2
Spec /room/{roomId}/join
...
This is just replacing the existing spec with a swagger version.
Subsequent pull requests will add 3pid join to this, as well as specing
the invite, leave, ban, and kick endpoints.
9 years ago
Daniel Wagner-Hall
26ebe3e68b
Add ability to refer to aliases of endpoints
9 years ago
Daniel Wagner-Hall
5031c26f7b
Make res optional, and rename to good_response
9 years ago
Daniel Wagner-Hall
0a9f61029a
Allow for missing responses key
9 years ago
Daniel Wagner-Hall
94b13c0121
Show all responses, not just the successful one
...
This still filters out responses lacking either a description or an
example
9 years ago
Kegan Dougal
e572cc662a
Restructure the first few sections.
...
Remove unecessary sections; put presnece/profile sections on the right level.
Move Living Standard warning to the top of the Introduction section.
10 years ago
Kegan Dougal
c42bfabaad
Order the status API before presence lists because it is more important.
10 years ago
Kegan Dougal
e10859a887
Replace presence API with new template.
10 years ago
Kegan Dougal
334e10468d
Add presence swagger and template.
10 years ago
Kegan Dougal
ec631c60d4
Add link to github commit for the spec as per request.
10 years ago
Kegan Dougal
14d004146b
Implement nested tables for HTTP APIs. It even works(!)
10 years ago
Kegan Dougal
0275c2ffa0
Add sync API yaml. Add template for sync_http_api.
10 years ago
Kegan Dougal
bb9537b824
Add a CHANGELOG. Modify table CSS.
...
Hook up templating system to read the CHANGELOG for version and changelog info.
Modified nature.css to make it clearer on table headings/sub-headings. Use the
full _matrix/client path on title links to make it clear it is for v1.
10 years ago
Kegan Dougal
8a676a2b9d
Add sortFn for profile HTTP API. Add combined profile HTTP API.
10 years ago
Kegan Dougal
704cd14030
Add in response format for APIs. Standardise on 'key' rather than 'name'.
10 years ago
Kegan Dougal
f6c98f41e9
Use table subsections for param locations instead of an extra column.
10 years ago
Kegan Dougal
ba6ce16509
Modify how descriptions are shown. Add profile API descriptions.
10 years ago
Kegan Dougal
862f5a3a53
Add structure for adding examples to HTTP APIs.
...
Use 'x-example' to add examples to parameters which are not in 'body' (swagger
doesn't define that currently). Add profile API examples. Add necessary glue
and templates to make it all work.
10 years ago
Kegan Dougal
c75fd6bcae
Add HTTP API wip template.
10 years ago
Kegan Dougal
5795e1ceda
Add profile API examples and extract examples for template usage.
10 years ago
Kegan Dougal
fe7ffafc15
Factor out json schema object processing since swagger uses it too. Hook swagger up.
10 years ago
Kegan Dougal
d090389d01
Start pre-processing swagger APIs before passing to sections.
10 years ago
Kegan Dougal
1dc3d82664
Load swagger APIs as templating units. Check sections return strings.
10 years ago
Kegan Dougal
f134728268
Link to msgtypes from the description of m.room.message.
10 years ago
Kegan Dougal
c3a298a5df
Fix sort order for VoIP events.
10 years ago
Kegan Dougal
ac7ccfa622
Add {{presence_events}}. Factor out common code in MatrixSections.
10 years ago
Kegan Dougal
9abadaf7af
Add {{presence_events}} template.
10 years ago
Kegan Dougal
e046402a4a
Shift msgtype section order to have common (implemented) types first.
10 years ago
Kegan Dougal
6f330bd879
Gut the old msgtypes section and replace with {{msgtype_events}}
10 years ago
Kegan Dougal
59f856c7e6
Factor out ImageInfo into a core type. Refer to that in other msgtypes.
...
Add templating for msgtypes. ImageInfo core type is not referred to for
m.image in order for the ImageInfo table to render for it.
10 years ago
Kegan Dougal
06177740d4
Tweak how constants are represented.
10 years ago
Kegan Dougal
9d532f30e8
Add {{voip_events}}. Add more info on sections when asked via build.py -s
10 years ago
Kegsay
2a02b3494f
Minor tweaks
10 years ago
Kegan Dougal
89083b3a86
Add {{spec_version}}. Update build.py module docs.
10 years ago
Kegsay
c721bb7e61
Update template readme
10 years ago
Kegan Dougal
5b31c442f5
Completely split up the templating system from the Matrix Spec template code.
...
The two are now linked together in build.py by specifying the input module.
Updated gendoc.py to specify the right module.
10 years ago
Kegan Dougal
8e1d6899c2
Start encapsulating Units too. Add debug option which controls logging.
10 years ago
Kegan Dougal
96671ce833
Use the templating system to set {{git_version}}. Restructure sections code.
...
Restructured the sections code to be slightly more encapsulated than before.
This will be expanded to more clearly separate the templating system from
the specific implementation of the spec templates.
10 years ago
Kegan Dougal
d3dca1f357
Sort keys alphabetically in tables. Sort event types alphabetically in sections.
10 years ago
Kegan Dougal
dc5c01607b
Sort out table layout and rejig where state_key is placed.
10 years ago
Kegan Dougal
ed4ce6950c
Template up common event fields from the 'core' json schema file.
10 years ago
Kegan Dougal
6dcbc40b63
Add common event field descriptions and template.
10 years ago
Kegan Dougal
54783a59c3
Put state_key info on same line as State Event text.
10 years ago
Kegan Dougal
4ea5da44d0
Include enum information.
10 years ago
Kegan Dougal
b6b8971491
Use ~ not - for event sections.
10 years ago
Kegan Dougal
73d84f3722
Add descriptions to state_keys. Add it into the template.
10 years ago
Kegan Dougal
989ea02219
s/Key/Content Key/
10 years ago
Kegan Dougal
ea9c6496bb
Account for 'required' text when wrapping desc column.
10 years ago
Kegan Dougal
a7f3d39da2
Use the entire event in the example JSON. Sort keys on JSON.
10 years ago
Kegan Dougal
6d3dd045a5
Line wrap 80 on desc, show the type of items in the array rather '[array]'
10 years ago
Kegan Dougal
a42a22028c
Add event table template. Also inspect arrays for objects.
10 years ago
Kegan Dougal
0899e0b772
Update event schema parsing.
...
The templating system now parses event schemas into a form which
can be easily dumped into multiple tables (for nested object types)
10 years ago
Kegan Dougal
02c44a889e
Remove stuff from 20_events.rst and replace with {{room_events}}. Update gendoc to call build.py for template vars.
10 years ago
Kegan Dougal
75e7d09fc8
Remove newlines from json: move line wrapping to the template files.
10 years ago
Kegan Dougal
8f448a1764
Produce valid JSON (escape \n), add indent filter
10 years ago
Kegan Dougal
2e5809a68e
Make build.py accept generic files for template var substitutions.
...
This allows us to incrementally convert sections of the spec to use this
templating system. E.g. './build.py ../specification/20_events.rst' where
that .rst file has {{room_events}} in it somewhere. Add ability to show
a list of valid template vars to use (e.g. room_events) by running
'./build.py --show-template-vars'.
10 years ago
Kegan Dougal
1a65c051e8
Whitespace
10 years ago
Kegan Dougal
c61223fb27
Add title/desc to lots of event schemas, add missing keys (e.g. avatar_url, displayname), add required keys section to spec.
10 years ago
Kegan Dougal
c237c9010a
Actually produce valid RST from the template
10 years ago
Kegan Dougal
8643b4aadd
Update v1 paths, recursively print JSON format for arrays as well as objects.
10 years ago
Kegan Dougal
3c0b564977
Whine if there are missing variables that the template needs.
10 years ago
Kegan Dougal
7563f1058b
Make the templating system work(!)
10 years ago
Kegan Dougal
4e64d9e340
Start fleshing out build script
10 years ago
Kegan Dougal
0b8b77697b
Add templating folder and stub files/templates.
10 years ago