This is the blog of the Rust Programming Language.
It uses Zola and is deployed to GitHub Pages via GitHub Actions.
To serve the site locally, first install Zola: (takes a couple minutes)
# using a fork because we rely on a few patches that haven't landed yet
cargo install --locked --git https://github.com/senekor/zola --rev 79410eea82f837e4de9b1e4c3905287060b69255Now run zola serve --open.
The site will be reloaded automatically when you make any changes.
First of all, thank you!
Like everything in Rust, the blog is licensed MIT/Apache 2.0. See the two
LICENSE-* files for more details. We're also governed by the Rust
Code of Conduct, see CODE_OF_CONDUCT.md for more.
There is an interactive blog post generator that takes care of some boilerplate for you. To use it, run:
cargo blog
If you're making changes to how the site is generated, you may want to check the impact your changes have on the output. For this purpose, there is a setup to do snapshot testing over the entire output directory.
To run these tests in CI, add the string RUN_SNAPSHOT_TESTS to the PR description.
You can also run these tests locally for a faster feedback cycle:
- 
Make sure you have cargo-insta installed. 
- 
Generate the good snapshots to compare against, usually based off the master branch: cargo insta test -p snapshot --accept --include-ignoredConsider making a commit with these snapshots, so you can always check the diff of your changes with git: git add --force crates/snapshot/src/snapshots # snapshots are ignored by default git commit --message "WIP add good snapshots" Since we can't merge the snapshots to main, don't forget to drop this commit when opening a pull request. 
- 
Compare the output of the branch you're working on with the good snapshots: cargo insta test -p snapshot --review --include-ignored