|
| 1 | +--- |
| 2 | +title: "LiaEx: From CLI Tool to Full Export Platform" |
| 3 | +date: 2026-03-26 |
| 4 | +draft: false |
| 5 | +image: "/images/post/098_banner.png" |
| 6 | +tags: ["OER", "Funding", "BMBFSFJ", "LMS", "Exporter", "SCORM", "xAPI", "Accessibility", "Desktop", "Web"] |
| 7 | +categories: ["News", "Feature"] |
| 8 | +author: "Jihad Hyadi" |
| 9 | +description: "As the LiaEx funding sprint draws to a close, here is an overview of what was built: a new desktop app, a web UI, xAPI support, ePub/DOCX export, a GitHub Action, and much more." |
| 10 | +--- |
| 11 | + |
| 12 | +Back in October 2025, we [announced that LiaEx had received funding](../094_liaex-funding-for-the-liascript-exporter) through the [OE_Sprints](https://www.oer-strategie.de/foerdern/foerderrichtlinien/oe_sprints/) program of the German Federal Ministry for Family Affairs, Senior Citizens, Women and Youth (BMBFSFJ). With the project period running from October 15, 2025 to April 14, 2026, the sprint is now in its final stages — and this post provides an overview of the key developments completed so far. |
| 13 | + |
| 14 | +**Project Period:** October 15, 2025 – April 14, 2026 |
| 15 | +**Funding Code:** 01PZ25002 |
| 16 | + |
| 17 | +### Overview |
| 18 | + |
| 19 | +The primary objective was to evolve the LiaScript-Exporter from a capable but CLI-only tool into an accessible solution that educators, course designers, and institutions can adopt without requiring developer expertise. |
| 20 | + |
| 21 | +The exporter is now available in **three forms** — a native desktop application, a browser-based web UI, and the existing CLI — all driven by the same underlying export engine. |
| 22 | + |
| 23 | +--- |
| 24 | + |
| 25 | +### Developments to Date |
| 26 | + |
| 27 | +#### 1. New User Interfaces |
| 28 | + |
| 29 | +A central goal of LiaEx was to make the exporter accessible beyond the command line. The same export engine now powers three distinct usage modes: |
| 30 | + |
| 31 | +**Desktop Application (recommended)** |
| 32 | + |
| 33 | +The desktop app is the most accessible entry point. It runs on **Windows, macOS, and Linux** and requires no Node.js installation or terminal knowledge. Download and install it directly from the [GitHub Releases](https://github.com/LiaScript/LiaScript-Exporter/releases) page. Available packages include `.exe`, `.dmg`, `.AppImage`, `.deb`, `.rpm`, and portable archives for all platforms. |
| 34 | + |
| 35 | + |
| 36 | + |
| 37 | +**Web UI (via CLI)** |
| 38 | + |
| 39 | +For users who prefer a browser-based workflow or want to integrate the exporter into a server environment, the same interface is available as a local web server. After installing via npm, start it with: |
| 40 | + |
| 41 | +```bash |
| 42 | +npm install -g @liascript/exporter |
| 43 | +liaex serve |
| 44 | +``` |
| 45 | + |
| 46 | +This starts the export server on port 3000. The interface allows you to: |
| 47 | + |
| 48 | +- **Upload files** or specify a **Git repository** as your course source |
| 49 | +- Select an export target (Moodle, ILIAS, OPAL, Generic LMS, Web, PDF, ePub, DOCX, xAPI) |
| 50 | +- Configure advanced format-specific settings |
| 51 | +- Submit export jobs and track their status in an asynchronous queue |
| 52 | + |
| 53 | +**Docker (Android export)** |
| 54 | + |
| 55 | +Android exports require the Android SDK, which can be complex to set up locally. A pre-built Docker image is provided for this purpose: |
| 56 | + |
| 57 | +```bash |
| 58 | +docker pull liascript/exporter |
| 59 | +docker run --rm -v $(pwd):/work liascript/exporter \ |
| 60 | + liaex -f android \ |
| 61 | + -i /work/README.md \ |
| 62 | + --android-appId io.github.liascript.mycourse \ |
| 63 | + --output /work/output |
| 64 | +``` |
| 65 | + |
| 66 | +The Docker image can also be used to run the web UI in a self-hosted or institutional environment. |
| 67 | + |
| 68 | +--- |
| 69 | + |
| 70 | +#### 2. New Export Formats |
| 71 | + |
| 72 | +Three new output formats were added alongside the existing SCORM, IMS, Web, PDF, and Android exports: |
| 73 | + |
| 74 | +**xAPI (Tin Can API)** |
| 75 | + |
| 76 | +xAPI is the modern standard for tracking rich learning interactions with a **Learning Record Store (LRS)**. LiaEx now generates self-contained xAPI packages with a `tincan.xml` manifest. Options include LRS endpoint configuration, actor and course ID settings, mastery threshold, and zip packaging. |
| 77 | + |
| 78 | +```bash |
| 79 | +liaex -i course/README.md --format xapi --xapi-endpoint https://lrs.example.com/xapi |
| 80 | +``` |
| 81 | + |
| 82 | +**ePub** |
| 83 | + |
| 84 | +LiaScript courses can be exported as **ePub e-books** compatible with most e-readers. Puppeteer renders the course content, which is then packaged in standard ePub 2/3 format. Options include custom cover images, fonts, stylesheets, language metadata, and table-of-contents control. |
| 85 | + |
| 86 | +```bash |
| 87 | +liaex -i course/README.md --format epub --epub-title "My Course" --epub-author "Author Name" |
| 88 | +``` |
| 89 | + |
| 90 | +**DOCX** |
| 91 | + |
| 92 | +Courses can be exported as **Microsoft Word documents** (.docx), compatible with Word 2007+, LibreOffice, and Google Docs. Custom headers, footers, page numbers, fonts, page orientation, and CSS stylesheets are supported. |
| 93 | + |
| 94 | +```bash |
| 95 | +liaex -i course/README.md --format docx --docx-title "My Course" |
| 96 | +``` |
| 97 | + |
| 98 | +--- |
| 99 | + |
| 100 | +#### 3. GitHub Action |
| 101 | + |
| 102 | +For teams managing course content in Git repositories, we published an official **GitHub Action** that runs exports automatically on every push — no server required. Add it to your workflow and get SCORM, PDF, or any other format as a build artifact: |
| 103 | + |
| 104 | +```yaml |
| 105 | +- name: Export to SCORM |
| 106 | + uses: LiaScript/LiaScript-Exporter@master |
| 107 | + with: |
| 108 | + input-file: 'README.md' |
| 109 | + format: 'scorm1.2' |
| 110 | + output-name: 'my-course' |
| 111 | +``` |
| 112 | +
|
| 113 | +Full documentation is available in [`action/README.md`](https://github.com/LiaScript/LiaScript-Exporter/blob/master/action/README.md). |
| 114 | + |
| 115 | +--- |
| 116 | + |
| 117 | +#### 4. Improved LMS Compatibility |
| 118 | + |
| 119 | +We significantly expanded and validated SCORM compatibility across real-world LMS platforms. The exporter now includes tested, documented command examples for: |
| 120 | + |
| 121 | +| LMS | Recommended Command | |
| 122 | +|-----|---------------------| |
| 123 | +| ILIAS | `scorm2004 --scorm-masteryScore 80 --scorm-iframe` | |
| 124 | +| Moodle 3.x | `scorm1.2 --scorm-masteryScore 80 --scorm-iframe` | |
| 125 | +| Moodle 4.x | `scorm1.2 --scorm-masteryScore 80 --scorm-embed` | |
| 126 | +| OPAL | `scorm1.2 --scorm-masteryScore 80 --scorm-embed` | |
| 127 | +| OpenOlat | `scorm1.2 --scorm-masteryScore 80 --scorm-embed` | |
| 128 | +| open edX | `scorm1.2 --scorm-masteryScore 80 --scorm-embed` | |
| 129 | +| learnworlds.com | `scorm2004 --scorm-masteryScore 80 --scorm-iframe` | |
| 130 | + |
| 131 | +New SCORM options were added: `--scorm-embed` (for Moodle 4 and LMS with strict content security policies), `--scorm-typicalDuration`, and expanded `--scorm-iframe` support. |
| 132 | + |
| 133 | +--- |
| 134 | + |
| 135 | +#### 5. Export Presets (YAML Configuration) |
| 136 | + |
| 137 | +To make complex export setups reproducible, we introduced **YAML-based export presets**. Instead of repeating long command flags, you can store your configuration in a file and reference it — particularly useful for project-level batch exports with per-course overrides. |
| 138 | + |
| 139 | +--- |
| 140 | + |
| 141 | +### Demo |
| 142 | + |
| 143 | +<video src="https://github.com/user-attachments/assets/05ddc764-8522-437a-b569-00b4df7d98b6" controls></video> |
| 144 | + |
| 145 | +--- |
| 146 | + |
| 147 | +### Try It Now |
| 148 | + |
| 149 | +All developments described above are already available in the current release: |
| 150 | + |
| 151 | +- **npm:** `npm install -g @liascript/exporter` |
| 152 | +- **Desktop app:** [GitHub Releases](https://github.com/LiaScript/LiaScript-Exporter/releases) |
| 153 | +- **Docker:** `docker pull liascript/exporter` |
| 154 | +- **Source:** [github.com/LiaScript/LiaScript-Exporter](https://github.com/LiaScript/LiaScript-Exporter) |
| 155 | + |
| 156 | +Contributions, bug reports, and feature suggestions from the community are welcome. The project is maintained openly and is intended to serve educators and OER practitioners across institutional contexts. |
| 157 | + |
| 158 | +--- |
| 159 | + |
| 160 | +### Acknowledgments |
| 161 | + |
| 162 | +We gratefully acknowledge the support of: |
| 163 | + |
| 164 | +* **BMBFSFJ** – Federal Ministry for Family Affairs, Senior Citizens, Women and Youth |
| 165 | +* **DLR Project Management Agency** – for project coordination |
| 166 | +* **OER and LiaScript communities** – for feedback, inspiration, and testing throughout the sprint |
| 167 | +* **TU Bergakademie Freiberg** – for hosting the project and providing development resources |
| 168 | + |
| 169 | +**Further Information:** |
| 170 | + |
| 171 | +* [OE_Sprints Program](https://www.oer-strategie.de/foerdern/foerderrichtlinien/oe_sprints/) |
| 172 | +* [Project Page](https://www.oer-strategie.de/projects/liaex-oer-exporter-fuer-liascript/) |
| 173 | +* [GitHub Repository](https://github.com/LiaScript/LiaScript-Exporter) |
0 commit comments