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
|
||||
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/`.
|
||||
|
||||
@@ -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/`).
|
||||
|
||||
20
intro.md
20
intro.md
@@ -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/`.
|
||||
|
||||
Reference in New Issue
Block a user