Skip to content

extendr/extendr.github.io

Repository files navigation

extendr.rs

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.

Stack

  • 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.jsnpm and npx are also used to manage JS dependencies
  • iconify — a Tailwind extension for icons (currently limited to fa7-brands, lucide, and mdi icons)

The build pipeline:

  1. Tailwind compiles css/*.css to static/style.css.
  2. Quarto executes code in content/**/*.qmd and compiles to commonmark in content/**/*.md.
  3. Zola compiles commonmark to HTML and builds site in public/.

Structure

.
├── 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

Development

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

About

Resources

License

Contributing

Stars

10 stars

Watchers

6 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors