SimonUp/readme.md
2026-07-06 23:01:09 +02:00

173 lines
No EOL
7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 Finger-Akrobatik auf der Tastatur zu minimieren und die Schwachstellen von traditionellem Markdown elegant zu lösen.
Du siehst hier quasi meinen Entwurf 1.0 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* 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 (`<br>`)** → Erzeugt einen einfachen Zeilenumbruch (Soft Break).
* **2x Enter (`<p>`)** → 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 |
| :--- | :--- | :--- |
| `#Text#` bis `######Text######` | **Überschrift (H1 bis H6)** | Text kann direkt in der Zeile weiterfliessen. |
| `*Text*` | **Medium** | Halbfette Betonung (`font-weight: 500`). |
| `**Text**` | **Fett (Bold)** | Starke Betonung (`font-weight: 700`) |
| `/Text/` | *Kursiv* | Leichte Betonung / Zitate im Text. |
| `_Text_` | <u>Unterstrichen</u> | Sauberer, dokumentenähnlicher Textstil. |
| `~Text~` | ~~Durchgestrichen~~ | Korrekturen oder erledigte To-Dos. |
| `=Text=` | <mark>Highlight</mark> | Textmarker-Effekt für wichtige Schlüsselwörter. |
| `^Text^` | <sup>Hochgestellt</sup> | Mathematische Notation oder Indizes. |
| `°Text°` | <sub>Tiefgestellt</sub> | Chemische Formeln (liegt auf derselben Taste wie `^`!). |
| `` `Text` `` | `Inline-Code` | Technische Begriffe im Fließtext. |
| `\Zeichen` | *Escape* | Hebt die Bedeutung von Steuerzeichen auf (z. B. `\#`). |
### Ausrichtung & Einrückung im Fluss
Die Positionierung und Ausrichtung von Fließtext wird einheitlich über das Basiszeichen `>` gesteuert, gefolgt von einem Richtungskürzel. Das schließende Zeichen ist immer ein einfaches `>`.
* `>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.
* `>t Eingerückt>` → Rückt den umschlossenen Text **1x ein** (*tab*).
* `>tt Doppelt eingerückt>` → Rückt den umschlossenen Text **2x ein** (*double tab*).
---
## 2. Block-Formatierungen
### Horizontale Linie
```text
___
```
*Ergebnis: Horizontale Linie. Da dieser Block keinen Inhalt umschließt, wird er als Ausnahme nicht mit einem & geschlossen.*
### Listen & Strukturen (`&-`, `&+`)
```text
&-
Erster Listenpunkt
Zweiter Listenpunkt
&
```
*Ergebnis: Unsortierte Aufzählung (Bullet Points).*
```text
&+
Erster nummerierter Punkt
Zweiter nummerierter Punkt
&
```
*Ergebnis: Nummerierte Liste (1., 2., ...).*
### Kompakte Block-Übersicht (`&c`, `&q`, `&b`, `&f`)
| Block-Typ | Kurzbeschreibung & Syntax-Beispiel |
| --- | --- |
| **Code (`&c`)** | `&c python` <br> `print("Fluss-Formatierungen werden hier ignoriert")` <br> `&` |
| **Zitat (`&q`)** | `&q` <br> „Dies ist ein eigenständiger **Zitatblock** (Blockquote).“ <br> `&` |
| **Bibeltext (`&b`)** | `&b` <br> „Ein spezialisierter Textblock für Bibelstellen.“ <br> `&` |
| **Spoiler / Fold (`&f`)** | `&f Klickbarer Titel des Spoilers` <br> Hier steht der standardmäßig versteckte Inhalt (HTML `<details>`). <br> `&` |
| **Infobox (`&i`)** | `&i Wichtiger Hinweis tomato oder &i Wichtiger Hinweis #ff6347` <br> Erzeugt eine farbige Infobox mit Titel. Akzeptiert HTML-Farbnamen und Hex-Codes. <br> & |
### Tabellen & Galerien (`&t`)
Tabellen definieren ihre Spaltenstruktur flexibel direkt in der Startzeile:
* **Automatisch:** `3x` teilt den Platz in 3 gleich große 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 3x
**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 fließen. Der Parser sammelt allen Text (inklusive normaler Zeilenumbrüche), bis ein Spaltenrenner `|` die nächste Zelle einleitet.
```text
**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 & Fußnoten
### Links & Medien
* `[Codeberg](URL)` → Standard-Link (selber Tab)
* `[Codeberg]{URL}` → Komfort-Link (neuer Tab / `target="_blank"`)
* `![Alt-Text](URL)` → Standard-Bild
* `![Alt-Text w:300](URL)` → Bild mit definierter Breite (Höhe skaliert automatisch)
### Bildergalerien (Nutzt die Multi-line-Tabellen-Logik)
Da Zellen durch das schließende `|` flexibel über mehrere Zeilen fließen 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
![Alpen](berge.jpg)
>c Abbildung 1: Alpen>|
![Italien](strand.jpg)
>c Abbildung 2: Italien>|
![Schwarzwald](wald.jpg)
>c Abbildung 3: Schwarzwald>|
&
```
(Hinweis: Der Zeilenumbruch zwischen dem Bild und der Beschreibung wird vom Parser als einfaches <br> gerendert, sodass der Text perfekt unter dem Bild steht, während das | am Ende die gesamte Zelle abschließt.)
### Fussnoten
* `^1[Hier steht der Fussnotentext]^` → Manuelle Nummerierung (Fussnote 1)
* `^x[Hier steht der Fussnotentext]^` → Automatische, fortlaufende Nummerierung durch SimonUp
---
## 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?