docs(wiki): update architecture and getting-started for split repos

This commit is contained in:
Marvin
2026-04-08 00:49:11 +02:00
parent d377ff70a8
commit 33636fde00
3 changed files with 48 additions and 39 deletions

View File

@@ -1,30 +1,30 @@
--- ---
title: Monorepo — Architecture title: Repository architecture
sidebar_label: Monorepo architecture sidebar_label: Repository architecture
description: Core vs bindings vs mods; hook scanner; Game2Framework compatibility. description: Aktuelle Multi-Repo-Architektur mit `gregFramework` als Wrapper und klarer Repo-Trennung.
--- ---
# Monorepo — Architecture
## Layers ## Layers
| Layer | Role | | Layer | Role |
|------|------| | ------ | ------ |
| **Core** | MelonLoader mod + event dispatch — today under `framework/FrikaMF/` (C#). Target layout: `FrikaModFramework/src/core/`. | | **Wrapper** | `gregFramework/` enthält lokal alle Einzel-Repositories. |
| **Bindings** | Language-specific surfaces — placeholders under `FrikaModFramework/src/bindings/`. | | **Core** | `gregCore/FrikaMF-StandaloneRepo/` mit Framework, Hooks, MCP und Templates. |
| **Mods / plugins** | Shipped sources in `mods/` and `plugins/`; optional pilot tree `HexMod/` (VDF + hooks metadata). | | **Rust bridge** | In Core integriert unter `gregCore/FrikaMF-StandaloneRepo/bridges/gregSta.RustBridge/`. |
| **Docs** | Docusaurus consumes repo-root `docs/`; app lives in `wiki/`. | | **Mods** | `gregMods/` + pro Mod eigenes Repo (`gregMod.<Name>`). |
| **Extensions** | `gregExtensions/` + pro Extension eigenes Repo (`gregExt.<Name>`). |
| **Docs** | `gregWiki/` als eigenes Repo für Dokumentation. |
## Hook registry ## Hook registry
`FrikaModFramework/fmf_hooks.json` is the declarative **single source of truth** for documented `FMF.*` hooks. The runtime still exposes legacy `FFM.*` strings where not yet migrated. Hook-Naming und Registry bleiben fachlich im Core verankert; bei Split-Änderungen gilt immer der Core-Stand als Referenz.
## Tools ## Tools
- **`tools/fmf-hook-scanner`** — emit the [FMF Hook Reference](./fmf-hooks) page from the registry. - **Core tools:** `gregCore/FrikaMF-StandaloneRepo/tools/`
- **`tools/game2framework-migrator`** — dry-run mapping using `tools/fmf-hook-scanner/mapping/game2framework-map.json`. - **MCP runtime:** `gregCore/FrikaMF-StandaloneRepo/mcp-server/`
- **`mcp-server/`** — Model Context Protocol server (docs + registry) for IDEs; can run in Docker with the static wiki — see [MCP server](../../reference/mcp-server.md). - **Hook-/Mapping-Utilities:** ebenfalls unter Core-Tools, versioniert mit dem Core-Repo.
## Steam & Workshop ## Steam & Workshop
Workshop templates: `templates/workshop/`. CLI/upload scripts: `tools/steam-workshop-upload/`. Desktop uploader (Windows MAUI): `WorkshopUploader/` (see `WorkshopUploader/README.md`). Workshop-Templates und Deployment-Skripte liegen im Core-Repo unter `FrikaMF-StandaloneRepo/Templates/` und `FrikaMF-StandaloneRepo/scripts/`.

View File

@@ -1,20 +1,27 @@
--- ---
title: Monorepo — Getting started title: Getting started
sidebar_label: Monorepo getting started sidebar_label: Getting started
description: Target layout (FrikaModFramework, templates, tools) and how it maps to this repo today. description: Aktueller Stand nach Repo-Split: Wrapper-Struktur, Core-Build und Mod-/Extension-Repos.
--- ---
# Monorepo — Getting started Die Struktur ist jetzt **Multi-Repo** mit `gregFramework/` als lokalem Wrapper-Ordner. Darin liegen die eigenständigen Repositories, z. B.:
The **goal** is a clear split between the framework (`FrikaModFramework/` registry + planned bindings), the **live** MelonLoader code (`framework/`), gameplay mods (`mods/`), FFM plugins (`plugins/`), templates (`templates/` / `Templates/`), and tooling (`tools/`). Migration is incremental: production C# still lives under [`framework/`](https://github.com/mleem97/gregFramework/tree/master/framework). - `gregCore/` (Core SDK, inkl. `FrikaMF-StandaloneRepo/`)
- `gregMods/` (einzelne Mod-Repos)
- `gregExtensions/` (einzelne Extension-Repos)
- `gregWiki/` (Dokumentation)
## Clone and build the framework `DataCenter-RustBridge` wird in den Core integriert und liegt im Core-Baum unter:
- `gregCore/FrikaMF-StandaloneRepo/bridges/gregSta.RustBridge/`
## Core bauen
```text ```text
dotnet build framework/FrikaMF.csproj dotnet build gregCore/FrikaMF-StandaloneRepo/FrikaMF.sln -c Release
``` ```
Or open [`FrikaMF.sln`](https://github.com/mleem97/gregFramework/blob/master/FrikaMF.sln) in Visual Studio / Rider. Alternativ in IDE: `gregCore/FrikaMF-StandaloneRepo/FrikaMF.sln` öffnen.
## Hook naming ## Hook naming
@@ -22,16 +29,16 @@ Or open [`FrikaMF.sln`](https://github.com/mleem97/gregFramework/blob/master/Fri
- **Registry:** [`FrikaModFramework/fmf_hooks.json`](https://github.com/mleem97/gregFramework/blob/master/FrikaModFramework/fmf_hooks.json). - **Registry:** [`FrikaModFramework/fmf_hooks.json`](https://github.com/mleem97/gregFramework/blob/master/FrikaModFramework/fmf_hooks.json).
- **Legacy runtime strings** may still use `FFM.*` in [`HookNames`](https://github.com/mleem97/gregFramework/blob/master/framework/FrikaMF/HookNames.cs) until migrated. - **Legacy runtime strings** may still use `FFM.*` in [`HookNames`](https://github.com/mleem97/gregFramework/blob/master/framework/FrikaMF/HookNames.cs) until migrated.
## Create a mod from the template ## Mod starten
1. Copy [`templates/mod/`](https://github.com/mleem97/gregFramework/tree/master/templates/mod) to a new folder (or start from [`Templates/`](https://github.com/mleem97/gregFramework/tree/master/Templates) scaffolds). 1. Neues Mod-Repo unter `gregMods/` nach Schema `gregMod.<Name>` anlegen.
2. Edit `fmf/hooks.json` and add sources under `src/`. 2. Templates aus `gregCore/FrikaMF-StandaloneRepo/Templates/` nutzen.
3. For a **pilot** layout (Workshop VDF + hooks metadata), see [`HexMod/`](https://github.com/mleem97/gregFramework/tree/master/HexMod); shipped mod examples live under [`mods/`](https://github.com/mleem97/gregFramework/tree/master/mods) (e.g. `mods/FMF.Mod.HexLabelMod/`). 3. Hook-Metadaten pflegen und Mod im eigenen Repo versionieren.
## Documentation site ## Documentation site
- **Content:** [`docs/`](https://github.com/mleem97/gregFramework/tree/master/docs) - **Repo:** `gregWiki/`
- **Docusaurus app:** [`wiki/`](https://github.com/mleem97/gregFramework/tree/master/wiki) — `npm install` and `npm run start` (dev) or `npm run build` (static output). - **Inhalt:** Markdown/MDX in diesem Repo, angepasst an den Split-Stand.
### Docker ### Docker
@@ -40,4 +47,4 @@ Or open [`FrikaMF.sln`](https://github.com/mleem97/gregFramework/blob/master/Fri
## Assistants / MCP ## Assistants / MCP
The repo includes [`mcp-server/`](https://github.com/mleem97/gregFramework/tree/master/mcp-server) for Model Context Protocol (search docs, read `fmf_hooks.json`, CONTRIBUTING). Use **stdio** locally or the **HTTP** endpoint bundled with the `docs-mcp` Docker image — details in [`docs/reference/mcp-server.md`](https://github.com/mleem97/gregFramework/blob/master/docs/reference/mcp-server.md). Der MCP-Server für Framework-Scan/Tooling liegt im Core-Umfeld (`gregCore/FrikaMF-StandaloneRepo/mcp-server/`).

View File

@@ -4,7 +4,7 @@ title: FrikaMF Docs Start
slug: /docs slug: /docs
--- ---
This documentation matches the **current monorepo**: MelonLoader framework under `framework/`, gameplay mods under `mods/`, FFM plugins under `plugins/`, Docusaurus content in `docs/`, and the wiki app in `wiki/`. It is written for **players**, **mod developers**, **contributors**, and **sponsors** — pick a lane below. Diese Dokumentation beschreibt den **aktuellen Split-Stand**: `gregFramework/` als Wrapper mit Einzel-Repositories für Core, Mods, Extensions und Wiki. Sie richtet sich an **Spieler**, **Mod-Developer**, **Contributors** und **Sponsoren**.
## Für wen? — Who is this for? ## Für wen? — Who is this for?
@@ -17,10 +17,12 @@ This documentation matches the **current monorepo**: MelonLoader framework under
**Experience tracks** (newbies → pros): [By audience](./topics/audiences/overview.md) → [Newbies](./audiences/newbies.md), [Intermediates](./audiences/intermediates.md), [Professionals](./audiences/professionals.md). **Experience tracks** (newbies → pros): [By audience](./topics/audiences/overview.md) → [Newbies](./audiences/newbies.md), [Intermediates](./audiences/intermediates.md), [Professionals](./audiences/professionals.md).
## Mods Hub ## Repository Hub
- Framework entry: [`Framework`](./mods/framework.md) - Core: `gregCore/FrikaMF-StandaloneRepo/`
- Standalone / mod list: [`Standalone Mods`](./mods/standalone/index.md) - Mods: `gregMods/` (Repos `gregMod.<Name>`)
- Extensions: `gregExtensions/` (Repos `gregExt.<Name>`)
- Wiki: `gregWiki/`
## Hooks and releases ## Hooks and releases
@@ -31,11 +33,11 @@ This documentation matches the **current monorepo**: MelonLoader framework under
## Repository layout (contributors) ## Repository layout (contributors)
- [Repo inventory](./contributors/repo-inventory.md) — projects, solution scope, entry points - [Repo inventory](./contributors/repo-inventory.md) — aktuelle Projekt-/Repo-Übersicht
- [Monorepo target layout](./contributors/monorepo-target-layout.md) — phased migration goals - Split-Konvention: `gregMod.<Name>`, `gregExt.<Name>`, `gregSta.<Name>`
## Source model ## Source model
- **Authoring:** Markdown and MDX live in the repo-root **`docs/`** folder (this tree). See the **[`docs/` layout map](./README.md)** for what lives where (curated topics vs `wiki-import/` vs `wiki/` stubs). - **Authoring:** Inhalte liegen im `gregWiki`-Repo.
- **Site:** The Docusaurus application is in **`wiki/`**; routes use base **`/wiki`** (see [Docusaurus workflow](./contributors/docusaurus-workflow.md)). - **Core source of truth:** technische Runtime-/Bridge-Details kommen aus `gregCore`.
- **Legacy GitHub Wiki:** Mirrored under **`docs/wiki-import/`**; refresh from **`.wiki/`** with `npm run wiki:refresh` in `wiki/`. Details: [Legacy wiki import](./topics/wiki-import/overview.md). - **RustBridge:** ist im Core integriert unter `FrikaMF-StandaloneRepo/bridges/gregSta.RustBridge/`.