Contributing#
Contributions are welcome. Just open an issue. PR's are always welcome too, but it might save everyone time to discuss and plan first.
Also checkout the roadmap for ideas or to submit your feedback on the direction the project should go in.
Annotated Project Structure#
r3ply is a small monorepo, consisting of a few different apps and packages. It is mostly written in TS with a small amount of rust code that provides wasm bindings.
The most important thing to know when working on the code base is
packages/schemasandcrates/r3ply-wasmhave no dependencies on the rest of the workspace and are therefore considered upstream dependencies of everythingpackage/libusespackages/schemasandcrates/r3ply-wasmbut is also an upstream dependency of the apps- The
appsuse everything upstream of them and are not a dependency to everything
Here is some tree output of the codebase, with comments.
├── apps # Implementations of r3ply. These mostly handle IO and the r3ply library (below) handles the core logic.
│ ├── cli #
r3, r3ply's CLI│ └── cloudflare-worker # Handles email comments
├── crates # r3ply's rust codebase
│ └── r3ply-wasm # All the WASM rust code r3ply uses
├── packages # r3ply TS library code
│ ├── lib # the main r3ply logic
│ └── schema # JSON Schemas used by config
├── site # Main site and docs
│ ├── content # Site content (markdown files)
│ │ ├── comments # Site comments (stored as a git submodule at asimpletune/r3ply-site-comments)
│ │ ├── docs # docs
│ │ │ ├── _index.md # docs index
│ │ │ ├── api.md # API docs
│ │ │ ├── cli.md # CLI docs
│ │ │ ├── config.md # config docs
│ │ │ ├── getting-started.md # getting-started- docs
│ │ │ ├── overview.md # overview docs
│ │ │ ├── schemas.md # schemas docs
│ │ │ └── templating.md # templating docs
│ │ ├── project # info about project
│ │ │ ├── _index.md # project index
│ │ │ ├── about.md # about project
│ │ │ ├── contact.md # contact
│ │ │ ├── contributing.md # contributing
│ │ │ └── roadmap.md # roadmap
│ │ ├── _index.md # landing page
│ │ ├── debug-comment-template.md # used to debug the comment that's used to generate
<template> tags.│ │ └── demo.md # demo page
│ ├── css # CSS
│ │ └── input.css # input to tailwind pipeline (see site/package.json)
│ ├── media # for storing media related to artwork, e.g. Pixelmator Pro files
├── test-data
│ └── eml # email files used to test various r3ply code bases
├── tools # random tools that don't have a good place
│ └── mail-parser-ts-bindings-0.9.1.tgz # provides types to the response from the mail parser r3ply uses
├── Cargo.toml # root level crate
├── CHANGELOG.md # changelog
├── package.json # root level package.json (mostly used for scripts)
├── pnpm-workspace.yaml # describes the actual workspace (since r3ply uses pnpm instead of npm)
├── README.md # root README
├── tsconfig.json # root tsconfig (inherited by the others)
└── vitest.workspace.mts # workspace-level vitest config
tree v1.8.0 © 1996 - 2018 by Steve Baker and Thomas Moore
HTML output hacked and copyleft © 1998 by Francesc Rocher
JSON output hacked and copyleft © 2014 by Florian Sesser
Charsets / OS/2 support © 2001 by Kyosuke Tokoro
Comments (0) #
Write Comment Comment [-] Collapse All Collapse [+] Expand All ExpandCommenting Info:
This is a demo of commenting using r3ply. You can leave comments on this website by sending an email.
Your email address will be anonymized, and can never be shared with anyone.
To try it out click the Write Comment button, or draft an email manually 1. Your email client with a template already filled out that looks as follows:
To send an email manually, just compose it exactly like the code snippet above. To respond to a comment append
#<Comment-ID>to the path, e.g.Subject: /docs/getting-started/#abcd1234(please note the trailing slash). You can also respond to text fragments the same way, e.g.Subject: /docs/getting-started/#:~:text=You%20should%20see%20a%20bunch%20of%20text%20representing. ↩Pending Comments (0)
This comment shouldn't actually normally be rendered. It's used to by the base.html template to render one instance of a templat… root / parent .. # . next ⭣ prev. ⭡
This comment shouldn't actually normally be rendered. It's used to by the base.html template to render one instance of a template that's wrapped in
<template>tags. That template is then later cloned and appended to the page for each comment that's pending in the comment cache. To view this comment go to /debug-comment-template/.