Welcome. This documentation serves three audiences:
- End Users (Educators): Install and run eXeLearning on Windows, macOS, and Linux.
- System Administrators: Deploy and maintain eXeLearning on servers with Docker.
- Developers/Contributors: Set up the environment, run tests, customize, and contribute.
Use the sections below to jump to what you need.
-
Development Environment: Setup and tooling
-
Contributing: How to contribute
-
Testing: Unit, E2E, and CI
-
Internationalization: Add and update translations
-
Real Time: Yjs WebSocket collaboration
-
Customization: Applying safe CSS/JS
-
Customization: Creating a Style
-
Version Control: Branching and PRs
-
Installers: Installers
-
Embedding: Embedding the editor in LMS plugins
- ELPX Format Hub — Modern
.elpxproject file format (eXeLearning v3+); top-level overview that links to every detail subdoc below - Legacy ELP Format (contentv3.xml) — Legacy format (eXeLearning 2.x)
Detailed subdocs under doc/elpx-format/:
- Container & XML
- Container layout — every file/folder inside an
.elpxZIP - content.xml reference — full ODE 2.0 element reference + bundled DTD
- ID format —
YYYYMMDDHHmmss + 6 charsand synchronization rules - Metadata properties — every
pp_*key - Pages and blocks — flat-list navigation model
- Container layout — every file/folder inside an
- iDevices
- Catalog — every supported type
- Content patterns — the four storage patterns
- Per-iDevice config.xml
- XML snippets — copy-pasteable XML per type
- Resources
- Themes — bundle layout, default
base, custom themes - Bundled libraries —
libs/contents and inclusion rules - Assets and
{{context_path}} - screenshot.png spec
- Themes — bundle layout, default
- Pipelines & validation
- Export pipeline
- Import pipeline
- Validation — DTD/XSD + checklist
- AI generation
- AI generation rules — rules for LLMs producing
.elpx
- AI generation rules — rules for LLMs producing
- Examples
/llms.txt— top-level index for LLM consumption (per llmstxt.org)/llms-full.txt— full ELPX-format doc bundle in a single file- AI generation rules — start here when generating
.elpxprogrammatically
Need help choosing? If you are installing the desktop app on your computer, start with Install. If you plan to host eXeLearning for multiple users, see Deployment. If you want to contribute to the codebase, go to Development.