Create fully interactive, offline-capable online courses using Markdown β perfect for educators, NGOs, and developers.
LiaScript is an open-source interpreter that turns static Markdown files into fully interactive learning experiences β rendered directly in the browser, even offline. Itβs built for:
- π Educators: Craft structured lessons with quizzes, animations, TTS, and live code.
- π NGOs: Distribute multilingual, low-bandwidth-friendly content, globally and for free.
- π» Developers: Document APIs or teach programming with executable code and narration.
Hello.LiaScript.mp4
- β Plain Markdown-compatible with educational extensions
- β Quizzes, cloze tests, and surveys
- π£οΈ Text-to-Speech (TTS) in multiple languages
- π» Live Code execution (JavaScript, Python via Pyodide, MicroPython, etc.)
- π ASCII diagrams, charts, and tables
- π² PWA support β works completely offline
- π€ Export to PDF, SCORM, IMS
- π Plugin system and macros
- π₯ Peer-to-Peer mode for offline-first collaboration
- much more ...
-
Create a Markdown file:
# Hello LiaScript {{|>}} Welcome to this interactive course. What is 2 + 2? - [( )] 3 - [(X)] 4 - [( )] 5
-
Host it (e.g., on GitHub)
π¦ Example: https://github.com/yourname/my-course/README.md
-
Open it in your browser:
https://liascript.github.io/course/?https://github.com/yourname/my-course/README.md
-
Open the LiveEditor
-
Change the example and click on parsing
-
Export it to GitHub gist, Nostr, or share it directly as a data-URI (only within the URL).
Resource | Description |
---|---|
Blog | News, features, tutorials, examples and more |
LiveEditor | Online & browser only editor for LiaScript |
Docs | Full documentation, syntax, tutorials |
YouTube Channel | Video guides & examples |
Exporter-CLI | PDF/SCORM/IMS/WEP/Project exporter |
Markdownify JSON -> LiaScript | AI-compatible JSON course generator |
VSCode Preview Plugin | Live Preview courses in VSCode |
VSCode Web-Preview Plugin | Live Preview courses in VSCode-Web (https://github.dev) |
Atom Preview Plugin | Live Preview courses in Atom |
Development Server | Lvve Preview courses with any editor |
- Ask questions in GitHub Discussions
- See what others are building in LiaScript Courses
- Create your own extensions and share them LiaScript Templates
- Found a bug or have an idea? β Open an issue
- Extend the internationalization: Create or correct a Translation
We welcome collaborations with:
- π Open Education Initiatives
- π± Non-profit training programs
- π« Teachers & universities worldwide
Letβs build a global library of interactive knowledge.
- Use our Exporter-CLI to export courses to PDF/SCORM/IMS/Index/Web
- Automate deployment with GitHub Actions (Examples)
- Convert AI-generated JSON to Markdown using Markdownify
Licensed under the BSD3 License β 100% free and open.
- βοΈ Newsletter: Typeform
- π¬ Twitter: @LiaScript
- π« Email: LiaScript@web.de
βMarkdown is just text β LiaScript turns it into learning.β
Use the following commands to download the LiaScript source-code and to build it locally.
git clone https://github.com/liascript/liascript
cd liascript
npm i
npm run watch # develop in watch-mode
npm run build # build to dist
After your first build, you can run the following commands, this will download additional elm-patches and apply them:
git submodule update --init --recursive
cd patches
make
cd .. # go back
rm -rf elm-stuff .parcel-cache # remove all cached stuff
npm run build # force an entire rebuild of the project
This will apply the following four patches:
-
elm-break-dom: allows browser extensions such as screen-readers to change the nodes of the app, without crashing the app
-
elm-patch/url: enables the file-protocol, which is only required when building Desktop-apps
-
elm-patch/dom: enable onclick events as well as innerHTML
-
Dexie: this will allow only LiaScript to access indexedDB, which increases the security, by restricting the access. This way information about user states, visited courses, etc. cannot be leaked or spied by other JavaScript modules.
If you want to add a preview-link for the course to your site, simply add the
following script to the head of your website and place the custom webcomponent
preview-lia
anyone in your document, with src
pointing to your LiaScript
course.
<html>
<head>
...
<!-- add preview-lia tag support to display all course related information -->
<script
type="text/javascript"
src="https://liascript.github.io/course/preview-lia.js"
></script>
...
</head>
<body>
...
<preview-lia
src="https://raw.githubusercontent.com/liaScript/docs/master/README.md"
></preview-lia>
...
</body>
</html>
Simply replace URL
at the end of the snippet below with your desired GitHub
repository (and the main README.md of your master-branch will be used) or
directly point to any Markdown-file anywhere within the web.
Badges: