Skip to content

Latest commit

 

History

History
906 lines (635 loc) · 23.6 KB

D-LiaScript_Tutorial.md

File metadata and controls

906 lines (635 loc) · 23.6 KB

LiaScript

Entwicklung von OER mit LiaScript und GitHub

Allgemeine Ziele:


Zeitplan

  • Vorstellung: Infos zu uns, Forschungsziele, Projekte, etc.

  • Vorstellung/ Erwartungen der Teilnehmer

    • Was erwarten Sie von der heutigen Veranstaltung, Welchen Hintergrund habe Sie?
    • Eintragung in ein Etherpad Dokument
    • Kurze Besprechung der Inhalte und der Arbeitsmethodik bei dessen Erstellung
    • synchrones kollaboratives Arbeiten --> Herausforderung Synchronisation
  • Motivation OER:

    • Ziele, Zentrale Aussage zu den Anforderungen: Verteiltheit der Editierung
    • (Lösung mit Git), einfache Editierung interaktiver Inhalte (Lösung mit LiaScript)
    • Ableitung des folgenden Ablaufes - Phase 1: Github EInführung, Phase 2: LiaScript
  • Phase 1 - Einführung GitHub

    • Mechanismen zur Synchronisation von Dokumenten, Abläufe in GitHub
  • Übung Github

    • Alle Teilnehmer arbeiten an einer README.md Datei eines Projektes
    • Erklärung der Unterschiede zum Etherpad
    • Explizite Formatierung mit Markdown, Nachvollziehbarkeit der Veränderungen,
    • Einbettung in Entwicklungsumgebung

Quellen

Git & GitHub

Quellen:

Fachsprache & Fachchinesisch

 {{1}}
  • git

  • GitHub

  • repository (repo)

    • das eigentliche Projekt

    • enthält alle Versionen und Entwicklungs-Zweige (branches)

      {{4}}

  • fork^*^

    • Kopie eines fremden Repositories
    • Ziel: eigene Weiterentwicklung oder Zuarbeit

    GitHub
    
    .----------------------.        fork        .---------------------.
    |                      |------------------->|                     |
    |   Main Repository    |                    | Personal Repository |
    |                      |<-------------------|                     |
    '----------------------'    pull request    '---------------------'
    

    {{5}}

  • clone

    • lokale Kopie eines Repositories

    GitHub
    
    .----------------------.        fork        .---------------------.
    |                      +------------------->|                     |
    |   Main Repository    |                    | Personal Repository |
    |                      |<-------------------+                     |
    '----------------------'    pull request    '--+------------------'
                                                   | clone          ^
    ---------------------------------------------- |           push |
    Local Machine                                  | pull           |
                                                   v                |
    .---------------------------------------------------------------+-.
    |                                                                 |
    |                            local files                          |
    |                                                                 |
    '-----------------------------------------------------------------'
    

    {{6}}

  • pull

    • Heruntladen/herunterziehen der Versionen aus einem entfernten repo

    • (meist auf GitHub)

      {{7}}

  • push

    • Hochladen der lokalen Versionen zu einem entfernten repo

    • (meinst auf GitHub)

      {{8}}

  • pull request^*^

    • Höfliche Anfrage der Übernahme von Änderungen

      {{9}}

  • branch

    • Verschiedene Entwicklungs-Zweige

    • Namensgebung: (beliebig aber ...)

      • main: Projekt (Nur funktionierende Versionen)
      • develop: Hauptentwicklungszweig
      • test: Test-Zweig für unsere Arbeit nicht nötig
      • feat/Irgendwas: kleine Erweiterungen
    GitHub
    
    .----------------------.        fork        .---------------------.
    |                      +------------------->|                     |
    |   Main Repository    |                    | Personal Repository |
    |                      |<-------------------+                     |
    '----------------------'    pull request    '--+------------------'
                                                   | clone          ^
    ---------------------------------------------- |           push |
    Local Machine                                  | pull           |
                                                   v                |
    .---------------------------------------------------------------+-.
    |                                                                 |
    |  (main) *---*---*-----*----------------------------*-----*      |
    |              \       /                            /             |
    |  (develop)    o-----o--------o-----o--------o----o              |
    |                      \      /       \      /                    |
    |                       #----#         #----#                     |
    |                      (feat-1)       (feat-2)                    |
    '-----------------------------------------------------------------'
    

    {{10}}

  • commit

    • Hinzufügen einer neuen Version

      {{11}}

  • checkout

    • "auschecken" oder springen zu einem Zweiges oder einer Version

      {{12}}

  • merge

    • Übernehmen der Änderungen aus einem branch in einen anderen

Setup Entwicklungsumgebung

  1. Download und Installation von Atom: https://atom.io

  2. Installation von PlugIns:


  1. Download und Installation von VSCode: https://code.visualstudio.com/Download

  2. Installation von PlugIns:

    {{1}}

Wichtige Tastenkombination:

  • Fuzzy Suche: Ctrl + Shift + P

  • Speichern: Shift + S

  • LiaScript-Preview: Alt + L

  • Verschieben von Zeilen: Ctrl + ᐃ/ᐁ

  • LiaScript:

    • Snippets: l i a
    • Programmiersprachen: h i l i
    • Stimmen: v o i c e

Teilen von Kursen via ...

https://LiaScript.github.io/course/?YOUR_COURSE_URL

{{1}}

Markdown Tutorial

Philosophy

Markdown is intended to be as easy-to-read and easy-to-write as is feasible.

Readability, however, is emphasized above all else. A Markdown-formatted document should be publishable as-is, as plain text, without looking like it’s been marked up with tags or formatting instructions. While Markdown’s syntax has been influenced by several existing text-to-HTML filters — including Setext, atx, Textile, reStructuredText, Grutatext, and EtText — the single biggest source of inspiration for Markdown’s syntax is the format of plain text email.

To this end, Markdown’s syntax is comprised entirely of punctuation characters, which punctuation characters have been carefully chosen so as to look like what they mean. E.g., asterisks around a word actually look like *emphasis*. Markdown lists look like, well, lists. Even blockquotes look like quoted passages of text, assuming you’ve ever used email.

-- by John Gruber

Dialekte

Grundlagen

Blöcke werden "optisch" durch Leerzeilen voneinander getrennt

1. Absätze und Formatierungen

Dies ist ein Satz. alö df asdjöflj asöldkfj asöjdf aslkfö Dies ist ein zweiter Satz.

kursiv -- auch kursiv

Fett -- auch fett

Sehr wichtig

Durchgestrichen

Durchgestrichen

Dies ist ein Text ~~~Durchgestrichen~~~ ...

~~Durchgestrichen~~


LiaScript

x^2^

2. Listen

Unordered Lists

  • Element 1


    Dies ist ein zweiter Absatz.

    • Unterabschnitt 1
    • Unterabschnitt 2
  • Element 2

ordered lists

  1. Dies ist Wichtig

    Auch das gehört dazu

  2. Kaffee

Als zweites kommen die folgenden Zutaten:

  1. Tee
  2. Zucker

3. Blockquotes

“Live as if you were to die tomorrow. Learn as if you were to live forever.”

-- Mahatma Gandhi

4. Tabellen

Header 2 rechts
Element 1 element2 code
12 1333 $ f(x) = \frac{1}{x^2} $

5. Verweise

https://LiaScript.github.io

LiaScript-Doku

LiaScript-Tutorial

6. Bilder

Kürbiskopf

Nokia

7. Trennlinien

Teil A


Teil B

8. Code

# Titel

## Titel 2

``` JavaScript
// Drucke Hallo Welt
console.log("Hallo Welt")
```

9. HTML

Übersicht über alle HTML-Tags: https://www.w3schools.com/TAgs/default.asp

<details> & <summary>
**Honest Textbook ads (click to enlarge)**

!?Ehrliche Bildung

<lia-keep>

LiaScript Tutorial

Multimedia

Verweis -> !Bild --> ?Audio --> !?Video --> ??Unbekannt --> Galerie

?Beethoven !?Ehrliche Bildung ??Simulation ??3D

Bilder und Texte

Nokia Lorem aösdfjafd saölsjdf aösdfj aslkfdj aösdj asödfjasdj asdfa affs asff asf asf

Formatierung

Blöcke und einzelne Elemente können unterschiedlich formatiert werden!

Merke: Kommentare vor dem Block und hinter dem Element.

Siehe auch: W3Schools

Nützliche Stile
  • Schriftfarbe: color: red oder color: #FF0000 oder color: rgb(1,0,0)
  • Schriftgröße: font-size: 4rem oder font-size: 3cm oder font-size: 20px
  • Maximale Höhe & Breite: max-height: 300px max-widht: 300px
  • Minimale Höhe & Breite: min-height: 300px min-widht: 300px
  • Tatsächliche Höhe & Breite: width: 300px oder width: 50% oder ẁidth: 50vw
  • Ränder: border: 2px solid black oder border: 2px dashed black
  • Abstände: padding: 3px oder padding-top: .. oder padding-left oder margin: 3px oder margin-top: .. oder margin-left
Kontrolle der Übersetzung

Mithilfe von class="translate" oder class="notranslate" können Element markiert werden, die übersetzt bzw. nicht übersetzt werden sollen.


Beispiel:

<!-- class="notranslate" -->
Alle Code-Elemente werden automatisch mit der Klasse `notranslate` markiert.

<!-- class="translate" -->
``` javascript
console.log("Hello World")
```

Metainformationen

Präsentationsformate

--{{0}}--

Ich bin ein Kommentar, der laut vorgelesen werden kann.

--{{1}}--

Es ist möglich, Kommentare mit Animation zu verbinden.

  {{1}}

?audio

--{{2}}--

Blöcke können auch wieder verschwinden.

 {{2-3}}
Tabellen sind cool
rechts zentriert links
:-) $ f(x) = x^2 $ <-->
--{{3 Russian Female}}--

Первоначально создан в 2004 году Джоном Грубером (англ. John Gruber) и Аароном Шварцем. Многие идеи языка были позаимствованы из существующих соглашений по разметке текста в электронных письмах...

{{3}}

Oder die Sprache kann geändert werden. Tippe "voice" um eine Auswahl der unterstützen Sprachen zu erhalten

Inline Animationen

Hallo {2}{Welt, } dies ein Absatz mit internen Animationen {1-2}{die auch wieder verschwinden können}.

Sprachen Lernen |> oder !>

Hallo {|>}{Welt, } dies ein Absatz mit internen Animationen {1-2}{die auch wieder verschwinden können}.

Versteckte Kommentare

--{{1}}--

Dieser Text ist besonders wichtiges Zitat.

  {{1}}

“Live as if you were to die tomorrow. Learn as if you were to live forever.”

-- Mahatma Gandhi

Formeln

Nutzung von KaTeX

Funktionsübersich: https://katex.org/docs/supported.html

  1. Inline Formeln: $ ... $ --> $ f(a,b,c) = (a^2+b^2+c^2)^3 $

  2. Block Formeln: $$ ... $$

    $$ \sum_{i=1}^\infty\frac{1}{n^2} =\frac{\pi^2}{6} $$

Interaktive Formeln

Zentriert nach =

\begin{split}
  a &=b+c \\
    &=e+f \\
    &=g+h+i+j\\
a+b+&c+d=12\\
\end{split}

@formula

Hinzufügen einer Nummer

\tag{33}
\begin{equation}
 a =b+c
\end{equation}

@formula

Definition einer Matrix und Nutzung von HTML.

\begin{Bmatrix}
   a & b & c & d & e & f \\
   g & h & i & j & k & l \\
   m & n & o & p & q & r \\
   s & t & u & v & w & x \\
   y & z & ä & ö & ü &
   \htmlStyle{color: red; font-size: 26px}{ß}
\end{Bmatrix}
\\
\href{https://katex.org/docs/supported.html#html}{\KaTeX HTML support}
\\
\includegraphics[height=0.8em, totalheight=0.9em, width=0.9em, alt=KA logo]{https://katex.org/img/khan-academy.png}

@formula

Quizzes

Wie heißt dieses Projekt?

[[LiaScript]]

Was ist LiaScript?

[[X]] LMS [[X]] Eine Sprache? [[ ]] Ein Buch [[?]] Denk nach [[?]] Antwort B


Es ist auf jeden Fall B.

!?Ehrliche Bildung


Was ist LiaScript?

[(X)] LMS [(X)] Eine Sprache? [( )] Ein Buch

Umfragen

Aufgaben/Tasks

Bemerkung zu Versionen

Klassenräume

Zeichnen mit ASCII-Art

Diagramme

                                Multiline
1.9 |    DOTS
    |                 ***
  y |               *     *
  - | r r r r r r r*r r r r*r r r r r r r
  a |             *         *
  x |            *           *
  i | B B B B B * B B B B B B * B B B B B
  s |         *                 *
    | *  * *                       * *  *
 -1 +------------------------------------
    0              x-axis               1

Code als Bild

Dokumentation: https://github.com/andre-dietrich/elm-svgbob

  .-----.
  |.---.|
  ||   ||  device
  |.___.|  loads
  | ooo |----+--------------------------+--------------------------.
  | ooo |    |                          |                          |
  | ooo |    |                          |                          |
  '_____'    |                          |                          |
             |                          |                          |
             v                          v                          v
   +-------------------+  .---------------------------.  +-------------------+
   | Loadable module C |  |     Loadable module A     |  | Loadable module B |
   +---------+---------+  |---------------------------|  |   (instrumented)  |
             |            |         .-----.           |  +----------+--------+
             '--------------------> | A.o |           |             |
                 calls    |         '-----'           |             |
                          |    .------------------.   |             |
                          |   / A.instrumented.o / <----------------'
                          |  '------------------'     |    calls
                          '---------------------------'
  ┌─┬┐  ╔═╦╗  ╓─╥╖  ╒═╤╕
  │ ││  ║ ║║  ║ ║║  │ ││
  ├─┼┤  ╠═╬╣  ╟─╫╢  ╞═╪╡
  └─┴┘  ╚═╩╝  ╙─╨╜  ╘═╧╛
  ┌───────────────────┐
  │  ╔═══╗ Some Text  │▒
  │  ╚═╦═╝ in the box │▒
  ╞═╤══╩══╤═══════════╡▒
  │ ├──┬──┤           │▒
  │ └──┴──┘           │▒
  └───────────────────┘▒
   ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

Weiteres

Spaß mit Tabellen

Erweiterungen

Wo finde ich Erweiterungen

https://github.com/topics/liascript-template

Visit W3Schools!

Wie erstelle ich eigene Erweiterungen

Export zu anderen Formaten

  1. Download von NodeJS: https://nodejs.org/de/download/

  2. Download des LiaScript-Exporters: https://www.npmjs.com/package/@liascript/exporter

Ein Ausblick: JavaScript

Das Quadrat von

<script output="x" input="range" value="1" min="0" max="1000" step="0.1"> @input </script>

ist gleich ==>

<script> @input(`x`) * @input(`x`)</script>

Tabellen und Code

Pos: <script run-once default="0" output="result" input="range" value="2" min="0" max="25" step="0.1" > @input </script> and amplitude:

<script run-once default="0" output="amp" input="range" value="1" min="0" max="2" step="0.1" > @input </script>
Header 1 <script>@input(result)</script>
1 @sin(1)
2 @sin(2)
3 @sin(3)
4 @sin(4)
5 @sin(5)
6 @sin(6)
7 @sin(7)
8 @sin(8)
9 @sin(9)

Diagramme

The first value defines some kind of range:

<script input="range" value="2" output="range">@input</script>

, while the second can be interpreted as range

<script input="range" value="50" output="amplitude">@input</script>.

You can double-click on any gray element to inspect and edit its javascript code.

<script run-once style="display: inline-block; width: 100%"> function func(x) { x /= 10; return Math.sin(x) * Math.cos(x * @input(`range`) + 1) * Math.sin(x * 3 + 2) * @input(`amplitude`); } function generateData() { let data = []; for (let i = -200; i <= 200; i += 0.1) { data.push([i, func(i)]); } return data; } let option = { animation: false, grid: { top: 40, left: 50, right: 40, bottom: 50 }, xAxis: { name: 'x', minorTick: { show: true }, splitLine: { lineStyle: { color: '#999' } }, minorSplitLine: { show: true, lineStyle: { color: '#ddd' } } }, yAxis: { name: 'y', min: -100, max: 100, minorTick: { show: true }, splitLine: { lineStyle: { color: '#999' } }, minorSplitLine: { show: true, lineStyle: { color: '#ddd' } } }, dataZoom: [{ show: true, type: 'inside', filterMode: 'none', xAxisIndex: [0], startValue: -20, endValue: 20 }, { show: true, type: 'inside', filterMode: 'none', yAxisIndex: [0], startValue: -20, endValue: 20 }], series: [ { type: 'line', showSymbol: false, clip: true, data: generateData() } ] } "HTML: " </script>