Zu Tuvix.js beitragen
Danke für dein Interesse an einer Mitarbeit! Ob Fehlerbehebung, neues Feature, Verbesserung der Dokumentation oder Übersetzung: Alle Beiträge sind willkommen.
Möglichkeiten beizutragen
- Fehlerberichte: Issue erstellen
- Feature-Wünsche: Diskussion starten
- Code: Fehler beheben, Features hinzufügen, Tests verbessern
- Dokumentation: Tippfehler korrigieren, Beispiele hinzufügen, Verständlichkeit verbessern
- Übersetzungen: Dokumentation in anderen Sprachen hinzufügen oder verbessern
Erste Schritte
1. Forken und klonen
git clone https://github.com/YOUR_USERNAME/tuvix.js.git
cd tuvix.js2. Abhängigkeiten installieren
Wir verwenden pnpm und Node.js ≥ 18.
pnpm install3. Alle Pakete bauen
pnpm build4. Tests ausführen
pnpm test5. Dev-Server der Doku starten
cd website
pnpm install
pnpm devÖffne http://localhost:5173 in deinem Browser, um eine Vorschau der Doku zu sehen.
Projektstruktur
tuvix.js/
├── packages/
│ ├── core/ @tuvix.js/core
│ ├── router/ @tuvix.js/router
│ ├── event-bus/ @tuvix.js/event-bus
│ ├── loader/ @tuvix.js/loader
│ ├── sandbox/ @tuvix.js/sandbox
│ ├── react/ @tuvix.js/react
│ ├── vue/ @tuvix.js/vue
│ ├── svelte/ @tuvix.js/svelte
│ ├── angular/ @tuvix.js/angular
│ ├── devtools/ @tuvix.js/devtools
│ ├── server/ @tuvix.js/server
│ ├── module-federation/
│ ├── create-tuvix-app/
│ └── tuvix/ tuvix.js umbrella
└── website/
├── .vitepress/ VitePress config and theme
├── guide/ English documentation
├── packages/ Package API docs
├── tr/ Turkish translations
├── es/ Spanish translations
└── ... Other languagesCode-Stil
- TypeScript: Strict Mode, der gesamte Code muss typisiert sein
- Prettier: Führe
pnpm formatzum Formatieren aus - Keine Laufzeitabhängigkeiten: Pakete dürfen keine Laufzeitabhängigkeiten haben
- Benannte Exporte: Vermeide Default-Exporte
- Fehlermeldungen: Mit
[Tuvix ...]als Präfix beginnen
Commit-Nachrichten
Wir folgen Conventional Commits:
feat: add hash mode to router
fix(sandbox): clean up event listeners on unmount
docs: add Angular guide example
chore: bump vitepress to 1.7.0
test(event-bus): add once() edge case testsAblauf für Pull Requests
Erstelle einen Branch von
master:bashgit checkout -b feat/my-featureNimm deine Änderungen vor und füge Tests hinzu
Führe die vollständige Testsuite aus:
bashpnpm test pnpm check-types pnpm lintWenn deine Änderung ein veröffentlichtes Paket betrifft, füge ein Changeset hinzu:
bashpnpm changesetPushe und öffne einen PR gegen
masterEin Maintainer prüft deinen PR. Bitte reagiere innerhalb von 7 Tagen auf Feedback.
Eine Übersetzung hinzufügen
Die gesamte Dokumentation liegt als Markdown unter website/. Jede Sprache hat ein eigenes Verzeichnis:
website/
├── index.md ← English (root)
├── guide/ ← English guides
├── tr/ ← Turkish
│ ├── index.md
│ ├── guide/
│ └── packages/
├── es/ ← Spanish
└── ...Schritte zum Hinzufügen oder Verbessern einer Übersetzung
- Kopiere englische Dateien von
website/guide/nachwebsite/<lang>/guide/ - Übersetze den Markdown-Inhalt (Code-Blöcke bleiben auf Englisch)
- Aktualisiere die Sidebar-Konfiguration in
website/.vitepress/config/<lang>.ts - Führe
cd website && pnpm devfür eine Vorschau aus
Übersetzungstipps
- Lass alle Code-Beispiele auf Englisch
- Übersetze UI-Beschriftungen, Beschreibungen und erklärende Texte
- Verwende die übliche Fachterminologie der Sprache, wo es etablierte Übersetzungen gibt
Unterstützte Sprachen
| Sprache | Code | Status |
|---|---|---|
| Englisch | en | Vollständig (Referenz) |
| Türkisch | tr | In Arbeit |
| Spanisch | es | In Arbeit |
| Deutsch | de | In Arbeit |
| Französisch | fr | In Arbeit |
| Japanisch | ja | In Arbeit |
| Chinesisch | zh | In Arbeit |
| Italienisch | it | In Arbeit |
| Portugiesisch | pt | In Arbeit |
| Hindi | hi | In Arbeit |
Wenn du zu einer dieser Sprachen beitragen möchtest, sieh dir die offenen Übersetzungs-Issues an oder eröffne ein neues.
Verhaltenskodex
Dieses Projekt folgt dem Contributor Covenant. Sei respektvoll und konstruktiv.
Lizenz
Mit deinem Beitrag stimmst du zu, dass deine Beiträge unter der MIT-Lizenz lizenziert werden.