Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OWD project: Doc structures for WebIDL concepts #159

Open
1 of 6 tasks
Elchi3 opened this issue Jun 8, 2023 · 2 comments
Open
1 of 6 tasks

OWD project: Doc structures for WebIDL concepts #159

Elchi3 opened this issue Jun 8, 2023 · 2 comments
Assignees
Labels
H1 2024 Projects for the first half of 2024

Comments

@Elchi3
Copy link
Member

Elchi3 commented Jun 8, 2023

Problem statement

In MDN Web API reference docs, we've been using WebIDL to derive rules for how we want to structure and make the API docs most consistent and useful for web developers.

For example, we said:

  • Interfaces always get a page and Interface members are subpages.
  • We avoid documenting mixins or dictionaries
  • Static API members get the _static suffix in the MDN page slug and in BCD paths.
  • etc.

For certain WebIDL concepts, or annotations, we are less clear how to consistently document things. For example,

  • Maplikes and setlikes
  • stringifiers, jsonifiers
  • (... and more)

Proposed solutions

Provide MDN authors (and readers) a clear structure for Web API docs by agreeing on how and where to document aspects of Web APIs like maplikes, jsonifiers, (async) iterables etc.

Ideal outcome: Any WebIDL fragment can be taken and it is clear what it will mean in terms of structure and docs on MDN and in BCD. This will make the docs predictable and also it will be easier to generate docs from tooling with consistent structures.

Task list

  • Investigate and list which sort of WebIDL concepts exist (use webref or similar)
  • For each WebIDL concept, determine if we have agreement how to document it on MDN and how we record it in BCD.
  • For each unclear concept, start a discussion and come to a rule.
  • Update MDN and BCD per the new rules
  • Update MDN meta docs
  • Find a place for where WebIDL concepts are explained to web developers (consensus seems to not do this in the glossary)

A good starting point is mdn/browser-compat-data#6367

Priority assessment

  • Effort: Unclear, initial research needed.
  • Dependencies:
  • Community enablement: Discussion will be in the open. Feedback will be welcome.
  • Momentum:
  • Enabling learners:
  • Enabling professionals:
  • Underrepresented topics / Ethical web:
  • Operational necessities:
  • Addressing needs of the web industry:

More information

Open Web Docs (OWD) is a non-profit collective funded by corporate and individual donations.

In order for this project to happen, please consider donating to OWD on https://opencollective.com/open-web-docs.
For more information on sponsorship and membership tiers, see https://openwebdocs.org/membership/

More information is available at https://openwebdocs.org/.
For questions, please reach out to florian@openwebdocs.org.

@Elchi3 Elchi3 changed the title OWD project: Docs for WebIDL concepts OWD project: Doc structures for WebIDL concepts Jun 9, 2023
@Josh-Cena
Copy link

Josh-Cena commented Jun 24, 2023

See also mdn/content#7844, mdn/content#6891

@Elchi3 Elchi3 added H2 2023 Projects for July-December 2023 and removed not ready labels Jun 27, 2023
@Elchi3 Elchi3 mentioned this issue Jul 3, 2023
6 tasks
@teoli2003
Copy link
Member

teoli2003 commented Jul 26, 2023

I used WebRef to start building a list of concepts to document, that is, concepts actually in use. Some will lead to significant work; others should be reasonably quick to deal with.

(This list is a WIP)

Extended attributes

Legacy extended attributes

Other extended attributes

Special types

  • setlike<…>
  • maplike<…>
  • sequence<…>
  • iterable<…>
  • record<…>
  • Promise<…> (especially Promise<undefined>)
  • Array<…>
  • FrozenArray<…>
  • typedef
  • Pseudo-typedef (( … or … ))
  • any

Special operations

  • getter (named)
  • getter (unnamed
  • stringifier
  • inherit attribute

Special typedefs

  • CSSOMString
  • USVString
  • DOMString
  • ByteString
  • DOMHighResTimeStamp
  • DOMTimeStamp

Others

  • callback, how to document these?

@Elchi3 Elchi3 added h1 2023 Projects for the first half of 2023 H1 2024 Projects for the first half of 2024 and removed H2 2023 Projects for July-December 2023 h1 2023 Projects for the first half of 2023 labels Feb 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
H1 2024 Projects for the first half of 2024
Projects
None yet
Development

No branches or pull requests

3 participants