# SimonUp Syntax-Spezifikation
SimonUp ist der Entwurf für eine moderne, fluss- und blockorientierte Auszeichnungssprache (Dateiendung: `.up`). Sie wird entwickelt, um den Schreibfluss zu maximieren, die Fingerakrobatik auf der Tastatur zu minimieren und die Schwachstellen von traditionellem Markdown elegant zu lösen.
Du siehst hier meinen Entwurf V1.2b vor dir.
---
## Philosophie: Fluss vs. Block
SimonUp trennt strikt zwischen zwei Logiken:
1. **Fluss-Formatierungen (Inline):** Werden mit *einem* einzelnen Zeichen (oder einer Verdopplung) geöffnet und geschlossen. Sie erlauben Formatierungen mitten im Satz, ohne eine neue Zeile zu erzwingen, und funktionieren auch innerhalb von Blöcken.
2. **Block-Formatierungen (Strukturell):** Beginnen *immer* (mit Ausnahme der Listen und horizontalen Linie) am Zeilenanfang mit `&` plus einem Typ-Kürzel und enden mit einem einzelnen `/&` auf einer eigenen, neuen Zeile.
---
## Absätze & Zeilenumbrüche
SimonUp eliminiert kryptische oder unsichtbare Zeichen am Zeilenende. Der Parser interpretiert die natürliche Nutzung der `Enter`-Taste direkt und intuitiv:
* **1x Enter (`
`)** → Erzeugt einen einfachen Zeilenumbruch (Soft Break).
* **2x Enter (`
`)** → Erzeugt eine Leerzeile und startet einen neuen Absatz.
**Beispiel:**
```text
Das ist die erste Zeile.
Diese Zeile steht direkt darunter.
Hier beginnt ein völlig neuer Absatz.
```
---
## 1. Fluss-Formatierungen (Inline)
| Syntax | Ergebnis | Besonderheit / Usecase |
| :--- | :--- | :--- |
| `1#Text` bis `6#Text` | **Überschrift (H1 bis H6)** | Überschriften. |
| `1x#Text` bis `6x#Text` | **Überschrift (H1 bis H6)** | Überschriften mit automatischer Nummerierung. |
| `1-#Text` bis `6-#Text` | **Überschrift (H1 bis H6)** | Diese Überschriften werden nicht im TOC aufgenommen. |
| `/#` | **Optionaler Abschluss der Überschrift** | Braucht es nur, wenn danach in der gleichen Zeile normaler Text kommen soll |
| `*Text/*` | **Medium** | Halbfette Betonung (`font-weight: 500`). |
| `**Text/**` | **Fett (Bold)** | Starke Betonung (`font-weight: 700`) |
| `%Text/%` | *Kursiv* | Leichte Betonung / Zitate im Text. |
| `_Text/_` | Unterstrichen | Sauberer, dokumentenähnlicher Textstil. |
| `~Text/~` | ~~Durchgestrichen~~ | Korrekturen oder erledigte To-Dos. |
| `=Text/=` | Highlight | Textmarker-Effekt für wichtige Schlüsselwörter. |
| `^Text/^` | Hochgestellt | Mathematische Notation oder Indizes. |
| `°Text/°` | Tiefgestellt | Chemische Formeln. |
| `` `Text/` `` | `Inline-Code` | Technische Begriffe im Fliesstext. |
| `//` | *Alles schliessen* | Schliesst alle offenen Fluss-Formatierungen. |
| `\Zeichen` | *Escape* | Hebt die Bedeutung von Steuerzeichen auf (z. B. `\#`). |
### Ausrichtung im Fluss
Die Positionierung und Ausrichtung von Fliesstext wird einheitlich über das Basiszeichen `>` gesteuert, gefolgt von einem Richtungskürzel. Das schliessende Zeichen ist immer ein `/>`. Lässt sich auch für Text in Tabellen anwenden, darum ist es eine Fluss- und keine Block-Formatierung.
* `>l Links bündig />` → Richtet den Text explizit **linksbündig** (*left*) aus.
* `>r Rechts bündig />` → Richtet den Text **rechtsbündig** (*right*) aus.
* `>c Zentriert />` → Richtet den Text **zentriert** (*center*) aus.
* `>j Blocksatz />` → Richtet den Text im **Blocksatz** (*justified*) aus.
---
## 2. Block-Formatierungen
### Horizontale Linie
```text
___
```
*Ergebnis: Horizontale Linie.*
### Listen & Strukturen
`-` Erster Listenpunkt
`-` Zweiter Listenpunkt
*Ergebnis: Unsortierte Aufzählung (Bullet Points).*
`1.` Erster nummerierter Punkt
`2.` Zweiter nummerierter Punkt
*Ergebnis: Nummerierte Liste (1., 2., ...).*
### Kompakte Block-Übersicht (`&>`, `&>>`, `&c`, `&q`, `&b`, `&f` , `&i`, `&toc`)
| Block-Typ | Kurzbeschreibung & Syntax-Beispiel |
| --- | --- |
| **Einrückung (`&>`)** | `&>`
Rückt den umschlossenen Text **1x ein** (*tab*).
`/&` |
| **Doppelte Einrückung (`&>>`)** | `&>>`
Rückt den umschlossenen Text **2x ein** (*double tab*).
`/&` |
| **Code (`&c`)** | `&c python`
`print("Fluss-Formatierungen werden hier ignoriert")`
`&` |
| **Zitat (`&q`)** | `&q`
„Dies ist ein eigenständiger **Zitatblock** (Blockquote).“
`/&` |
| **Bibeltext (`&b`)** | `&b`
„Ein spezialisierter Textblock für Bibelstellen.“
`/&` |
| **Spoiler / Fold (`&f`)** | `&f Klickbarer Titel des Spoilers`
Hier steht der standardmässig versteckte Inhalt (HTML `
`/&` |
| **Infobox (`&i`)** | `&i Wichtiger Hinweis #ff6347` oder `&i Wichtiger Hinweis tomato`
Erzeugt eine farbige Infobox mit Titel. Akzeptiert HTML-Farbnamen und Hex-Codes.
`/&` |
| **TOC (`&toc`)** | `&toc Titel`
Einleitende Worte.
`/&` |
### Tabellen & Galerien (`&t`)
Tabellen definieren ihre Spaltenstruktur flexibel direkt in der Startzeile:
* **Automatisch:** `3x` teilt den Platz in 3 gleich grosse Spalten auf.
* **Prozentual:** `20% 80%` setzt relative Breiten.
* **Pixelgenau:** `150px 350px` erzwingt feste Spaltenbreiten.
* **Mischbetrieb:** `20% 200px 10%` erlaubt das nahtlose Kombinieren von Prozent- und Pixelwerten für maximale Flexibilität.
Jede Spalte endet mit einem |
```text
&t 30% 40% 30%
**Name** | **Beruf** | **Stadt** |
Simon | Entwickler | Zürich |
/&
```
#### Multi-line Zellen & Zeilenumbrüche
Um den Schreibfluss bei viel Text zu erhalten, können Zellen über mehrere Zeilen fliessen. Der Parser sammelt allen Text (inklusive normaler Zeilenumbrüche), bis ein Spaltenrenner `|` die nächste Zelle einleitet.
```text
&t 300px 500px
**Projekt** | **Beschreibung** |
SimonUp | Eine moderne Auszeichnungssprache.
Sie trennt strikt zwischen Fluss und Block
und erlaubt echte Absätze in Tabellen.|
Aktiv | Läuft.|
/&
```
---
## 3. Links, Medien & Fussnoten
### Links & Medien
* `[Codeberg](URL)` → Standard-Link (selber Tab)
* `[Codeberg]{URL}` → Komfort-Link (neuer Tab / `target="_blank"`)
* `` → Standard-Bild
* `` → Bild mit definierter Breite (Höhe skaliert automatisch)
### Bildergalerien (Nutzt die Multi-line-Tabellen-Logik)
Da Zellen durch das schliessende `|` flexibel über mehrere Zeilen fliessen können, lassen sich Bilder und ihre dazugehörigen Beschreibungen nahtlos in derselben Zelle kombinieren. Mit `>c ... />` werden die Bildunterschriften sauber unter den Bildern zentriert:
```text
&t 3x

>c Abbildung 1: Alpen /> |

>c Abbildung 2: Italien /> |

>c Abbildung 3: Schwarzwald /> |
/&
```
(Hinweis: Der Zeilenumbruch zwischen dem Bild und der Beschreibung wird vom Parser als einfaches `
` gerendert, sodass der Text perfekt unter dem Bild steht, während das | am Ende die gesamte Zelle abschliesst.)
### Fussnoten
* `^1[Hier steht der Fussnotentext]^` → Manuelle Nummerierung (Fussnote 1)
* `^x[Hier steht der Fussnotentext]^` → Automatische, fortlaufende Nummerierung durch SimonUp
---
## Demo, Playground, Spielwiese
Unter https://simonpipe.codeberg.page/SimonUp/ entsteht ein Playground (eine Spielwiese), um SimonUp auszuprobieren.
Aber Achtung, der Parser ist noch sehr unausgereift und bedarf noch viel Liebe.
---
## Namensherkunft: Warum „SimonUp“?
Der Name **SimonUp** ist ein durchdachtes (und augenzwinkerndes) dreifaches Wortspiel:
1. **Das Upgrade:** Das „Up“ steht für den evolutionären Schritt nach vorn (*Upgrade*, *SpeedUp*). Es symbolisiert eine Sprache, die den Schreibfluss beschleunigt und modernisiert.
2. **Der logische Gegensatz:** Es ist die direkte, optimierte Antwort auf traditionelles *Markdown* – SimonUp zieht deine Dokumente nach oben, statt sie nach unten zu drücken.
3. **Der Insider-Witz:** Wer sagt eigentlich, dass eine Auszeichnungssprache immer nach dem deutschen Vornamen „Mark“ (*Markdown*) benannt sein muss?