This repo uses yarn workspaces with node 13+, to get started clone this repo and run
git clone https://github.com/microsoft/TypeScript-website cd TypeScript-website yarn install yarn bootstrap code .
Working on this repo is done by running
yarn start - this starts up the website on port
8000 and creates a
builder worker for every package in the repo, so if you make a change outside of the site it will compile and lint etc.
Some useful knowledge:
- All packages have:
- All packages use debug - which means you can do
env DEBUG="*" yarn testto get verbose logs
Deployment is automatic:
- Merges to the branch
mastertrigger deploys to production of the v1 website, and the v2 of branch in a
- Pushes to the branch
v2deploy to staging.
You can find the build logs in GitHub Actions
If you want to know in-depth how this website works, there is an hour long video covering the codebase, deployment and tooling on YouTube..
The main website for TypeScript, a Gatsby website which is statically deployed. You can run it via:
To save your time, twoslash is not applied to code-samples in
yarn start - to launch the server with twoslash support use:
The JS code as an AMD module for the playground which is loaded at runtime in the Playground website.
A set of tools and scripts for generating a comprehensive API reference for the TSConfig JSON file.
# Generate JSON from the typescript cli yarn workspace tsconfig-reference run generate-json # Jams them all into a single file yarn workspace tsconfig-reference run generate-markdown
Validate the docs
yarn workspace tsconfig-reference run test # or to just run the linter without a build yarn workspace tsconfig-reference run lint # or to just one one linter for a single doc yarn workspace tsconfig-reference run lint resolveJson
The code samples used in the Playground split across many languages
Most of of these packages use
A code sample markup extension for TypeScript. Available on npm: @typescript/twoslash
A comprehensive way to run TypeScript projects in-memory in a browser or node environment. Available on npm: @typescript/twoslash
Create Playground Plugin
A template for generating a new playground plugin which you can use via
npm init playground-plugin [name]
Generates an epub file from the handbook files. You can try downloading it at http://www.staging-typescript.org/assets/typescript-handbook-beta.epub
Generates contributions JSON metadata on who edited handbook pages
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.
When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
Microsoft and any contributors grant you a license to the Microsoft documentation and other content in this repository under the Creative Commons Attribution 4.0 International Public License, see the LICENSE file, and grant you a license to any code in the repository under the MIT License, see the LICENSE-CODE file.
Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.
Privacy information can be found at https://privacy.microsoft.com/en-us/
Microsoft and any contributors reserve all other rights, whether under their respective copyrights, patents, or trademarks, whether by implication, estoppel or otherwise.