feat: allow custom themes via registry extension
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 2
- Forks
- 1
- Avg merge
- 12h 29m
- Merged PRs (30d)
- 12
Description
Problem
`src/themes/registry.ts` hardcodes two themes (default, paper). There's no way for site owners to register custom themes without modifying Chronicle's source code. The theme type system (`ThemeLayoutProps`, `ThemePageProps`) is well-defined but not exposed for external use.
Suggested Approach
- Allow `chronicle.yaml` to reference a custom theme module path:
```yaml
theme:
name: custom
module: ./themes/my-theme
``` - The module would export `{ Layout, Page, Skeleton }` conforming to the existing theme types
- Keep default and paper as built-in themes that don't need a module path
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with src/themes/registry.ts and inspect the existing ThemeLayoutProps and ThemePageProps definitions, then trace how chronicle.yaml theme settings are read. Define the module-loading and configuration behavior needed for a custom theme while preserving the default and paper themes. Done means a documented custom module can provide Layout, Page, and Skeleton without modifying Chronicle's source.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100