- From: Francois Daoust <fd@w3.org>
- Date: Fri, 08 Oct 2021 17:25:56 +0000
- To: "Ivan Herman" <ivan@w3.org>
- Cc: "spec-prod@w3.org" <spec-prod@w3.org>, Dominique Hazaël-Massieux <dom@w3.org>
Hi Ivan,
Documentation is lacking a bit there.
Built-in processing modules are those that appear in:
https://github.com/w3c/reffy/blob/main/src/browserlib/reffy.json
Essentially, these are the modules that ship in Reffy today:
- css: CSS property definitions
- date: last modified date
- dfns: all term definitions (used to populate the cross-reference
database)
- elements: definitions of markup elements (from HTML and SVG specs)
- generator: tells you whether the spec uses ReSpec, Bikeshed or some
other tool
- headings: information about headings
- idl: Web IDL (used to analyze the IDL and maintain IDL tests in Web
Platform Tests)
- ids: list all IDs available in the spec
- links: links to other specs along with the list of fragments targeted
in these specs.
- refs: list of normative and informative references in the spec (from
the "References" section)
- title: extracts the spec title
What gets generated is essentially what you will find under the relevant
folders in:
https://github.com/w3c/webref/tree/main/ed
There is no built-in module that extracts all normative statements. You
can have a look at the pull request I mentioned [4] for a possible
starting point. Note that it is going to generate ~400MB of data if you
run that across all specs! Also, it probably does not do what you'd like
it to do ;-)
Apart from that, to create a processing module, all you need to do is
create a file whose suffix is ".mjs" that exports a default function:
export default function() {
// The function will run in a headless browser once the spec has been
loaded
// ...
// The function needs to return something that can be serialized as
JSON
// (string, number, object, array)
return "some outcome";
}
Hope that helps,
François.
------ Original message ------
From: "Ivan Herman" <ivan@w3.org>
To: "Francois Daoust" <fd@w3.org>
Cc: "spec-prod@w3.org" <spec-prod@w3.org>; "Dominique Hazaël-Massieux"
<dom@w3.org>
Date: 08/10/2021 18:00:09
>Hi François,
>
>That looks interesting. However, how can I find the available 'built'
>in modules that I can use out of the box? I am interested by that tool
>that extracts all normative statements you refer to in the mail, is
>that an existing module? If not, how do I find some information on how
>I should create such a module?
>
>Thanks
>
>Ivan
>
>>On 8 Oct 2021, at 17:32, Francois Daoust <fd@w3.org> wrote:
>>
>>Hi spec fans,
>>
>>Reffy [1] is the spec crawling and processing tool that powers Webref
>>data updates [2]. In turn, Webref is used to maintain Web IDL tests in
>>Web Platforms Tests, Web IDL types in TypeScripts, and the
>>cross-reference database in ReSpec.
>>
>>As part of TPAC demos released this week, I recorded a short video to
>>showcase how Reffy can be used as a command-line interface tool, which
>>I thought some of you might be interested to look at:
>>
>> https://www.w3.org/2021/10/TPAC/demos/reffy.html
>>
>>The video intends to demonstrate how you may now tame Reffy to run a
>>custom spec processing module of your own, so as to extract specific
>>info from Web specifications. This can typically be used to answer
>>questions such as:
>>
>>- How to find all spec editors in my company? (this was discussed on
>>this mailing-list some time ago, see [3])
>>- Can I create useful extracts to map normative statements in specs to
>>implementation code? (see discussion in [4])
>>- Which specs don't follow the [insert some automatically testable
>>guideline here] guideline?
>>
>>It could also be used to compute plenty of useful or dubious
>>statistics, such as:
>>- What is the average length of an abstract?
>>- How many sections does a table of contents typically have?
>>- How many links, examples, illustrations, notes, etc.?
>>
>>Let us know if you find bugs. Also, we'd love to know if you actually
>>make use of it for something!
>>
>>Thanks,
>>Francois.
>>
>>[1] https://github.com/w3c/reffy
>>[2] https://github.com/w3c/webref
>>[3]
>>https://lists.w3.org/Archives/Public/spec-prod/2021AprJun/0026.html
>>[4] https://github.com/w3c/reffy/pull/153
>>
>>
>
>
>----
>Ivan Herman, W3C
>Home: http://www.w3.org/People/Ivan/
>mobile: +33 6 52 46 00 43
>ORCID ID: https://orcid.org/0000-0003-0782-2704
>
Received on Friday, 8 October 2021 17:25:59 UTC