Merge Docusaurus site: all content under docs/, align with gregFramework split layout

- Move markdown and wiki-import tree into docs/; keep app shell at repo root
- Point docusaurus docs path to docs/; edit links to mleem97/gregWiki
- Sync and i18n scripts use gregWiki root and ../.wiki under gregFramework
- Sidebars: workspace layout from root docs ids; plugins under mods/extensions
- Fix redirects, module catalog URLs, release note paths, and wiki-import category keys
- Update repo inventory for split repos; Dockerfile for single-repo context

Made-with: Cursor
This commit is contained in:
Marvin
2026-04-09 23:39:32 +02:00
parent 33636fde00
commit e2839584f4
320 changed files with 38803 additions and 97 deletions

View File

@@ -0,0 +1,99 @@
---
title: Contributors (Debug) EN
description: Framework contributor setup, hook workflow, conventions, CI behavior, and PR checklist.
sidebar_position: 140
tags:
- audience:contributor
---
## Contributors (Debug)
This page is for contributors working on FrikaMF itself.
For the complete and maintainable feature matrix with implementation use cases, see [`Framework Features & Use Cases`](/wiki/wiki-import/Framework-Features-Use-Cases).
## Dev setup
```powershell
dotnet build .\framework\framework/FrikaMF.csproj -c Debug -nologo
cargo build --release
```
Optional game path override:
```powershell
dotnet build .\framework\framework/FrikaMF.csproj /p:GameDir="C:\Path\To\Data Center"
```
## Add a new hook workflow
1. Find target in dnSpy/dotPeek.
2. Update `HOOKS.md`.
3. Add Harmony patch.
4. Add event id + dispatch wiring.
5. Add/update Rust ABI event handling if needed.
6. Test locally.
7. Open PR.
## Conventions
- Keep ABI structs blittable.
- Keep wrappers in framework, gameplay policy in mods.
- Use stable event names and explicit contracts.
## IL2CPP pitfalls
- `b###` compiler-generated members are unstable.
- Coroutine state-machine types (`d##`) are unstable.
- Prefer Postfix first unless behavior blocking is required.
## Lua/Python/Web FFI contributor notes
Current core status:
- Rust native FFI bridge: implemented.
- Built-in Lua runtime host: not implemented.
- Built-in Python runtime host: not implemented.
- Built-in generic HTTP/WebSocket FFI transport: not implemented.
Contribution guidance:
- Treat Lua/Python as sidecar integration work unless core runtime hosting is explicitly added.
- Keep Unity and IL2CPP access constrained to C#/Rust boundaries.
- If adding transport, define strict command schemas, authentication for non-local access, and rate limits.
## CI behavior
- CI runs without game installation.
- `$(CI)=true` skips local game reference validation.
- Local builds require MelonLoader-generated interop files.
## PR checklist
- [ ] `HOOKS.md` updated
- [ ] Build passes locally
- [ ] Docs updated
- [ ] Conventional Commits used
## Example pair
### 🦀 Rust
```rust
#[repr(C)]
pub struct MoneyChanged {
pub old_value: i32,
pub new_value: i32,
}
```
### 🔷 C\#
```csharp
[StructLayout(LayoutKind.Sequential)]
public struct MoneyChanged
{
public int OldValue;
public int NewValue;
}
```

View File

@@ -0,0 +1,5 @@
{
"label": "Contributors (typo path — prefer Contributors/)",
"position": 60,
"key": "wiki-import-root-contributors-typo"
}