# DropOut Documentation
This is the official documentation site for DropOut Minecraft Launcher, built with [Fumadocs](https://fumadocs.dev) and React Router v7.
## Overview
The documentation covers:
- **Getting Started**: Installation and first-time setup
- **Features**: Detailed guides for all launcher features
- **Architecture**: Technical design and implementation details
- **Development**: Building and contributing to DropOut
- **Troubleshooting**: Common issues and solutions
### Multi-language Support
The documentation is available in:
- **English** (default) - `content/docs/en/`
- **简体中文** (Simplified Chinese) - `content/docs/zh/`
## Development
### Prerequisites
- Node.js 22+
- pnpm 9+
### Setup
Install dependencies:
```bash
pnpm install
```
### Run Development Server
```bash
pnpm dev
```
This starts the development server at `http://localhost:5173` with hot reload enabled.
The documentation automatically supports language switching between English and Chinese.
### Build for Production
```bash
pnpm build
```
The production build will be output to the `build/` directory.
### Type Checking
```bash
pnpm types:check
```
### Linting and Formatting
```bash
# Check code
pnpm lint
# Format code
pnpm format
```
## Project Structure
```
packages/docs/
├── content/
│ └── docs/ # Documentation content (MDX)
│ ├── en/ # English documentation
│ │ ├── index.mdx
│ │ ├── getting-started.mdx
│ │ ├── architecture.mdx
│ │ ├── development.mdx
│ │ ├── troubleshooting.mdx
│ │ └── features/
│ └── zh/ # Chinese documentation
│ ├── index.mdx
│ ├── getting-started.mdx
│ ├── architecture.mdx
│ ├── development.mdx
│ ├── troubleshooting.mdx
│ └── features/
├── app/ # React Router app
├── public/ # Static assets
├── source.config.ts # Fumadocs configuration (i18n enabled)
└── react-router.config.ts # React Router configuration
```
## Internationalization (i18n)
### Structure
Documentation is organized by locale:
- English: `content/docs/en/`
- Chinese: `content/docs/zh/`
Each locale has the same structure with translated content.
### Configuration
i18n is configured in:
- `source.config.ts`: Enables i18n support
- `app/lib/source.ts`: Defines available languages and default
### Adding a New Language
1. Create a new directory: `content/docs/{locale}/`
2. Copy the structure from `en/` or `zh/`
3. Translate all `.mdx` files
4. Update `meta.json` files with translated titles
5. Add the language to `app/lib/source.ts`
## Writing Documentation
### MDX Format
All documentation is written in MDX (Markdown with JSX):
```mdx
---
title: Page Title
description: Page description for SEO
---
# Page Title
Content goes here...
```
### Available Components
Fumadocs provides several components:
- `` - Link cards
- `` - Card container
- `` - Info/warning boxes
- `` - Tabbed content
- `` - Numbered steps
- Code blocks with syntax highlighting
### Adding New Pages
1. Create new `.mdx` file in `content/docs/{locale}/`
2. Add frontmatter with title and description
3. Write content using MDX
4. Update `meta.json` to include the page
5. Repeat for all supported languages
6. Test locally with `pnpm dev`
### Translation Guidelines
When translating content:
- Keep all code blocks in English
- Translate frontmatter (title, description)
- Keep technical terms (Tauri, Rust, Svelte, etc.) in English
- Translate UI elements and descriptions
- Keep all links and URLs unchanged
- Maintain the same structure and formatting
### Organizing Content
Use `meta.json` files to organize navigation:
```json
{
"title": "Section Title",
"pages": [
"page1",
"page2",
{
"title": "Subsection",
"pages": ["sub1", "sub2"]
}
]
}
```
## Deployment
The documentation is automatically deployed when changes are merged to the main branch.
## Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes (in all supported languages)
4. Test locally
5. Submit a pull request
## Links
- [DropOut Repository](https://github.com/HydroRoll-Team/DropOut)
- [Fumadocs](https://fumadocs.dev)
- [React Router](https://reactrouter.com)
## License
MIT License - see the main repository for details.