askama/.readthedocs.yaml
René Kijewski f691e72429 book: fix rust-docs on readthedocs
We want to use the nightly features `doc_cfg` and `doc_auto_cfg` when we
build our documentation. Still, we want to use a stable compiler, e.g.
to have stable links in our docs, so we opt in to the use of unstable
features with the use of `RUSTC_BOOTSTRAP=1`.

The problem is that `proc-macro2` only checks whether it can use any
unstable features, not which unstable features, and it always assumes
that you run the newest nightly rust version if the use of unstable
features is possible.

This PR disables the detection if unstable features are available to
`proc-macro2` by pretending that we are in an early stage of a
bootstrapped rustc build.
2025-07-14 01:49:11 +02:00

36 lines
1.9 KiB
YAML

# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
version: 2
build:
os: ubuntu-lts-latest
tools:
python: "3.12"
commands:
# Install a current version of rust
- asdf install rust 1.88.0
- asdf global rust 1.88.0
# Generate "book/theme/index.hbs" as "skeleton" of the generated pages.
- book/update-theme.py
# Install mdbook.
- mkdir -p $HOME/bin
- curl --location --silent --show-error --fail https://github.com/cargo-bins/cargo-quickinstall/releases/download/mdbook-0.4.40/mdbook-0.4.40-x86_64-unknown-linux-gnu.tar.gz | tar -xzvvf - -C $HOME/bin
# Convert the book to HTML.
- $HOME/bin/mdbook build book --dest-dir $READTHEDOCS_OUTPUT/html
# Make the ads readable.
- cat book/ethicalads-theme.css >> $READTHEDOCS_OUTPUT/html/css/general.css
# We are done!
- cp book/404.html $READTHEDOCS_OUTPUT/html
# Build and copy the API docs
- cargo install cargo-docs-rs
- mkdir --parents rustdocs/x86_64-unknown-linux-gnu/doc/
- ln --relative --symbolic --no-target-directory rustdocs/x86_64-unknown-linux-gnu/doc rustdocs/doc
- CARGO_BUILD_TARGET_DIR=rustdocs RUSTC_BOOTSTRAP=1 RUSTC_STAGE=1 cargo docs-rs --target x86_64-unknown-linux-gnu --package askama
- CARGO_BUILD_TARGET_DIR=rustdocs RUSTC_BOOTSTRAP=1 RUSTC_STAGE=1 cargo docs-rs --target x86_64-unknown-linux-gnu --package askama_derive
- CARGO_BUILD_TARGET_DIR=rustdocs RUSTC_BOOTSTRAP=1 RUSTC_STAGE=1 cargo docs-rs --target x86_64-unknown-linux-gnu --package askama_escape
- CARGO_BUILD_TARGET_DIR=rustdocs RUSTC_BOOTSTRAP=1 RUSTC_STAGE=1 cargo docs-rs --target x86_64-unknown-linux-gnu --package askama_macros
- CARGO_BUILD_TARGET_DIR=rustdocs RUSTC_BOOTSTRAP=1 RUSTC_STAGE=1 cargo docs-rs --target x86_64-unknown-linux-gnu --package askama_parser
- cp --preserve=all --recursive --target-directory $READTHEDOCS_OUTPUT/html/ rustdocs/x86_64-unknown-linux-gnu/doc/