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
sidebar_label: Monorepo architecture
description: Core vs bindings vs mods; hook scanner; Game2Framework compatibility.
title: Repository architecture
sidebar_label: Repository architecture
description: Aktuelle Multi-Repo-Architektur mit `gregFramework` als Wrapper und klarer Repo-Trennung.
---
# Monorepo — Architecture
## Layers
| Layer | Role |
| ------ | ------ |
| **Core** | MelonLoader mod + event dispatch — today under `framework/FrikaMF/` (C#). Target layout: `FrikaModFramework/src/core/`. |
| **Bindings** | Language-specific surfaces — placeholders under `FrikaModFramework/src/bindings/`. |
| **Mods / plugins** | Shipped sources in `mods/` and `plugins/`; optional pilot tree `HexMod/` (VDF + hooks metadata). |
| **Docs** | Docusaurus consumes repo-root `docs/`; app lives in `wiki/`. |
| **Wrapper** | `gregFramework/` enthält lokal alle Einzel-Repositories. |
| **Core** | `gregCore/FrikaMF-StandaloneRepo/` mit Framework, Hooks, MCP und Templates. |
| **Rust bridge** | In Core integriert unter `gregCore/FrikaMF-StandaloneRepo/bridges/gregSta.RustBridge/`. |
| **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
`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/fmf-hook-scanner`** — emit the [FMF Hook Reference](./fmf-hooks) page from the registry.
- **`tools/game2framework-migrator`** — dry-run mapping using `tools/fmf-hook-scanner/mapping/game2framework-map.json`.
- **`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).
- **Core tools:** `gregCore/FrikaMF-StandaloneRepo/tools/`
- **MCP runtime:** `gregCore/FrikaMF-StandaloneRepo/mcp-server/`
- **Hook-/Mapping-Utilities:** ebenfalls unter Core-Tools, versioniert mit dem Core-Repo.
## 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
sidebar_label: Monorepo getting started
description: Target layout (FrikaModFramework, templates, tools) and how it maps to this repo today.
title: Getting started
sidebar_label: Getting started
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
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
@@ -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).
- **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).
2. Edit `fmf/hooks.json` and add sources under `src/`.
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/`).
1. Neues Mod-Repo unter `gregMods/` nach Schema `gregMod.<Name>` anlegen.
2. Templates aus `gregCore/FrikaMF-StandaloneRepo/Templates/` nutzen.
3. Hook-Metadaten pflegen und Mod im eigenen Repo versionieren.
## Documentation site
- **Content:** [`docs/`](https://github.com/mleem97/gregFramework/tree/master/docs)
- **Docusaurus app:** [`wiki/`](https://github.com/mleem97/gregFramework/tree/master/wiki) — `npm install` and `npm run start` (dev) or `npm run build` (static output).
- **Repo:** `gregWiki/`
- **Inhalt:** Markdown/MDX in diesem Repo, angepasst an den Split-Stand.
### Docker
@@ -40,4 +47,4 @@ Or open [`FrikaMF.sln`](https://github.com/mleem97/gregFramework/blob/master/Fri
## 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
---
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?
@@ -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).
## Mods Hub
## Repository Hub
- Framework entry: [`Framework`](./mods/framework.md)
- Standalone / mod list: [`Standalone Mods`](./mods/standalone/index.md)
- Core: `gregCore/FrikaMF-StandaloneRepo/`
- Mods: `gregMods/` (Repos `gregMod.<Name>`)
- Extensions: `gregExtensions/` (Repos `gregExt.<Name>`)
- Wiki: `gregWiki/`
## Hooks and releases
@@ -31,11 +33,11 @@ This documentation matches the **current monorepo**: MelonLoader framework under
## Repository layout (contributors)
- [Repo inventory](./contributors/repo-inventory.md) — projects, solution scope, entry points
- [Monorepo target layout](./contributors/monorepo-target-layout.md) — phased migration goals
- [Repo inventory](./contributors/repo-inventory.md) — aktuelle Projekt-/Repo-Übersicht
- Split-Konvention: `gregMod.<Name>`, `gregExt.<Name>`, `gregSta.<Name>`
## 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).
- **Site:** The Docusaurus application is in **`wiki/`**; routes use base **`/wiki`** (see [Docusaurus workflow](./contributors/docusaurus-workflow.md)).
- **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).
- **Authoring:** Inhalte liegen im `gregWiki`-Repo.
- **Core source of truth:** technische Runtime-/Bridge-Details kommen aus `gregCore`.
- **RustBridge:** ist im Core integriert unter `FrikaMF-StandaloneRepo/bridges/gregSta.RustBridge/`.