173 lines
No EOL
7 KiB
Markdown
173 lines
No EOL
7 KiB
Markdown
# 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. |
|
||
| `` `Text` `` | `Inline-Code` | Technische Begriffe im Fliesstext. |
|
||
| `\Zeichen` | *Escape* | Hebt die Bedeutung von Steuerzeichen auf (z. B. `\#`). |
|
||
|
||
### Ausrichtung & Einrückung 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 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 umschliesst, wird er als Ausnahme weder mit einem & geöffnet noch 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ässig 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 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 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 fliessen. 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 & 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 <br> 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
|
||
|
||
---
|
||
|
||
## 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? |