Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

OER-Hackathon LiaScript

hackthon


TU Bergakademie Freiberg

André Dietrich & Sebastian Zug

LiaScript: Hello World

--{{0}}--

!? Hello, my name is LiaScript, I am a Markdown-based language that has been specially developed to create educational materials. The advantage of Markdown is that it is already widely used, easy to write and read, and supported by many platforms. The biggest drawback, however, is that it is @burn(static as hell) and offers no interactivity.

 {{1-2}}
--{{1}}--

!? So my creators set out to rethink Markdown from the ground up...

?Giorgio Moroder

... Once you free your mind about a concept of Harmony and of music being "correct" you can do whatever you want ...

-- Giorgio Moroder (inventor of disco music)

--{{2}}--

!? Actually, tables in Markdown are simple to create and, as mentioned, are quite @burn(static). However, a table can also represent a dataset that strives for its ideal visualization.

  {{2}}
Animal Weight in kg Lifespan (years) Mitogen
Mouse 0.028 02 95
Flying Squirrel 0.085 15 50
Brown Bat 0.020 30 10
Sheep 90 12 95
Human 68 70 10
--{{3}}--

!? Another tabular structure can produce a different visualization that can be fine-tuned by the creator. In total, I support 10 different types of visualizations.

  {{3}}
Seattle Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
0 40.7 41.5 43.6 46.6 51.4 56.0 60.5 61.2 57.0 50.1 44.1 39.6
2 40.2 40.7 42.7 45.3 50.0 54.4 58.5 59.2 55.4 49.2 43.5 39.3
4 39.7 40.0 41.9 44.4 48.9 53.2 57.0 57.7 54.2 48.6 43.1 38.9
6 39.6 39.5 41.3 44.2 49.5 54.2 57.8 57.4 53.6 48.2 42.8 38.7
8 39.6 39.9 42.9 47.1 52.7 57.3 61.3 61.1 56.7 49.5 43.1 38.7
10 41.3 42.7 46.4 50.7 56.4 60.9 65.2 65.4 60.9 52.8 45.5 40.4
12 43.8 46.0 49.5 53.8 59.6 64.3 69.4 69.8 65.1 56.0 47.8 42.6
14 45.1 47.7 51.3 55.9 61.9 66.9 72.6 73.2 67.7 57.8 48.8 43.6
16 44.5 47.5 51.4 55.9 62.3 67.5 73.9 74.3 68.2 57.4 47.8 42.6
18 42.6 44.7 48.7 53.8 60.3 65.9 72.3 72.2 64.6 53.9 46.0 41.2
20 42.0 43.3 46.4 50.2 56.0 61.4 66.9 66.6 60.7 52.3 45.2 40.7
22 41.4 42.5 45.0 48.3 53.5 58.2 63.2 63.5 58.7 51.1 44.5 40.1
--{{4}}--

!? What Markdown has always lacked was the embedding of multimedia content ...

--{{5}}--

!? I support audio content ...

 {{5-6}}

?a horse

--{{6}}--

!? I can handle video as well, and of course, I work on feature phones even if they are offline.

 {{6-7}}

!?LiaScript on Nokia

--{{7}}--

!? I can also try to embed other types of content that do not fall into either of the two categories

  {{7}}

??Esther’s scroll in a cover

--{{8}}--

!? And much, much more... We will soon show you how everything works.

  {{8}}
X: 1
M: 4/4
L: 1/8
K: Emin
|:D2|"Em"EBBA B2 EB|~B2 AB dBAG|"D"FDAD BDAD|FDAD dAFD|
"Em"EBBA B2 EB|B2 AB defg|"D"afe^c dBAF|"Em"DEFD E2:|

@ABCJS.eval

--{{9}}--

!? You might have noticed that this document is being used like a PowerPoint presentation. However, our intention was to utilize LiaScript in various contexts. With LiaScript, you can create presentations, enable self-study through browser-based text-to-speech output, or read the content as a simple yet interactive textbook, without animations.

Our Goal

Improve the Exporter

!?Exporter

  1. localhost & globalhost mit besserem UI/UX
  2. Konvertierung in ausführbare Datei (Winow.exe, Linux.out, Mac.wasAuchImmer)
  3. Addon ... Bibliothek, die in verschiedenen Editoren als Plugin eingebettet werden kann

Programming

WebSerial & MicroPython

from microbit import *

# Display a scrolling message
display.scroll("Hello edrys!")

# Read the temperature
temp = temperature()
print("Temperature:", temp)

# Display a heart on the LED matrix
display.show(Image.HEART)

@WebSerial

<script input="submit" default="Open Camera"> const video = document.querySelector("#videoElement") if (video.srcObject === null) { if (navigator.mediaDevices.getUserMedia) { navigator.mediaDevices.getUserMedia({ video: true }) .then(function (stream) { video.srcObject = stream video.style.display = "block" send.lia("Close Camera") }) .catch(function (error) { console.log("Something went wrong!") send.lia("Camera Problem") }); send.output("Waiting for Camera") "LIA: wait" } else { "No Camera connected" } } else { const tracks = video.srcObject.getTracks() // Stop all tracks tracks.forEach(track => track.stop()) video.style.display = "none" video.srcObject = null "Open Camera" } </script>

Interactive Geometry

Source: https://github.com/LiaTemplates/GGBScript

A GGBScript JavaScript interpreter based on JavaScript.

import: https://raw.githubusercontent.com/LiaTemplates/GGBScript/refs/heads/main/README.md

Titel("Punkt A & B");

// Definiere einen Punkt
const A = Punkt(1, 2, "A");
const B = Punkt([4, 6], "B");

Interactive Geometry 2

A = (<script input="range" min="0" max="100" value="50" step="1" default="50" output="A0"> @input </script>,

<script input="range" min="-100" max="100" value="50" step="1" default="50" output="A1"> @input </script>

)

B = (<script input="range" min="0" max="100" value="96" step="1" default="96" output="B0"> @input </script>,

<script input="range" min="-100" max="100" value="27" step="1" default="27" output="B1"> @input </script>

)

C = (<script input="range" min="0" max="100" value="20" step="1" default="20" output="C0"> @input </script>,

<script input="range" min="-100" max="100" value="20" step="1" default="20" output="C1"> @input </script>

)

Rotation:

<script input="range" min="0" max="360" value="0" step="1" default="0" output="rotation"> @input </script>°
UserAxisLimits(0,150,0,60);

const A = Punkt(@input(`A0`), @input(`A1`), "A");
const B = Punkt(@input(`B0`), @input(`B1`), "B");
const C = Punkt(@input(`C0`), @input(`C1`), "C");

const P = Polygon("A", "B", "C");

Farbe(P, "red");

const M = Mittelpunkt(P);

const P2 = Rotation(P, M, @input(`rotation`));

Farbe(P2, "blue");

Kreis(M, 16, "Kreis");

Classrooms ?