- Pin TypeScript as a direct dependency. It was only present transitively via typescript-eslint, so nothing enforced tsconfig.json and nine latent type errors had gone unnoticed. - Add `pnpm typecheck` (`tsc --noEmit`) and document it. - Add .npmrc with engine-strict, so the declared Node and pnpm ranges are actually enforced. - Ignore doc_build/ in ESLint. It was unignored and reported 1650 errors from build output, which made lint unusable as a gate. - Refresh README, CLAUDE.md, AGENTS.md and CONTRIBUTING.md to match the current structure, build targets and navigation rules.
50 lines
1.7 KiB
Markdown
50 lines
1.7 KiB
Markdown
# Contributing to OnixByte Homepage
|
|
|
|
## Development Setup
|
|
|
|
This project uses [Rspress](https://rspress.rs) as the static site framework and pnpm as the package manager.
|
|
|
|
```bash
|
|
pnpm install
|
|
pnpm dev
|
|
```
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
docs/ # Content (Markdown/MDX), organised by locale
|
|
en-gb/ # British English content
|
|
zh-hans/ # Simplified Chinese content
|
|
theme/ # Custom theme overrides
|
|
```
|
|
|
|
## Content Guidelines
|
|
|
|
- Write content in both English (British) and Simplified Chinese. British
|
|
spelling is required throughout — interface text, documentation, code
|
|
comments and commit messages (`customised`, `centre`, `colour`, and so on).
|
|
- Blog posts and documentation articles are licensed under CC-BY-4.0.
|
|
- Code contributions are licensed under MIT.
|
|
|
|
## Navigation and Sidebars
|
|
|
|
Navigation and sidebar structure live in JSON files beside the content, not in
|
|
the theme:
|
|
|
|
- `_nav.json` sets the top navigation. Its `text` values are i18n keys resolved
|
|
through `i18n.json`, so the `en-gb` and `zh-hans` copies stay identical. Add
|
|
new keys to `i18n.json` for **both** locales — a key present for only one
|
|
locale fails the build.
|
|
- `_meta.json` sets sidebar grouping and ordering within a directory. Supplying
|
|
one replaces the generated listing for that directory, so every page you want
|
|
shown must be listed — anything omitted disappears from the sidebar silently.
|
|
|
|
Do not add a `_meta.json` next to `_nav.json` at the root of a locale
|
|
directory; doing so collapses the whole site into one flat sidebar.
|
|
|
|
## Pull Request Process
|
|
|
|
1. Ensure the site builds cleanly: `pnpm build`
|
|
2. Run linting: `pnpm lint`
|
|
3. If adding a new page, include both `en-gb` and `zh-hans` versions.
|