├── .gitattributes.template ├── .gitignore.template ├── .pr-preview.json.template ├── .editorconfig ├── .github ├── ISSUE_TEMPLATE │ ├── config.yml.template │ ├── 0-new-issue.yml.template │ └── 1-new-feature.yml.template └── workflows │ └── build.yml.template ├── .editorconfig.template ├── README.md ├── Makefile.template ├── PULL_REQUEST_TEMPLATE.md.template ├── README.md.template ├── README.md.anne.template-part ├── factory.json ├── factory.py ├── LICENSE └── LICENSE.template /.gitattributes.template: -------------------------------------------------------------------------------- 1 | * text=auto 2 | *.bs diff=html linguist-language=HTML 3 | -------------------------------------------------------------------------------- /.gitignore.template: -------------------------------------------------------------------------------- 1 | /@@shortname@@.spec.whatwg.org/ 2 | /deploy.sh 3 | /@@bs@@.html@@.gitignore@@ 4 | -------------------------------------------------------------------------------- /.pr-preview.json.template: -------------------------------------------------------------------------------- 1 | { 2 | "src_file": "@@bs@@.bs", 3 | "type": "bikeshed", 4 | "params": { 5 | "force": 1, 6 | "md-status": "LS-PR", 7 | "md-Text-Macro": "PR-NUMBER {{ pull_request.number }}" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_size = 2 8 | indent_style = space 9 | trim_trailing_whitespace = true 10 | 11 | [Makefile.template] 12 | indent_style = tab 13 | 14 | [*.py] 15 | indent_size = 4 16 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml.template: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Chat 4 | url: https://whatwg.org/chat 5 | about: Please do reach out with questions and feedback! 6 | - name: Stack Overflow 7 | url: https://stackoverflow.com/ 8 | about: If you're having trouble building a web page, this is not the right repository. Consider asking your question on Stack Overflow instead. 9 | -------------------------------------------------------------------------------- /.editorconfig.template: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | charset = utf-8 7 | indent_size = 2 8 | indent_style = space 9 | trim_trailing_whitespace = true 10 | max_line_length = 100 11 | 12 | [Makefile] 13 | indent_style = tab 14 | 15 | [*.md] 16 | max_line_length = off 17 | 18 | [*.bs] 19 | indent_size = @@bikeshed_indent_size@@@@bikeshed_max_line_length@@ 20 | 21 | [*.py] 22 | indent_size = 4 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | This repository enables repositories of WHATWG standards to be organized centrally to a certain extent. This is useful for the support files (the files with the `.template` and `.template-part` extensions), which are often nearly identical and prone to errors. 2 | 3 | `factory.py` takes care of updating existing WHATWG standard repositories. It assumes they are in parallel directories using their "shortname" as directory name. `factory.json` supplies data for a exceptional cases. 4 | -------------------------------------------------------------------------------- /.github/workflows/build.yml.template: -------------------------------------------------------------------------------- 1 | name: Build 2 | 3 | on: 4 | pull_request: 5 | branches: 6 | - main 7 | push: 8 | branches: 9 | - main 10 | workflow_dispatch: 11 | 12 | jobs: 13 | build: 14 | name: Build 15 | runs-on: ubuntu-24.04 16 | steps: 17 | - uses: actions/checkout@v6 18 | with: 19 | fetch-depth: 2 20 | - uses: actions/setup-python@v6 21 | with: 22 | python-version: "3.14"@@build_with_node@@ 23 | - run: pip install bikeshed && bikeshed update 24 | # Note: `make deploy` will do a deploy dry run on PRs. 25 | - run: make deploy 26 | env: 27 | SERVER: ${{ secrets.MARQUEE_SERVER }} 28 | SERVER_PUBLIC_KEY: ${{ secrets.MARQUEE_PUBLIC_KEY }} 29 | SERVER_DEPLOY_KEY: ${{ secrets.MARQUEE_DEPLOY_KEY }} 30 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/0-new-issue.yml.template: -------------------------------------------------------------------------------- 1 | name: New issue 2 | description: File a new issue against the @@h1@@ Standard. 3 | body: 4 | - type: markdown 5 | attributes: 6 | value: | 7 | Before filling out this form, please familiarize yourself with the [Code of Conduct](https://whatwg.org/code-of-conduct). You might also find the [FAQ](https://whatwg.org/faq) and [Working Mode](https://whatwg.org/working-mode) useful. 8 | 9 | If at any point you have questions, please reach out to us on [Chat](https://whatwg.org/chat). 10 | - type: textarea 11 | attributes: 12 | label: "What is the issue with the @@h1@@ Standard?" 13 | validations: 14 | required: true 15 | - type: markdown 16 | attributes: 17 | value: "Thank you for taking the time to improve the @@h1@@ Standard!" 18 | -------------------------------------------------------------------------------- /Makefile.template: -------------------------------------------------------------------------------- 1 | SHELL=/bin/bash -o pipefail 2 | .PHONY: local remote deploy 3 | 4 | remote: @@bs@@.bs 5 | @ (HTTP_STATUS=$$(curl https://api.csswg.org/bikeshed/ \ 6 | --output @@bs@@.html \ 7 | --write-out "%{http_code}" \ 8 | --header "Accept: text/plain, text/html" \ 9 | -F die-on=warning \ 10 | -F md-Text-Macro="COMMIT-SHA LOCAL COPY" \ 11 | -F file=@@@bs@@.bs) && \ 12 | [[ "$$HTTP_STATUS" -eq "200" ]]) || ( \ 13 | echo ""; cat @@bs@@.html; echo ""; \ 14 | rm -f @@bs@@.html; \ 15 | exit 22 \ 16 | ); 17 | 18 | local: @@bs@@.bs 19 | bikeshed spec @@bs@@.bs @@bs@@.html --md-Text-Macro="COMMIT-SHA LOCAL-COPY" 20 | 21 | deploy: @@bs@@.bs 22 | curl --remote-name --fail https://resources.whatwg.org/build/deploy.sh@@extra_files@@@@post_build_step@@ 23 | bash ./deploy.sh 24 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/1-new-feature.yml.template: -------------------------------------------------------------------------------- 1 | name: New feature 2 | description: Request a new feature in the @@h1@@ Standard. 3 | labels: ["addition/proposal", "needs implementer interest"] 4 | body: 5 | - type: markdown 6 | attributes: 7 | value: | 8 | Before filling out this form, please familiarize yourself with the [Code of Conduct](https://whatwg.org/code-of-conduct), [FAQ](https://whatwg.org/faq), and [Working Mode](https://whatwg.org/working-mode). They help with setting expectations and making sure you know what is required. The FAQ ["How should I go about proposing new features to WHATWG standards?"](https://whatwg.org/faq#adding-new-features) is especially relevant. 9 | 10 | If at any point you have questions, please reach out to us on [Chat](https://whatwg.org/chat). 11 | - type: textarea 12 | attributes: 13 | label: "What problem are you trying to solve?" 14 | validations: 15 | required: true 16 | - type: textarea 17 | attributes: 18 | label: "What solutions exist today?" 19 | - type: textarea 20 | attributes: 21 | label: "How would you solve it?" 22 | - type: textarea 23 | attributes: 24 | label: "Anything else?" 25 | - type: markdown 26 | attributes: 27 | value: "Thank you for taking the time to improve the @@h1@@ Standard!" 28 | -------------------------------------------------------------------------------- /PULL_REQUEST_TEMPLATE.md.template: -------------------------------------------------------------------------------- 1 | 8 | 9 | - [ ] At least two implementers are interested (and none opposed): 10 | * … 11 | * … 12 | - [ ] [Tests](https://github.com/web-platform-tests/wpt) are written and can be reviewed and commented upon at: 13 | * … 14 | - [ ] [Implementation bugs](https://github.com/whatwg/meta/blob/main/MAINTAINERS.md#handling-pull-requests) are filed: 15 | * Chromium: … 16 | * Gecko: … 17 | * WebKit: …@@extra_implementers@@@@a11y-check@@ 18 | - [ ] [MDN issue](https://github.com/whatwg/meta/blob/main/MAINTAINERS.md#handling-pull-requests) is filed: … 19 | - [ ] The top of this comment includes a [clear commit message](https://github.com/whatwg/meta/blob/main/COMMITTING.md) to use. 20 | 21 | (See [WHATWG Working Mode: Changes](https://whatwg.org/working-mode#changes) for more details.) 22 | -------------------------------------------------------------------------------- /README.md.template: -------------------------------------------------------------------------------- 1 | This repository hosts the [@@h1@@ Standard](https://@@shortname@@.spec.whatwg.org/). 2 | 3 | ## Code of conduct 4 | 5 | We are committed to providing a friendly, safe, and welcoming environment for all. Please read and respect the [Code of Conduct](https://whatwg.org/code-of-conduct). 6 | 7 | ## Contribution opportunities 8 | 9 | Folks notice minor and larger issues with the @@h1@@ Standard all the time and we'd love your help fixing those. Pull requests for typographical and grammar errors are also most welcome. 10 | 11 | Issues labeled ["good first issue"](https://github.com/whatwg/@@shortname@@/labels/good%20first%20issue) are a good place to get a taste for editing the @@h1@@ Standard. Note that we don't assign issues and there's no reason to ask for availability either, just provide a pull request. 12 | 13 | If you are thinking of suggesting a new feature, read through the [FAQ](https://whatwg.org/faq) and [Working Mode](https://whatwg.org/working-mode) documents to get yourself familiarized with the process. 14 | 15 | We'd be happy to help you with all of this [on Chat](https://whatwg.org/chat). 16 | 17 | ## Pull requests 18 | 19 | In short, change `@@source@@` and submit your patch, with a [good commit message](https://github.com/whatwg/meta/blob/main/COMMITTING.md). 20 | 21 | Please add your name to the Acknowledgments section in your first pull request, even for trivial fixes. The names are sorted lexicographically. 22 | 23 | To ensure your patch meets all the necessary requirements, please also see the [Contributor Guidelines](https://github.com/whatwg/meta/blob/main/CONTRIBUTING.md). Editors of the @@h1@@ Standard are expected to follow the [Maintainer Guidelines](https://github.com/whatwg/meta/blob/main/MAINTAINERS.md). 24 | 25 | ## Tests 26 | 27 | Tests are an essential part of the standardization process and will need to be created or adjusted as changes to the standard are made. Tests for the @@h1@@ Standard can be found in the `@@shortname@@/` directory of [`web-platform-tests/wpt`](https://github.com/web-platform-tests/wpt). 28 | 29 | A dashboard showing the tests running against browser engines can be seen at [wpt.fyi/results/@@shortname@@](https://wpt.fyi/results/@@shortname@@). 30 | 31 | ## Building "locally" 32 | 33 | For quick local iteration, run `make`; this will use a web service to build the standard, so that you don't have to install anything. See more in the [Contributor Guidelines](https://github.com/whatwg/meta/blob/main/CONTRIBUTING.md#building). 34 | -------------------------------------------------------------------------------- /README.md.anne.template-part: -------------------------------------------------------------------------------- 1 | ## Formatting 2 | 3 | Use a column width of 100 characters. 4 | 5 | Do not use newlines inside "inline" elements, even if that means exceeding the column width requirement. 6 | ```html 7 |

The 8 | remove(tokens…) 9 | method, when invoked, must run these steps: 10 | ``` 11 | is okay and 12 | ```html 13 |

The remove(tokens…) method, when 15 | invoked, must run these steps: 16 | ``` 17 | is not. 18 | 19 | Using newlines between "inline" element tag names and their content is also forbidden. (This actually alters the content, by adding spaces.) That is 20 | ```html 21 | token 22 | ``` 23 | is fine and 24 | ```html 25 | token 26 | 27 | ``` 28 | is not. 29 | 30 | An `

  • ` element always has a `

    ` element inside it, unless it's a child of `