Project Structure¶
Note
This page is a work in progress.
Repository root¶
Path |
Contents |
|---|---|
|
Extension source code and the per-browser manifests ( |
|
Sphinx documentation source (this site) |
|
Build output — gitignored, generated by |
|
Developer tooling scripts (param-order checker, |
|
|
|
CI, docs, and release-publishing workflows; issue and pull request templates |
|
Rollup bundler configuration |
|
TypeScript compiler configuration |
|
Dprint formatter configuration |
|
ESLint configuration |
|
Stylelint configuration |
|
Vitest test runner configuration |
|
TypeDoc API documentation configuration |
|
git-cliff configuration for generated release notes |
Extension source (extension/data/)¶
Path |
Contents |
|---|---|
|
Content-script entry point: load conditions, settings migrations, module registration |
|
Reddit API wrappers ( |
|
Extension background script and its message handlers |
|
Global CSS (base tokens, the classic theme, legacy injection styles) and |
|
Page-structure helpers for old Reddit and shreddit, and named UI injection locations |
|
Core module system: |
|
Extension icons and static images |
|
Individual feature modules (one directory per module) |
|
Cross-module subsystems (proposals, usernotes, modnotes, removal reasons, settings, etc.) |
|
Shared React building blocks: app root ( |
|
Redux Toolkit store: settings and cross-component UI feedback (spinner, toasts, context menu) |
|
Ambient type declarations (CSS modules, untyped dependencies) |
|
Pure utility functions (data, infra, persistence, reddit, ui, wiki) |
Module layout¶
Each module under extension/data/modules/<name>/ follows the layered structure described in Module Architecture.
Utility categories (extension/data/util/)¶
Subdirectory |
Contents |
|---|---|
|
Array, async, color, encoding, string, time, pub/sub, sanitizing helpers |
|
Build environment, logging, platform detection, version, capture guard |
|
Settings read/write, migrations, portability, cache |
|
Page context detection, mod actions, thing info, background message bridge |
|
DOM helpers, hooks, icons, listener, markdown, React mount |
|
Wiki paths and constants, schema codecs, conflict-safe writes, migrations |