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:
Linux, MacOS:
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/senekor/zola/releases/download/v0.20.1-senekor/zola-installer.sh | sh
Windows:
powershell -ExecutionPolicy Bypass -c "irm https://github.com/senekor/zola/releases/download/v0.20.1-senekor/zola-installer.ps1 | iex"
(We're currently using a fork to provide prebuilt binaries until Zola's next official release.)
Now 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-ignored
Consider 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