@liascript/editor

Interpreter for interactive educational content, written in an extended Markdown format...

https://github.com/liascript/liascript

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 17 committers (5.9%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.7%) to scientific vocabulary

Keywords

education elm liascript markdown oer

Keywords from Contributors

interactive mesh interpretability profiles sequences generic projection standardization optim embedded
Last synced: 6 months ago · JSON representation ·

Repository

Interpreter for interactive educational content, written in an extended Markdown format...

Basic Info
  • Host: GitHub
  • Owner: LiaScript
  • License: bsd-3-clause
  • Language: Elm
  • Default Branch: development
  • Homepage: https://LiaScript.github.io
  • Size: 31.3 MB
Statistics
  • Stars: 246
  • Watchers: 9
  • Forks: 36
  • Open Issues: 43
  • Releases: 14
Topics
education elm liascript markdown oer
Created over 6 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Funding License Citation

README.md

LiaScript Gitter

GitHub contributors GitHub commit activity GitHub repo size

LiaScript📝🚀

Create fully interactive, offline-capable online courses using Markdown – perfect for educators, NGOs, and developers.

Try Live License: BSD3 Made with Markdown GitHub issues Twitter Follow

🚀 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 ```
  1. Host it (e.g., on GitHub)

📦 Example: https://github.com/yourname/my-course/README.md

  1. Open it in your browser:

https://liascript.github.io/course/?https://github.com/yourname/my-course/README.md

Alternatively

  1. Open the LiveEditor

  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 | 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 |


👩‍💻 Join the Community

💬 Engage

🌍 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 to export courses to PDF/SCORM/IMS/Index/Web
  • Automate deployment with GitHub Actions (Examples)
  • Convert AI-generated JSON to Markdown using Markdownify

📜 License

Licensed under the BSD3 License – 100% free and open.

📣 Stay in Touch


“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 <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>

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:

LiaScript

[![LiaScript](https://raw.githubusercontent.com/LiaScript/LiaScript/master/badges/course.svg)](https://LiaScript.github.io/course/?URL)

  • learn more:

LiaScript

[![LiaScript](https://raw.githubusercontent.com/LiaScript/LiaScript/master/badges/learn_more.svg)](https://LiaScript.github.io/course/?URL)

Owner

  • Name: LiaScript
  • Login: LiaScript
  • Kind: organization
  • Email: LiaScript@web.de

Open Educational Resources as they should be ...

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: LiaScript
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Sebastian
    family-names: Zug
    affiliation: TU Bergakademie Freiberg
  - given-names: Dietrich
    family-names: André
    affiliation: TU Bergakademie Freiberg
repository-code: 'https://github.com/LiaScript/LiaScript'
url: 'https://liascript.github.io/'
abstract: >-
  LiaScript is an extension to Markdown to support the
  creation of free and open online courses, interactive
  books and thus, Open Educational Resources (OER). Courses
  are simple text-files, that can be hosted and created
  freely by everyone similar to Open-Source project. This
  project contains the just-in-time compiler that runs
  directly within your browser.
license: BSD-3-Clause

GitHub Events

Total
  • Create event: 21
  • Release event: 13
  • Issues event: 14
  • Watch event: 29
  • Delete event: 7
  • Member event: 1
  • Issue comment event: 44
  • Push event: 206
  • Pull request event: 14
  • Fork event: 7
Last Year
  • Create event: 21
  • Release event: 13
  • Issues event: 14
  • Watch event: 29
  • Delete event: 7
  • Member event: 1
  • Issue comment event: 44
  • Push event: 206
  • Pull request event: 14
  • Fork event: 7

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 3,487
  • Total Committers: 17
  • Avg Commits per committer: 205.118
  • Development Distribution Score (DDS): 0.41
Past Year
  • Commits: 306
  • Committers: 4
  • Avg Commits per committer: 76.5
  • Development Distribution Score (DDS): 0.042
Top Committers
Name Email Commits
André Dietrich a****h@w****e 2,059
André Dietrich a****h@o****e 849
André Dietrich d****h@i****e 436
Steve Rehm s****m@5****e 79
dependabot[bot] 4****] 34
Fin Christensen c****n@g****m 15
KoKoKotlin l****r@g****m 3
Jens Engelmann j****n@5****e 2
Markus radtke m****e@5****e 2
Carlos Garcia c****o@z****m 1
James Collier j****r@v****e 1
Jochen Suckfüll j****n@s****t 1
André Dietrich a****e@r****2 1
Joy Payton p****p 1
Ludger Sicking 1****g 1
fdf d****v@f****m 1
steigies 5****s 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 90
  • Total pull requests: 106
  • Average time to close issues: 6 months
  • Average time to close pull requests: 10 days
  • Total issue authors: 40
  • Total pull request authors: 8
  • Average comments per issue: 2.87
  • Average comments per pull request: 0.16
  • Merged pull requests: 96
  • Bot issues: 0
  • Bot pull requests: 59
Past Year
  • Issues: 23
  • Pull requests: 23
  • Average time to close issues: 4 days
  • Average time to close pull requests: 1 day
  • Issue authors: 13
  • Pull request authors: 4
  • Average comments per issue: 1.17
  • Average comments per pull request: 0.04
  • Merged pull requests: 19
  • Bot issues: 0
  • Bot pull requests: 17
Top Authors
Issue Authors
  • andre-dietrich (15)
  • tilman-schieber (8)
  • rfuehrer (5)
  • BeastyBlacksmith (5)
  • alexeygrinevich (5)
  • pwab (5)
  • mgifford (4)
  • abotzki (3)
  • Vad1mo (2)
  • SebastianZug (2)
  • JuliaHeiken (2)
  • eguvep (2)
  • MaybeJustJames (2)
  • pm0kjp (2)
  • thorge (2)
Pull Request Authors
  • dependabot[bot] (59)
  • andre-dietrich (37)
  • KoKoKotlin (3)
  • rschroll (2)
  • pm0kjp (2)
  • l-sicking (1)
  • steigies (1)
  • cgarciaarano (1)
Top Labels
Issue Labels
🍭 enhancement (15) 🪲 bug (11) 🙏 help wanted (3) 🥇 good first issue (1) ☝️ question (1) 🎭 potentially-resolved (1) 📓 documentation (1)
Pull Request Labels
🧩 dependencies (52) dependencies (7) javascript (7) 🍭 enhancement (1)

Packages

  • Total packages: 3
  • Total downloads:
    • npm 356 last-month
  • Total dependent packages: 2
    (may contain duplicates)
  • Total dependent repositories: 5
    (may contain duplicates)
  • Total versions: 206
  • Total maintainers: 1
npmjs.org: @liascript/editor

An extended Markdown interpreter for the creation of interactive online courses.

  • Versions: 188
  • Dependent Packages: 2
  • Dependent Repositories: 5
  • Downloads: 356 Last month
Rankings
Stargazers count: 4.2%
Downloads: 4.3%
Forks count: 4.9%
Dependent repos count: 5.0%
Average: 5.5%
Dependent packages count: 8.8%
Maintainers (1)
Last synced: 6 months ago
proxy.golang.org: github.com/liascript/liascript
  • Versions: 17
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
npmjs.org: @liascript/library

An extended Markdown interpreter for the creation of interactive online courses.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 4.0%
Forks count: 4.6%
Average: 21.6%
Dependent repos count: 31.9%
Dependent packages count: 45.8%
Maintainers (1)
Last synced: 6 months ago

Dependencies

package-lock.json npm
  • 888 dependencies
package.json npm
  • @convergencelabs/ace-collab-ext ^0.6.0 development
  • @parcel/packager-raw-url ^2.8.3 development
  • @parcel/reporter-bundle-analyzer ^2.8.3 development
  • @parcel/transformer-elm ^2.8.3 development
  • @parcel/transformer-image ^2.8.3 development
  • @parcel/transformer-inline-string ^2.8.3 development
  • @parcel/transformer-sass ^2.8.3 development
  • @parcel/transformer-webmanifest ^2.8.3 development
  • @typescript-eslint/eslint-plugin ^4.33.0 development
  • @typescript-eslint/parser ^4.33.0 development
  • @webcomponents/webcomponentsjs ^2.8.0 development
  • ace-builds ^1.27.0 development
  • caniuse-lite ^1.0.30001538 development
  • crypto-browserify ^3.12.0 development
  • dexie ^2.0.4 development
  • easy-speech ^2.1.1 development
  • echarts ^5.4.3 development
  • echarts-wordcloud ^2.0.0 development
  • elm ^0.19.1-5 development
  • elm-hot ^1.1.6 development
  • elm-review ^2.10.2 development
  • elm-test ^0.19.1-revision6 development
  • eslint ^7.32.0 development
  • katex ^0.16.8 development
  • logger.ts ^1.0.5 development
  • node-elm-compiler ^5.0.6 development
  • parcel ^2.8.3 development
  • parcel-reporter-static-files-copy ^1.5.0 development
  • pdfast ^0.2.0 development
  • process ^0.11.10 development
  • resize-observer-polyfill ^1.5.1 development
  • sass ^1.68.0 development
  • tsc ^2.0.4 development
  • typescript ^4.9.5 development
  • uint8-to-base64 ^0.2.0 development
  • util ^0.12.5 development
  • workbox-cli ^6.6.0 development
  • y-utility ^0.1.3 development
  • yjs ^13.6.6 development
  • pako ^2.1.0
src/assets/package-lock.json npm
  • 470 dependencies
src/assets/package.json npm
  • async ^3.2.2
  • gulp ^4.0.2
  • gulp-consolidate ^0.2.0
  • gulp-iconfont ^11.0.0
  • gulp-rename ^2.0.0
  • lodash ^4.17.21