"Because knowing is half the battle."
| Staging | Production |
|---|---|
Before adding new content, read CONTRIBUTING.md.
The website is statically built using Jekyll. So we have basic templating for generating HTML and the ability to write most files in Markdown.
TypeScript documentation is generated directly from source using TYPEDOC. We
just check the resulting files directly into the repo under ./packages/.
- Install a recent version of Ruby
- Install the necessary Ruby Gems:
gem install jekyll bundler - Install a recent version of Go
- Install mustache:
go get -u github.com/cbroglie/mustache
Run make configure to get the required Gem dependencies. (Assuming you have a recent Ruby
installation on your system.
make build will generate the website (published to _site).
make serve will build the website and serve it to http://localhost:4000.
make test runs a broken link checker tool against http://localhost:4000.
make generate will regenerate the TypeScript documentation if needed, as well as the CLI documentation in references/cli. The generated API documentation is placed in the packages folder. This is extremely hacky.
The following repos must be peers of docs, should be checked out to an appropriate branch, and should be built before running make generate:
pulumipulumi-awspulumi-azurepulumi-cloudpulumi-gcppulumi-kubernetes
To generate a change log from closed pull requests, run the script /scripts/generate_changelog.sh. It generates a file using the rules documented here: Planning, Work Items, and Changelog.
-
Run
./scripts/update_repos.shto pull down the latest tags for the repospulumi,pulumi-cloud,pulumi-aws,pulumi-terraform, andpulumi-azure -
Set the environment variable
GITHUB_TOKENto a token that has "repo" scope. -
[Will be improved] Clone the repo at https://github.com/lindydonna/github-pr-changelog and run
npm i -gto globally install the commandgh-changelog. -
Generate a change log with the following command:
./scripts/generate_changelog.sh <from-git-tag> <to-git-tag> > output.fileYou can also use the optional flags
--all-prsto print out all PRs (not just ones with the relevant labels) and--tab-outputto print in a format that can be pasted to a Google Sheet.
Web design is hard. Documentation is hard. Good web design for documentation is harder.
Examples of other sites and their docs as inspiration: