A comprehensive, community-driven documentation wiki for the LeagueToolkit ecosystem. The wiki serves as the single source of truth for League of Legends modding knowledge — from beginner guides to deep technical references on file formats and tooling.
- Accessible: Newcomers can learn modding from zero
- Comprehensive: Covers all LeagueToolkit tools and LoL file formats
- Searchable: Full-text search across all content
- Fast: Static generation, sub-second page loads
- Maintainable: Content-as-code, PR-based contribution workflow
- Interactive: Embedded tools where static content isn't enough
Mod User — Wants to install and manage mods using ltk-manager. Needs clear setup guides, troubleshooting steps, and FAQ answers.
Mod Creator — Builds custom skins, maps, or gameplay mods. Needs tool documentation (ltk-manager Creator Workshop), file format references, and best practices.
Tool Developer — Builds or extends modding tools using league-toolkit or related libraries. Needs API references, format specifications, and architecture docs.
Contributor — Contributes to LeagueToolkit projects or the wiki itself. Needs contribution guides and project conventions.
docs/
├── getting-started/ # Onboarding flow
│ ├── introduction.md # What is LeagueToolkit?
│ ├── installation.md # Installing ltk-manager
│ └── first-mod.md # Install your first mod
│
├── guides/ # Task-oriented how-to articles
│ ├── mod-management/ # Using ltk-manager as a player
│ │ ├── installing-mods.md
│ │ ├── profiles.md
│ │ ├── mod-folders.md
│ │ └── troubleshooting.md
│ ├── mod-creation/ # Creating mods
│ │ ├── workshop-overview.md
│ │ ├── creating-a-project.md
│ │ ├── layers.md
│ │ └── packaging.md
│ └── contributing/ # Contributing to LeagueToolkit
│ ├── wiki-authoring.md
│ └── project-guidelines.md
│
├── tools/ # Tool-specific documentation
│ ├── ltk-manager/ # Mod manager docs
│ │ ├── overview.md
│ │ ├── features.md
│ │ └── configuration.md
│ └── league-toolkit/ # Rust library docs
│ ├── overview.md
│ └── crate-guide.md
│
├── reference/ # Technical reference material
│ ├── file-formats/ # LoL file format specs
│ │ ├── wad.md # WAD archives
│ │ ├── skn.md # Skinned meshes
│ │ ├── skl.md # Skeletons
│ │ ├── anm.md # Animations
│ │ ├── bin.md # Property bins
│ │ ├── tex.md # Textures
│ │ ├── mapgeo.md # Map geometry
│ │ └── ritobin.md # Ritobin text format
│ ├── metaclasses/ # LoL metaclass reference
│ │ └── overview.md
│ └── hashing/ # Hash function reference
│ └── algorithms.md
│
└── community/ # Community resources
├── links.md # Useful links and tools
└── glossary.md # Modding terminology
Sidebar navigation is defined declaratively in astro.config.ts using Starlight's sidebar configuration. Structure mirrors the content hierarchy above with collapsible groups.
Top-level sections:
- Getting Started — Linear onboarding flow
- Guides — Task-oriented articles grouped by topic
- Tools — Per-tool documentation
- Reference — Technical specs and data
- Community — External resources and glossary
All docs pages share a base schema enforced by Astro Content Collections:
// src/content/config.ts
import { defineCollection, z } from 'astro:content';
import { docsSchema } from '@astrojs/starlight/schema';
export const collections = {
docs: defineCollection({
schema: docsSchema(),
}),
};Starlight's docsSchema() provides: title, description, sidebar, tableOfContents, editUrl, head, hero, etc.
Custom extensions (if needed) can wrap docsSchema() with additional Zod fields.
| Type | Format | When to Use |
|---|---|---|
| Standard doc | .md |
Text, images, code blocks, tables |
| Interactive doc | .mdx |
Needs embedded Svelte components |
Planned Svelte islands for enhanced content:
An interactive hex/structure viewer for LoL file formats. Users can upload or select sample files and see the parsed structure annotated inline. Hydration: client:visible.
A searchable, filterable table of LoL metaclass definitions sourced from lol-meta-classes dumps. Supports version comparison. Hydration: client:load.
Embedded code examples with live output for demonstrating league-toolkit API usage. Hydration: client:visible.
Before/after image comparison slider for mod screenshots. Hydration: client:visible.
Push to main
→ GitHub Actions
→ pnpm install
→ astro check (type validation)
→ astro build (static generation)
→ Lighthouse CI (performance audit)
→ Deploy to GitHub Pages
| Metric | Target |
|---|---|
| Lighthouse Performance | >= 90 |
| First Contentful Paint | < 1.5s |
| Total Blocking Time | < 200ms |
| Largest Contentful Paint | < 2.5s |
Static output deployed to GitHub Pages via actions/deploy-pages. No server infrastructure required.
- Base: Starlight default theme with dark mode preference
- Brand colors: LeagueToolkit palette (defined as CSS custom properties)
- Typography: Starlight defaults with potential custom heading font
- Custom CSS via Tailwind utilities layered on Starlight's design tokens
- Logo and favicon from LeagueToolkit branding assets
- i18n: Starlight has built-in i18n support; content translation can be added later
- Versioned docs: Version-specific documentation for ltk-manager releases
- API docs auto-generation: Pull rustdoc from league-toolkit into reference pages
- Community contributions: Streamlined PR template for content submissions
- Analytics: Privacy-respecting analytics (Plausible or similar) for content prioritization