Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
## Overview

This repo contains code and data required to compile the **Quarto-based
documentation website** for the [extendr](https://github.com/extendr/extendr)
project — a framework for writing R packages using Rust. Published at
https://extendr.github.io.

## Codebase

**extendr**
repo: https://github.com/extendr/extendr
description: The core Rust library. Read source files there directly when you
need to understand extendr's API, types, macros, or implementation details.

**rextendr**
repo: https://github.com/extendr/rextendr
description: The R package that scaffolds extendr projects and generates R
wrappers. Read source files there directly when you need to understand
`rextendr::use_extendr()`, template generation, or the wrapper generation
architecture.

## Repository Structure

```
.
├── _quarto.yml # Site config: navbar, sidebars, theme
├── index.qmd # Landing page (3 cards: Get Started, Examples, Community)
├── get-started.qmd # 4-step install guide (Rust, R ≥ 4.2, rextendr, rust-analyzer)
├── changelog.qmd # Dynamically fetches extendr CHANGELOG.md from GitHub
├── user-guide/ # User guide
├── intro-rust/ # Intro to Rust for R developers
├── contributing/ # Contributor guide (style, colors, scaffolding)
├── blog/ # Blog posts
├── css/ # Custom SCSS
├── images/ # Image files
└── _extensions/ # Quarto extensions
```

## Quarto (`_quarto.yml`)

This is a Quarto website. The main site structure and metadata are defined in
`_quarto.yml`, including the navbar, sidebars, theme, and page execution
settings. When adding or reorganizing pages, `_quarto.yml` is the first place to
look.

## Content Sections

- Get Started (`get-started.qmd`): An installation guide for setting up extendr
and rextendr.
- User Guide (`user-guide/`): The main guide for R package development with
extendr.
- Rust Basics (`intro-rust/`): An opinionated introduction to Rust for R
developers, covering the concepts needed to use extendr effectively.
- Contributing (`contributing/`): Guidelines for contributing to the extendr
documentation, including writing style, branding, and scaffolding details.


## Claude Behavior

- DO NOT BE OBSEQUIOUS WITH PRAISE.
- BE CONCISE. Only elaborate when that is requested.
- When editing markdown files, please keep line length to 80 characters.
- DO NOT EDIT CLAUDE.md WITHOUT ASKING PERMISSION.
168 changes: 63 additions & 105 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,139 +1,97 @@
# Contributing

We welcome contributions to the extendr project. Contributions come in many forms. Please carefully read and follow these guidelines. This will help us make the contribution process easy and effective for everyone involved. It also communicates that you agree to respect the time of the developers managing and developing this project.
Contributions to the extendr project can come in many forms, and we welcome all
of them. Please carefully read and follow the guidelines in our
[Contributing Guide](https://extendr.github.io/contributing/index.html). This
will help us make the contribution process easy and effective for everyone
involved. It also communicates that you agree to respect the time of the
developers managing and developing this project.

## Code of Conduct {#code-of-conduct}

## Quicklinks
We take our open source community seriously and hold ourselves and other
contributors to high standards of communication. By participating and
contributing to this project, you agree to uphold our [Code of
Conduct.](https://github.com/extendr/extendr/blob/master/CODE-OF-CONDUCT.md)

* [Code of Conduct](#code-of-conduct)
* [Getting Started](#getting-started)
* [Issues](#issues)
* [Pull Requests](#pull-requests)
* [Getting Help](#getting-help)
* [Authorship](#authorship)
* [Attribution](#attribution)
## Getting Started {#getting-started}

## Repo structure

This is the source of the extendr project's website.

- `user-guide` Is the user guide for using `extendr-api`
- `blog` is the source code for blogs for the extendr-project
- `intro-rust` contains souce code for an Introduction to Rust for R developers

## Using extendr code chunks

Whenever using extendr code, use the `extendrsrc` and `extendr` knitr engines.
The user-guide/serde-integration.qmd is the best example. Try to emulate this style.

## User guide

The user guide is a friendly introduction to the `extendr-api` crate. Any entries into the user guide should be **concise** and use **simple language**. Always use code chunks whenever using extendr code.

The structure is roughly as follows:

````
```
---
title: "An informative title"
---

- Motivate the functionality that the entry will cover
- No more than 4 sentences

## The feature

- Describe the functionality that will be covered
- Discuss pre-reqs if any

## Basic usage

- Provide a basic example
- Discuss your code prior to showing the code

```{extendrsrc}
// your rust code
```

- Summarise and explicate

## Advanced usage

- Motivate advanced usage
- Provide an example

```{extendrsrc}
// your rust code
```

- Summarize and explicate

## See also

- Provide useful links to other docs on the site or externally
```
````

### Writing style

- use of second person is fine, but you cannot write about one's intention in the second person.
- Banned phrases ❌:
- "you want to"
- "you need to"
- never use `print()` to print an R object


## Code of Conduct

We take our open source community seriously and hold ourselves and other contributors to high standards of communication. By participating and contributing to this project, you agree to uphold our [Code of Conduct.](https://github.com/extendr/extendr/blob/master/CODE-OF-CONDUCT.md)

## Getting Started

Contributions can be made via Issues and Pull Requests (PRs). A few general guidelines cover both:
Contributions can be made via Issues and Pull Requests (PRs). A few general
guidelines cover both:

- Please search for existing Issues and PRs before creating your own.
- We work hard to makes sure issues are handled in a timely manner but, depending on the problem and maintainer availability, it could take a while to investigate the problem. A friendly ping in the comment thread can help draw attention if an issue has not received any attention for a while. Please keep in mind that all contributors to this project are volunteers and may have other commitments they need to attend to.
- We work hard to makes sure issues are handled in a timely manner but,
depending on the problem and maintainer availability, it could take a while
to investigate the problem. A friendly ping in the comment thread can help
draw attention if an issue has not received any attention for a while.
Please keep in mind that all contributors to this project are volunteers and
may have other commitments they need to attend to.

### Issues
### Issues {#issues}

Issues should be used to report problems with the library, request a new feature, or to discuss potential changes before a PR is created. Please **do not** use Issues to request user support.
Issues should be used to report problems with the library, request a new
feature, or to discuss potential changes before a PR is created. Please **do
not** use Issues to request user support.

Whenever possible, please provide a minimal reproducible example (reprex) to any bug report that you are filing. The more minimal your example, the more likely that somebody else can figure out what the problem is, so please remove any code that isn't relevant to the problem you are reporting.
Whenever possible, please provide a minimal reproducible example (reprex) to any
bug report that you are filing. The more minimal your example, the more likely
that somebody else can figure out what the problem is, so please remove any code
that isn't relevant to the problem you are reporting.

Please keep issues focused on one particular problem. Don't feel shy about opening multiple issues if you're encountering more than one problem.
Please keep issues focused on one particular problem. Don't feel shy about
opening multiple issues if you're encountering more than one problem.

If you find an Issue that addresses the problem you're having, please add your own reproduction information to the existing issue rather than creating a new one. Adding a [reaction](https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) can also help be indicating to our maintainers that a particular problem is affecting more than just the reporter.
If you find an Issue that addresses the problem you're having, please add your
own reproduction information to the existing issue rather than creating a new
one. Adding a
[reaction](https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/)
can also help indicate to our maintainers that a particular problem is affecting
more than just the reporter.

### Pull Requests
### Pull Requests {#pull-requests}

PRs are always welcome and can be a quick way to get your fix or improvement slated for the next release. However, please always open an Issue before submitting a PR.
PRs are always welcome and can be a quick way to get your fix or improvement
slated for the next release. However, please always open an Issue before
submitting a PR.

In general, PRs should:

- Address a single concern in the least number of changed lines as possible.
- Only fix/add the functionality in question **OR** address wide-spread whitespace/style issues, not both.
- Only fix/add the functionality in question **OR** address wide-spread
whitespace/style issues, not both.
- Add unit or integration tests for fixed or changed functionality.
- Include documentation.
- Indicate which Issue they address by using the words `Closes #<issue number>` or `Fixes #<issue number>` in the body of the PR and/or the git commit message. (See the [GitHub Documentation](https://docs.github.com/en/free-pro-team@latest/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword) for details about linking PRs to Issues and automatically closing Issues when merging PRs.)

- Indicate which Issue they address by using the words `Closes #<issue number>`
or `Fixes #<issue number>` in the body of the PR and/or the git commit
message. (See the [GitHub Documentation](https://docs.github.com/en/free-pro-team@latest/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword)
for details about linking PRs to Issues and automatically closing Issues when
merging PRs.)

In general, we follow the [GitHub flow](https://guides.github.com/introduction/flow/index.html) development model:
In general, we follow the [GitHub flow](https://guides.github.com/introduction/flow/index.html)
development model:

1. Fork the repository to your own Github account
2. Clone the project to your machine
3. Create a branch locally with a succinct but descriptive name
4. Commit changes to the branch
5. Push changes to your fork
6. Open a PR in our repository and follow the PR template so that we can efficiently review the changes.
6. Open a PR in our repository and follow the PR template so that we can
efficiently review the changes.

## Getting Help
## Getting Help {#getting-help}

Please join us on our [Discord server](https://discord.gg/7hmApuc) for general conversations and questions that don't belong into a GitHub issue.
Please join us on our [Discord server](https://discord.gg/7hmApuc) for general
conversations and questions that don't belong in a GitHub issue.

## Authorship
## Authorship {#authorship}

Contributors who have made multiple, sustained, and/or non-trivial contributions to the project may be added to the author list. New author names will always be added at the end of the list, so that author order reflects chronological order of joining the project. All authorship decisions are at the discretion of the current maintainers of the project.
Contributors who have made multiple, sustained, and/or non-trivial contributions
to the project may be added to the author list. New author names will always be
added at the end of the list, so that author order reflects chronological order
of joining the project. All authorship decisions are at the discretion of the
current maintainers of the project.

## Attribution
## Attribution {#attribution}

This document was adapted from the [General Contributing Guidelines](https://github.com/auth0/open-source-template/blob/master/GENERAL-CONTRIBUTING.md) of the auth0 project.
This document was adapted from the [General Contributing Guidelines](https://github.com/auth0/open-source-template/blob/master/GENERAL-CONTRIBUTING.md)
of the auth0 project.
21 changes: 21 additions & 0 deletions _extensions/mcanouil/iconify/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2026 Mickaël Canouil

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
7 changes: 7 additions & 0 deletions _extensions/mcanouil/iconify/_extension.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
title: Iconify
author: Mickaël Canouil
version: 3.1.0
quarto-required: ">=1.5.57"
contributes:
shortcodes:
- iconify.lua
Loading