mirror of
https://github.com/mleem97/gregWiki.git
synced 2026-04-11 03:29:19 +02:00
docs(wiki): update architecture and getting-started for split repos
This commit is contained in:
@@ -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/`.
|
||||||
|
|||||||
@@ -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/`).
|
||||||
|
|||||||
20
intro.md
20
intro.md
@@ -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/`.
|
||||||
|
|||||||
Reference in New Issue
Block a user