https://github.com/liascript/liascript
Interpreter for interactive educational content, written in an extended Markdown format...
https://github.com/liascript/liascript
education elm liascript markdown oer
Last synced: 3 days ago
JSON representation
Interpreter for interactive educational content, written in an extended Markdown format...
- Host: GitHub
- URL: https://github.com/liascript/liascript
- Owner: LiaScript
- License: bsd-3-clause
- Created: 2019-11-06T17:30:11.000Z (about 6 years ago)
- Default Branch: development
- Last Pushed: 2025-05-14T22:08:29.000Z (8 months ago)
- Last Synced: 2025-05-15T22:04:39.211Z (8 months ago)
- Topics: education, elm, liascript, markdown, oer
- Language: Elm
- Homepage: https://LiaScript.github.io
- Size: 31.8 MB
- Stars: 231
- Watchers: 9
- Forks: 32
- Open Issues: 34
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Citation: CITATION.cff
Awesome Lists containing this project
- awesome-elm-pltd - LiaScript - Markdown for interactive [Open Educational Resources (OER)](https://en.wikipedia.org/wiki/Open_educational_resources), with support for animations, text2speech, automated data analyzes & visualization, interactive coding, quizzes, ASCII-art and more ... It is also extendable due to an simple Macro-System. (Languages / Markup Languages)
README
[](https://LiaScript.github.io/course/?https://github.com/LiaScript/docs) [](https://gitter.im/LiaScript/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)



# LiaScriptππ
**Create fully interactive, offline-capable online courses using Markdown β perfect for educators, NGOs, and developers.**
[](https://liascript.github.io/LiveEditor/?/show/file/https://raw.githubusercontent.com/LiaScript/Hello-LiaScript/refs/heads/main/README.md)
[](LICENSE)
[](https://github.com/LiaScript)
[](https://github.com/LiaScript/LiaScript/issues)
[](https://twitter.com/LiaScript)
## π What is LiaScript?
**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.
https://github.com/user-attachments/assets/7cab2d61-5858-4b62-87bf-0598e44af2e7
## β¨ Features
- β
**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 ...
## π§ͺ Get Started in 60 Seconds
1. Create a Markdown file:
```markdown
# Hello LiaScript
{{|>}}
Welcome to this interactive course.
What is 2 + 2?
- [( )] 3
- [(X)] 4
- [( )] 5
```
2. Host it (e.g., on GitHub)
π¦ Example: https://github.com/yourname/my-course/README.md
3. Open it in your browser:
`https://liascript.github.io/course/?https://github.com/yourname/my-course/README.md`
### Alternatively
1. Open the [LiveEditor](https://liascript.github.io/LiveEditor/?/show/code/H4sIAAAAAAAAA1NW8EjNyclX8MlMDE4uyiwo4eKqrq6xq63lCk/NSc7PTVUoyVcoycgsVsjMK0ktSkwuySxLVUjOLy0qTtXj4grPSCxRAEoaKWgrGNlzcekqRGsoaMYqGINZEUCWCVzMFADtbaoFbAAAAA==)
2. Change the example and click on parsing
3. Export it to GitHub gist, Nostr, or share it directly as a data-URI (only within the URL).
## π Resources & Showcase
| Resource | Description |
| --------------------------------------------------------------------------------------------------- | ------------------------------------------------------- |
| [Blog](https://LiaScript.github.io) | News, features, tutorials, examples and more |
| [LiveEditor](https://liascript.github.io/LiveEditor/examples.html) | Online & browser only editor for LiaScript |
| [Docs](https://liascript.github.io/course/?https://github.com/LiaScript/docs) | Full documentation, syntax, tutorials |
| [YouTube Channel](https://www.youtube.com/@liascript4180) | Video guides & examples |
| [Exporter-CLI](https://github.com/LiaScript/LiaScript-Exporter) | PDF/SCORM/IMS/WEP/Project exporter |
| [Markdownify JSON -> LiaScript](https://github.com/LiaScript/markdownify) | AI-compatible JSON course generator |
| [VSCode Preview Plugin](https://liascript.github.io/blog/install-visual-studio-code-with-liascript) | Live Preview courses in VSCode |
| [VSCode Web-Preview Plugin](https://liascript.github.io/vscode-web) | Live Preview courses in VSCode-Web (https://github.dev) |
| [Atom Preview Plugin](https://liascript.github.io/blog/install-atom-with-liascript) | Live Preview courses in Atom |
| [Development Server](https://liascript.github.io/development-server) | Lvve Preview courses with any editor |
---
## π©βπ» Join the Community
### π¬ Engage
* Ask questions in [GitHub Discussions](https://github.com/LiaScript/LiaScript/discussions)
* See what others are building in [LiaScript Courses](https://github.com/topics/liascript-course)
* Create your own extensions and share them [LiaScript Templates](https://github.com/topics/liascript-template)
* Found a bug or have an idea? β [Open an issue](https://github.com/LiaScript/LiaScript/issues)
* Extend the internationalization: [Create or correct a Translation](https://github.com/liaScript/lia-localization/locale)
## π For NGOs & OER Projects
We welcome collaborations with:
* π Open Education Initiatives
* π± Non-profit training programs
* π« Teachers & universities worldwide
> Letβs build a global library of interactive knowledge.
## βοΈ Dev Tools & Automation
* Use our [Exporter-CLI](https://liascript.github.io/exporter/) to export courses to PDF/SCORM/IMS/Index/Web
* Automate deployment with GitHub Actions [(Examples)](https://liascript.github.io/categories/automation)
* Convert AI-generated JSON to Markdown using [Markdownify](https://github.com/LiaScript/markdownify)
## π License
Licensed under the BSD3 License β 100% free and open.
## π£ Stay in Touch
* βοΈ Newsletter: [Typeform](https://liascript.github.io/newsletter)
* π¬ Twitter: [@LiaScript](https://twitter.com/LiaScript)
* π« Email: [LiaScript@web.de](mailto:liascript@web.de)
---
*βMarkdown is just text β LiaScript turns it into learning.β*
## Build
Use the following commands to download the LiaScript source-code and to build it locally.
```bash
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:
```bash
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.
## Preview
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
...
...
...
...
```
## Badges
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:**
- course:
[](https://LiaScript.github.io/course/?https://github.com/LiaScript/docs)
`[](https://LiaScript.github.io/course/?URL)`
- learn more:
[](https://LiaScript.github.io/course/?https://raw.githubusercontent.com/LiaScript/docs/master/README.md)
`[](https://LiaScript.github.io/course/?URL)`