The extendr.rs website provides documentation and news for extendr, a developer-first utility for building R packages that call Rust code. The website is built using the Rust-powered static site generator, Zola.
- Zola — Rust-powered static site generator, a simplified version of Hugo with a powerful templating engine
- Tailwind CSS v4 — utility-first CSS framework
- basecoat-css — a lightweight shadcn/ui components library built with Tailwind CSS
- Quarto — currently used to execute code chunks and render to commonmark, though this is likely to change
- Node.js —
npmandnpxare also used to manage JS dependencies - iconify — a Tailwind extension for icons (currently limited to fa7-brands, lucide, and mdi icons)
The build pipeline:
- Tailwind compiles
css/*.csstostatic/style.css. - Quarto executes code in
content/**/*.qmdand compiles to commonmark incontent/**/*.md. - Zola compiles commonmark to HTML and builds site in public/.
.
├── zola.toml # Site configuration
├── justfile # All build/dev/scaffolding tasks
├── content/ # Site content
│ ├── blog/ # Blog posts
│ ├── contributing/ # Contributor docs
│ ├── development/ # Development docs
│ ├── publishing/ # Publishing docs
│ └── rust-intro/ # Rust intro for R users
├── templates/ # Zola HTML templates + shortcodes and macros
├── css/ # Tailwind input
├── static/ # Compiled CSS, JS, assets
├── package.json # Node.js project manifest
├── packages/ # Example R packages built with extendr
└── scripts/ # R scripts
Prerequisites
In addition to the stack software listed above, you will need R installed and
the most recent release version of the rextendr package. The just command line
runner will also be very beneficial to you.
- just v1.55.0 or higher
- Node.js v24.15.0 or higher
- Quarto
- Zola v0.22.1 or higher
Installation
# install Node.js dependencies
just install
Development
# start a local development server (Zola serve and Tailwind watcher)
just dev
Building
# render Tailwind style.css and call zola build
just build
Available recipes
Run just without arguments to list available recipes.
Available recipes:
build # Compile Tailwind css, then build the site with Zola
build-tailwind # Generate Tailwind static/style.css from css/style.css
check # Try to build site without rendering (checks links)
dev # Run Tailwind watch and Zola live serve in parallel
install # Install Node.js dependencies
page path # Create a new documentation page at content/{{path}}.qmd
post title # Create a new blog post at content/blog/{{title}}/index.qmd
render # Render all pages in content/ recursively (ignores blog/)
render-page path # Render a documentation page at content/{{path}}.qmd
render-post title # Render a blog post at content/blog/{{title}}/index.qmd
reset # Clear public directory generated by Zola