= Meta: Neovim Setup & Projekt-Bedienung = :toc: :icons: font Dieser Abschnitt dokumentiert die technische Infrastruktur des Projekts. Da wir auf einem Lenovo X220 mit Window Maker arbeiten, ist das Setup auf maximale lokale Effizienz und saubere, flüchtige Docker-Builds ausgelegt. == 1. Starten des Workflows Das gesamte Worldbuilding ist terminalbasiert. Um an der Lore zu arbeiten, öffne dein Terminal (z. B. rxvt oder xterm) im Projektverzeichnis und starte Neovim: [source,bash] ---- cd ~/Projekte/Maschinen-Instanzen nvim . ---- _(Der Punkt öffnet direkt den internen Dateibrowser Netrw in Neovim)_ == 2. Lokale Konfiguration (`.nvim.lua`) Damit Neovim weiß, wie es unser spezifisches Projekt kompilieren soll, liegt im Hauptverzeichnis eine verborgene `.nvim.lua`. Damit diese geladen wird, muss in deiner globalen `~/.config/nvim/init.lua` folgender Parameter gesetzt sein: [source,lua] ---- vim.o.exrc = true ---- == 3. Tastenkürzel & Bedienung Wir halten Neovim nah am Default. Die wichtigsten projektspezifischen Befehle: [cols="1,3", options="header"] |=== | Kürzel / Befehl | Aktion | `:BuildLore` | Ruft das Docker-Bash-Skript auf und baut das finale Markdown. | `b` | (Meist `Leertaste` + `b`) Der Shortcut für `:BuildLore`. | `:e datei.adoc` | Öffnet oder erstellt eine neue AsciiDoc-Datei. | `:Lex` | Öffnet/Schließt die Dateibaum-Ansicht (Netrw) an der Seite. |=== == 4. Die Build-Pipeline (Docker) Wir verunreinigen unser Host-System nicht mit Ruby (für Asciidoctor) oder Haskell (für Pandoc). Alles läuft über ein flüchtiges Docker-Skript (`build.sh`). *Was passiert, wenn du `b` drückst?* 1. Neovim ruft `build.sh` auf. 2. Ein winziger Alpine-Linux-Container wird gestartet. 3. Der Container liest die `master.adoc` und löst alle `include::`-Befehle auf. 4. Asciidoctor erzeugt ein XML, Pandoc wandelt dieses in `final_worldbuilding.md` um. 5. Der Container löscht sich selbst rückstandslos. == 5. Das Tag-System (Redaktionelle Notizen) Um Notizen in den Dateien zu behalten, die **nicht** im finalen Export landen sollen, nutzen wir das AsciiDoc-Tag-System. Schreibe deinen Lore-Text immer in diesen Block: [source,asciidoc] ---- // tag::export[] Die Ernteschiffe bremsen in der Oortschen Wolke ab... // end::export[] ---- Alles, was *außerhalb* dieser Tags steht (wie To-Do-Listen, alte Ideen oder Konzept-Müll), bleibt sicher in der `.adoc`-Datei, wird aber beim Build-Prozess vom Container ignoriert.