[ReSpec]: New features and fixes! šŸŽ

Hello all,

As we mentioned in our previous email, I was granted a Mozilla Open
Source Support Award which funded some additional development of
ReSpec over the last 3 months. As the grant period comes to an end,
Iā€™d like to share some of the developments.

tl;dr:

- Single-page documentation is back! Visit https://respec.org/docs/
- Added <section id="index"> ā€” generates an index of definitions and
referenced terms!
- Support for ā€œdata-dfn-for=ā€  to define object-property conceptual
relationships (e.g., [=list/for each=])
- Dynamically getting W3C Group info from W3C API via the ā€œgroupā€
config option (e.g., "group": "webapps")
- Lots of bug fixes, enhancements, and features!

## Revamped Documentation

You can access the brand-new single-page documentation at
https://respec.org/docs/.

The single-page view means itā€™s easy to Ctrl+F to search for what you
are looking for, just like any spec. The table of contents provides a
quick overview of the configuration options, examples, and other
guides at a glance!

With the new single-page view, the documentation is now better
structured. It's been revamped and updated to remove deprecated
features, and we've documented new features and added
cross-references.

Best of all, the documentation is generated directly from ReSpecā€™s
wiki: https://github.com/w3c/respec/wiki

One can now edit the wiki and the changes automatically appear in the
docs. The documentation also contains links to edit specific wiki
pages.

## Index of Definitions

You can now do away with your specā€™s ā€œDependenciesā€ section! Adding a
`<section id="index"></section>` generates an in-place index of terms
defined by the current document, as well as an index of terms
referenced from other specifications.

Clicking on a term in ā€œTerms defined by this specificationā€ index
takes you to its definition, and clicking on a term in ā€œTerms defined
by referenceā€ index opens a panel showing the usage of definition in
the current document. It's handy to have all definitions in a single
place!

You can explore a live example in the Page Visibility API
Specification - https://w3c.github.io/page-visibility/#index.

## Contextual concept definitions

Respec now allows you to define that a particular concept is ā€œforā€, or
strongly related to, another concept - and also as a way of
disambiguating two terms. For example, we can define that a ā€œdocument
is visibleā€ and a ā€œwindow is visibleā€ like so:

    <dfn data-dfn-for="Document">visible</dfn>
    <dfn data-dfn-for="Window">visible</dfn>

And then we can talk about each uniquely like so: The [=document=] is
[=Document/visible=] and the [=window=] is also [=Window/visible=].

Read more at: https://respec.org/docs/#data-link-for

## `group` configuration option

With a new configuration option ā€” ā€œgroupā€, you can specify a ā€œshort
nameā€ for the WG/CG and let ReSpec figure out the details for you. The
wg, wgId, wgURI, and wgPatentURI options are deprecated in favour of
ā€œgroupā€.

Read more at https://respec.org/docs/#group.

## New features and enhancements

The following are some of the notable improvements in ReSpec:

- Definitions panels now also work in static exported documents.
- A new configuration option ā€” ā€œmodificationDateā€, adds an in-place
edit date of an already published document [1].
- Exported definitions have an "exported" label in the definition
panel, making them easier to spot and use!
- A new linter rule ā€” ā€œno-unused-varsā€, warns you if you declare and
variable and not use it [2].
- A new attribute ā€” ā€œdata-max-tocā€, lets you control Table of Content
depth per section [3].
- Markdown code snippets can be treated as examples [4].
- Improved markdown `data-include=` support.
- Reduced payload size by 10KB to ~80KB with Brotli compression [5].

A more detailed changelog is also available:
https://github.com/w3c/respec/blob/9ea3388/CHANGELOG.md

[1]: https://respec.org/docs/#modificationDate
[2]: https://respec.org/docs/#no-unused-vars
[3]: https://respec.org/docs/#data-max-toc
[4]: https://respec.org/docs/#code-blocks
[5]: https://respec.org/dashboard/

## What's next?

Marcos and Saschanaz have been doing lots of code reviews, and they
surely missed writing code for ReSpec. So, both Marcos and Saschanaz
will make a comeback as core maintainers once the grant period ends on
July 24th. I will continue to contribute in my spare time again.

More concretely, we have some things planned in a Kanban board at
https://github.com/w3c/respec/projects/4.

## Support ReSpec

If you and member company would like to continue to support the
development of ReSpec, we'd like to encourage you to donate to our
open-source collective - any little bit helps:
https://opencollective.com/respec

We would like to express our gratitude to Xiaoqian Wu (siusin) and
Fuqiao Xue (xfq) for their contributions of $50 each. Special thanks
to Jory Burson for her continued monthly support! We would also like
to thank others who have contributed in the past šŸ˜‡. You all rock!

You can also help ReSpec by filing issues for any bugs you come
across, and enhancements you would like to have. Thatā€™s more work for
us, but creating a good product is a life goalā„¢ļø.

Kind Regards,
Sid Vishnoi
https://twitter.com/sid_vishnoi

Received on Tuesday, 21 July 2020 07:14:13 UTC