This app is a build server to allow you to run html-build and Wattsi without having to actually install many dependencies locally.
Currently it is hosted on build.whatwg.org.
The /wattsi endpoint accepts POSTs with the following request body fields:
source, a file, which you can get from whatwg/htmlmdn, a file, which you can get from https://raw.githubusercontent.com/w3c/mdn-spec-links/master/html.jsonsha, a string, the Git commit hash of the whatwg/html repositorybuild, a string, either"default"or"review"
You can also send the following query string parameters, which correspond to the same-named Wattsi options:
quietsingle-page-only
If the resulting status code is 200, the result will be a ZIP file containing the output, as well as an output.txt containing the stdout/stderr output. If the resulting status code is 400, the body text will be the error message.
The response will have a header, Exit-Code, which gives the exit code of Wattsi. This will always be 0 for a 200 OK response, but a 400 Bad Request could give a variety of different values, depending on how Wattsi failed.
The /html-build endpoint accepts POSTs with the following request body fields:
-
html, a ZIP file, containing your local checkout of whatwg/html. We recommend excluding the unneeded.git/andreview-drafts/directories; there are other unneeded files, but those are the large ones.zip -r html.zip . --exclude .\* review-drafts/\*
-
sha, a string, the Git commit hash of the whatwg/html repository
You can send the following query string parameters, which correspond to the same-named html-build options:
no-updateno-lintno-highlightsingle-pagefastquietverbose
If the resulting status code is 200, the result will be a ZIP file containing the output, as well as an output.txt containing the stdout/stderr output. If the resulting status code is 400, the body text will be the error message.
The response will have a header, Exit-Code, which gives the exit code of html-build. This will always be 0 for a 200 OK response, but a 400 Bad Request could give a variety of different values, depending on how html-build failed.
This endpoint responds to GET requests so you can check to see if the server is working. It returns a text/plain response of the latest-deployed Git commit SHA.
This server requires the following to run:
- Node.js 18.17.1 or later
- 7zip in your path as
7za - Wattsi, in your
$PATHaswattsi - Several files from html-build in your
$PATH:build.shlint.shentities/html-build, the executable built from the Rust preprocessor portions
It will expose itself on the port given by the $PORT environment variable.
To set up the server remember to do npm install --omit=dev. Then, to start it running, just do npm start.
Alternately, you can use Docker:
docker build --tag build.whatwg.org .
docker run -p 3000:3000 --interactive --tty build.whatwg.org