Skip to content

Commit b8214f8

Browse files
committed
WIP: Base for new docs
1 parent 1208505 commit b8214f8

51 files changed

Lines changed: 17392 additions & 26 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/deploy-pages.yml

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: Deploy to GitHub Pages
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
workflow_dispatch:
8+
9+
permissions:
10+
contents: read
11+
pages: write
12+
id-token: write
13+
14+
concurrency:
15+
group: pages
16+
cancel-in-progress: true
17+
18+
jobs:
19+
build:
20+
runs-on: ubuntu-latest
21+
22+
steps:
23+
- name: Checkout
24+
uses: actions/checkout@v4
25+
26+
- name: Setup pnpm
27+
uses: pnpm/action-setup@v4
28+
with:
29+
version: 10
30+
31+
- name: Setup Node.js
32+
uses: actions/setup-node@v4
33+
with:
34+
node-version: 22
35+
cache: pnpm
36+
37+
- name: Setup Pages
38+
uses: actions/configure-pages@v5
39+
40+
- name: Install dependencies
41+
run: pnpm install --frozen-lockfile
42+
43+
- name: Build static site
44+
run: pnpm build
45+
46+
- name: Upload Pages artifact
47+
uses: actions/upload-pages-artifact@v3
48+
with:
49+
path: .output/public
50+
51+
deploy:
52+
needs: build
53+
runs-on: ubuntu-latest
54+
environment:
55+
name: github-pages
56+
url: ${{ steps.deployment.outputs.page_url }}
57+
58+
steps:
59+
- name: Deploy to GitHub Pages
60+
id: deployment
61+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 43 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
1+
# Created by https://www.toptal.com/developers/gitignore/api/node,nuxtjs
2+
# Edit at https://www.toptal.com/developers/gitignore?templates=node,nuxtjs
3+
4+
### Node ###
15
# Logs
26
logs
37
*.log
48
npm-debug.log*
59
yarn-debug.log*
610
yarn-error.log*
711
lerna-debug.log*
12+
.pnpm-debug.log*
813

914
# Diagnostic reports (https://nodejs.org/api/report.html)
1015
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
@@ -56,6 +61,12 @@ web_modules/
5661
# Optional stylelint cache
5762
.stylelintcache
5863

64+
# Microbundle cache
65+
.rpt2_cache/
66+
.rts2_cache_cjs/
67+
.rts2_cache_es/
68+
.rts2_cache_umd/
69+
5970
# Optional REPL history
6071
.node_repl_history
6172

@@ -67,8 +78,10 @@ web_modules/
6778

6879
# dotenv environment variable files
6980
.env
70-
.env.*
71-
!.env.example
81+
.env.development.local
82+
.env.test.local
83+
.env.production.local
84+
.env.local
7285

7386
# parcel-bundler cache (https://parceljs.org/)
7487
.cache
@@ -93,16 +106,6 @@ dist
93106

94107
# vuepress v2.x temp and cache directory
95108
.temp
96-
.cache
97-
98-
# Sveltekit cache directory
99-
.svelte-kit/
100-
101-
# vitepress build output
102-
**/.vitepress/dist
103-
104-
# vitepress cache directory
105-
**/.vitepress/cache
106109

107110
# Docusaurus cache and generated files
108111
.docusaurus
@@ -116,24 +119,38 @@ dist
116119
# DynamoDB Local files
117120
.dynamodb/
118121

119-
# Firebase cache directory
120-
.firebase/
121-
122122
# TernJS port file
123123
.tern-port
124124

125125
# Stores VSCode versions used for testing VSCode extensions
126126
.vscode-test
127127

128-
# yarn v3
128+
# yarn v2
129+
.yarn/cache
130+
.yarn/unplugged
131+
.yarn/build-state.yml
132+
.yarn/install-state.gz
129133
.pnp.*
130-
.yarn/*
131-
!.yarn/patches
132-
!.yarn/plugins
133-
!.yarn/releases
134-
!.yarn/sdks
135-
!.yarn/versions
136-
137-
# Vite logs files
138-
vite.config.js.timestamp-*
139-
vite.config.ts.timestamp-*
134+
135+
### Node Patch ###
136+
# Serverless Webpack directories
137+
.webpack/
138+
139+
# Optional stylelint cache
140+
141+
# SvelteKit build / generate output
142+
.svelte-kit
143+
144+
### NuxtJS ###
145+
# Generated dirs
146+
.nuxt-*
147+
.output
148+
.gen
149+
150+
# Node dependencies
151+
node_modules
152+
153+
# System files
154+
.data
155+
156+
# End of https://www.toptal.com/developers/gitignore/api/node,nuxtjs

README.md

Lines changed: 178 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,178 @@
1+
# VoiceCraft.Docs
2+
3+
Documentation site for **VoiceCraft**, built with **Nuxt 4 + Docus** and multilingual support via `@nuxtjs/i18n`.
4+
5+
Live documentation: [voicecraft.avion.team](https://voicecraft.avion.team)
6+
7+
This docs project includes:
8+
9+
- a custom landing page UI;
10+
- client/server/Minecraft integration guides;
11+
- localized content and UI strings;
12+
- branded styling, fonts, and icons.
13+
14+
## Tech Stack
15+
16+
- `nuxt` 4
17+
- `docus`
18+
- `@nuxtjs/i18n`
19+
- `@nuxtjs/google-fonts`
20+
- `sass-embedded`
21+
- `pnpm`
22+
23+
## Quick Start
24+
25+
```bash
26+
pnpm install
27+
pnpm dev
28+
```
29+
30+
The site will be available at `http://localhost:3000` (or the next available port).
31+
32+
## Scripts
33+
34+
```bash
35+
pnpm dev # start dev server
36+
pnpm build # production build
37+
```
38+
39+
## Project Structure
40+
41+
```text
42+
VoiceCraft.Docs/
43+
├── app.config.ts # Docus/Nuxt UI config (header, seo, toc, theme)
44+
├── nuxt.config.ts # Nuxt config, i18n, fonts, head/meta, favicon
45+
├── assets/css/theme.scss # global styles and typography
46+
├── components/
47+
│ └── VoiceCraftLanding.vue # custom homepage component
48+
├── content/
49+
│ ├── ru/ # Russian documentation
50+
│ └── en/ # English documentation
51+
├── i18n/locales/
52+
│ ├── ru.json # UI/landing translations (RU)
53+
│ └── en.json # UI/landing translations (EN)
54+
├── plugins/
55+
│ └── i18n-ui.ts # runtime localization for UI labels (toc/title/links)
56+
└── public/
57+
├── favicon.ico # favicon
58+
└── images/ # brand assets/screenshots
59+
```
60+
61+
## Content and Routing
62+
63+
Content is organized by locale under `content/<locale>/...`.
64+
65+
Examples:
66+
67+
- `content/ru/1.start/2.quick-start.md``/ru/start/quick-start`
68+
- `content/en/1.start/2.quick-start.md``/en/start/quick-start`
69+
70+
Locale home pages:
71+
72+
- `content/ru/index.md`
73+
- `content/en/index.md`
74+
75+
Both use the `::voice-craft-landing::` component.
76+
77+
## Localization
78+
79+
### Where locales are configured
80+
81+
In `nuxt.config.ts`:
82+
83+
- `defaultLocale`
84+
- `locales[]`
85+
- `langDir`
86+
87+
### Where UI translations live
88+
89+
- `i18n/locales/ru.json`
90+
- `i18n/locales/en.json`
91+
92+
`ui.*` keys are used for system labels (title, TOC, sidebar links),
93+
`landing.*` keys are used by the custom homepage.
94+
95+
### Add a new locale
96+
97+
1. Add locale in `nuxt.config.ts` (`code`, `name`, `file`).
98+
2. Create `i18n/locales/<code>.json`.
99+
3. Add `content/<code>/...` pages.
100+
4. Provide at least `ui.*` and `landing.*` keys.
101+
102+
## Customization
103+
104+
### Visual Theme
105+
106+
Main styles are in `assets/css/theme.scss`.
107+
108+
This file controls:
109+
110+
- color palette and background effects;
111+
- buttons/cards/animations;
112+
- container widths;
113+
- typography (`Comfortaa` for content, `Nunito` for headings).
114+
115+
### Landing Page
116+
117+
`components/VoiceCraftLanding.vue`:
118+
119+
- hero section;
120+
- CTA buttons;
121+
- product tour slider;
122+
- i18n-driven text.
123+
124+
### Header / SEO / TOC
125+
126+
`app.config.ts` + `plugins/i18n-ui.ts`:
127+
128+
- site header title;
129+
- SEO values;
130+
- TOC labels;
131+
- sidebar utility link labels.
132+
133+
## Favicon and Page Title
134+
135+
- Favicon: `public/favicon.ico`
136+
- Additional icon asset: `public/images/brand/voicecraft-icon.png`
137+
- Head link configuration: `nuxt.config.ts`
138+
- Localized page title: `content/*/index.md` + `plugins/i18n-ui.ts`
139+
140+
## Build and Deploy
141+
142+
```bash
143+
pnpm build
144+
```
145+
146+
Production output is generated in `.output/`.
147+
148+
To preview production build locally:
149+
150+
```bash
151+
node .output/server/index.mjs
152+
```
153+
154+
## GitHub Pages Deployment
155+
156+
This repository includes an automated GitHub Pages workflow:
157+
158+
- Workflow file: `.github/workflows/deploy-pages.yml`
159+
- Trigger: push to `main` (and manual `workflow_dispatch`)
160+
- Build artifact: `.output/public`
161+
162+
### One-time repository setup
163+
164+
1. Open `Settings -> Pages`.
165+
2. Set **Source** to **GitHub Actions**.
166+
3. Ensure your custom domain is set to `voicecraft.avion.team`.
167+
4. Verify DNS for `voicecraft.avion.team` points to GitHub Pages.
168+
169+
### Notes
170+
171+
- `public/CNAME` is included for custom domain support.
172+
- `public/.nojekyll` is included so `_nuxt` assets are served correctly.
173+
174+
## Useful Links
175+
176+
- Docs: [voicecraft.avion.team](https://voicecraft.avion.team)
177+
- VoiceCraft: [GitHub](https://github.com/AvionBlock/VoiceCraft)
178+
- Releases: [Latest release](https://github.com/AvionBlock/VoiceCraft/releases/latest)

0 commit comments

Comments
 (0)