Zu Tuvix.js beitragen
Vielen Dank für dein Interesse an einer Mitarbeit! Ob Fehlerbehebung, neues Feature, Dokumentationsverbesserung oder Übersetzung - alle Beiträge sind willkommen.
Möglichkeiten beizutragen
- Fehlerberichte - Issue erstellen
- Feature-Anfragen - Diskussion starten
- Code - Fehler beheben, Features hinzufügen, Tests verbessern
- Dokumentation - Tippfehler korrigieren, Beispiele hinzufügen, Klarheit verbessern
- Übersetzungen - Dokumentation in anderen Sprachen hinzufügen oder verbessern
Erste Schritte
1. Fork und Clone
git clone https://github.com/DEIN_BENUTZERNAME/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. Docs-Entwicklungsserver starten
cd website
pnpm install
pnpm devÖffne http://localhost:5173 in deinem Browser, um die Dokumentation anzuzeigen.
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-Konfiguration und Theme
├── guide/ Englische Dokumentation
├── packages/ Paket-API-Dokumentation
├── tr/ Türkische Übersetzungen
├── es/ Spanische Übersetzungen
└── ... Andere SprachenCode-Stil
- TypeScript - strikter Modus, 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 ...]voranstellen
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 testsPull-Request-Prozess
Erstelle einen Branch von
master:bashgit checkout -b feat/mein-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 erstelle einen PR gegen
masterEin Maintainer wird deinen PR überprüfen. Bitte antworte innerhalb von 7 Tagen auf Feedback.
Eine Übersetzung hinzufügen
Die gesamte Dokumentation befindet sich in Markdown unter website/. Jede Sprache hat ihr eigenes Verzeichnis:
website/
├── index.md ← Englisch (Stammverzeichnis)
├── guide/ ← Englische Anleitungen
├── tr/ ← Türkisch
│ ├── index.md
│ ├── guide/
│ └── packages/
├── es/ ← Spanisch
└── ...Schritte zum Hinzufügen oder Verbessern einer Übersetzung
- Kopiere englische Dateien von
website/guide/nachwebsite/<lang>/guide/ - Übersetze den Markdown-Inhalt (Code-Blöcke auf Englisch lassen)
- Aktualisiere die Sidebar-Konfiguration in
website/.vitepress/config/<lang>.ts - Führe
cd website && pnpm devzur Vorschau aus
Übersetzungstipps
- Alle Code-Beispiele auf Englisch lassen
- UI-Labels, Beschreibungen und erklärende Texte übersetzen
- Einheimische Terminologie verwenden, wo Standardübersetzungen existieren
Unterstützte Sprachen
| Sprache | Code | Status |
|---|---|---|
| Englisch | en | Vollständig (Referenz) |
| Türkisch | tr | In Bearbeitung |
| Spanisch | es | In Bearbeitung |
| Deutsch | de | In Bearbeitung |
| Französisch | fr | In Bearbeitung |
| Japanisch | ja | In Bearbeitung |
| Chinesisch | zh | In Bearbeitung |
| Italienisch | it | In Bearbeitung |
| Portugiesisch | pt | In Bearbeitung |
| Hindi | hi | In Bearbeitung |
Wenn du zu einer dieser Sprachen beitragen möchtest, prüfe die offenen Übersetzungs-Issues oder erstelle ein neues.
Verhaltenskodex
Dieses Projekt folgt dem Contributor Covenant. Sei respektvoll und konstruktiv.
Lizenz
Mit deinem Beitrag erklärst du dich damit einverstanden, dass deine Beiträge unter der MIT-Lizenz lizenziert werden.