Špecifikácia jazyka Rea — Časť 1: Základy (Sekcie 1–9)
Stav implementácie: Sekcie 1–9 sú implementované v klientskom parseri. Extrakcia metadát, formátovanie textu, nadpisy, blokové citáty, horizontálne čiary, odkazy, médiá, kotvy, rozšírené formátovacie príkazy (podčiarknutie, prečiarknutie, neproporcionálne písmo), poznámky pod čiarou (pomenované a automaticky číslované), vnorené inline formátovanie a podpora premenných fungujú podľa špecifikácie. Pozrite REA-CHEATSHEET.md pre podrobný stav.
1. Štruktúra dokumentu
Rea príbehy existujú v hierarchii:
Séria → Reast → Časť → Kapitola → Sekcia → Scéna → OdsekKaždý .rea súbor reprezentuje jeden reast (príbeh). Väčšie kompilácie používajú balíkový formát .reast (pozri Formát súboru a balenie).
Séria zoskupuje viaceré reasty pod spoločný názov (napr. „Priatelia"). V rámci série voliteľné pole metadát season zoskupuje reasty do logických blokov (číslovaných alebo pomenovaných). Samostatný príbeh nepotrebuje ani jedno — je jednoducho reast.
Minimálny príbeh je len text:
Raz dávno, v ďalekej krajine, mladý cestovateľ sa vydal na cestu.
Cesta sa pred ním tiahla donekonečna.Žiadne metadáta, žiadne hlavičky — text stačí. Platforma ho automaticky zabalí ako jednodielny, jednoscénový príbeh.
Metadáta
Súbor .rea je čistý text — neobsahuje žiadne metadáta. Všetky metadáta (názov, autor, žáner, senzory, oprávnenia atď.) sú uložené v manifeste reast.json balíka .reast (pozri Sekcia 28).
Toto oddelenie udržiava .rea súbory čisté a prenosné: .rea súbor je vždy len obsah príbehu, čitateľný akýmkoľvek textovým editorom. Manifest v reast.json deklaruje všetko, čo platforma potrebuje vedieť pred spustením príbehu: info o príbehu, oprávnenia a požiadavky.
2. Text a odseky
Odseky sú oddelené jedným alebo viacerými prázdnymi riadkami:
Les bol tmavý a tichý.
Niekde v diaľke zavyl vlk.Jednoduchý zlom riadku je tvrdý zlom (text pokračuje na novom riadku v tom istom odseku):
Nápis hovoril:
V tieni čakám,
Vo svetle bledniem.Potlačenie zlomu riadku pomocou \ na konci riadku (spojenie s nasledujúcim):
Toto je veľmi dlhá veta, ktorú chcem \
napísať cez dva riadky v zdrojovom kóde.Toto sa vykreslí ako jeden súvislý riadok.
3. Formátovanie textu
| Syntax | Vykreslí sa ako | Príklad |
|---|---|---|
_text_ | Kurzíva | _zašepkal potichu_ |
*text* | Tučné | *dvere buchli* |
_*text*_ | Tučná kurzíva | _*nemožné!*_ |
Existujú iba dva inline značky: _ (kurzíva) a * (tučné). Tučná kurzíva sa dosahuje ich kombináciou — _*text*_ alebo *_text_*. Obidva poradia sú platné; preferovaná forma je _*text*_.
Formátovacie značky musia byť priľahlé k textu (žiadne medzery medzi značkou a textom).
Formátovanie sa dá vnoriť:
_Starodávna *zakázaná* kapitola *zväzku*_Rozšírené formátovanie
Podčiarknutie, prečiarknutie a monospace sú dostupné ako príkazy (zriedka potrebné v naratívnej fikcii):
{underline begin}podpis{end underline}
{strike begin}starý plán{end strike}
{mono begin}kód:X7F2{end mono}Bloky kódu/plaintextu používajú osamotený backtick na vlastnom riadku:
`
Tento text sa vykreslí presne ako je napísaný.
Žiadne formátovanie sa tu neuplatňuje.
`Inline kód používa backticky v riadku: `nazov_premennej`.
Vnorenie: Ak samotný raw text obsahuje osamotený backtick riadok, použite dvojité backticky na ohraničenie bloku. Trojité backticky umožňujú dvojité backticky vnútri, atď:
``
Tento blok môže obsahovať osamotený ` na vlastnom riadku.
``4. Nadpisy
Nadpisy používajú jeden alebo viac znakov #. Slúžia ako štrukturálne značky pre kapitoly, sekcie a scény.
# Začiatok
## Lesná cesta
### Čistinka
#### Zvláštny strom
##### NápisPlatforma vykreslí každú úroveň s odlišným vizuálnym štýlom. Za podporovanou hĺbkou platformy sa ďalšie úrovne vykresľujú identicky ako najhlbšia podporovaná úroveň.
Kotvy nadpisov sa automaticky generujú z textu nadpisu:
- Prevod na malé písmená
- Odstránenie diakritiky (prízvuky)
- Nahradenie nealfanumerických znakov znakom
_ - Zlúčenie po sebe idúcich
_do jedného - Orezanie úvodných/koncových
_
Príklad: ## Okraj lesa! → kotva: okraj_lesa
5. Zarovnanie a odsadenie
Riadky sa dajú zarovnať začatím špeciálnym znakom:
| Prefix | Zarovnanie |
|---|---|
= | Na stred |
> | Doprava |
< | Doľava (vynútené — užitočné v pravostranných textoch) |
| (default) | Doľava |
= Koniec
> — Neznámy autor
< vynútené doľava v pravo-doľava kontexteOdsadenie používa opakované zarovnávacie znaky. Každý ďalší znak pridáva jednu úroveň odsadenia z príslušnej strany:
= centrované
== centrované s 1 odsadením z oboch strán
=== centrované s 2 odsadeniami z oboch strán
> zarovnané doprava
>> zarovnané doprava s 1 odsadením sprava
>>> zarovnané doprava s 2 odsadeniami sprava
< zarovnané doľava (vynútené)
<< zarovnané doľava s 1 odsadením zľava
<<< zarovnané doľava s 2 odsadeniami zľavaMedzera po zarovnávacom prefixe je povinná. Platforma vykreslí každú úroveň odlišne až po svoju podporovanú hĺbku; za ňou sa ďalšie úrovne vykresľujú identicky ako najhlbšia.
6. Blokové citáty a horizontálne čiary
Blokové citáty
Blokové citáty používajú | na začiatku riadku. Viaceré | znaky vnárajú citáty:
| Starý muž hovoril pomaly:
|| Zapamätaj si: každá cesta niekam vedie.
|| Aj tie, čo sa zdajú nikam neviesť.
| Jeho slová zotrvali v tichu.Platforma vykreslí každú úroveň vnorenia s odlišným vizuálnym štýlom až po svoju podporovanú hĺbku.
Horizontálne čiary
Horizontálne čiary sú riadky pozostávajúce výhradne z pomlčiek. Rôzne počty produkujú rôzne vizuálne váhy:
-
--
---
----
-----Princíp konzistentnosti: Tak ako # je najvyššia (najväčšia) hlavička pre štruktúru dokumentu, - je najvyššia (najťažšia) oddeľovacia čiara. Viac pomlčiek = ľahšia/jemnejšia čiara:
| Čiara | Vizuálna váha | Typické použitie |
|---|---|---|
- | Ťažká (najhrubšia) | Veľký zlom časti/aktu |
-- | Stredne ťažká | Zlom kapitoly |
--- | Stredná | Zlom sekcie |
---- | Ľahká | Prechodová scéna |
----- | Jemná (najtenšia) | Zlom myšlienky / mäkká pauza |
Vizuálny vzhľad každej úrovne je plne riadený témou platformy. Autori vyberajú sémantickú váhu; téma určuje vizuálny štýl (plná, bodkovaná, ornamentálna, gradientová atď.).
7. Odkazy
Odkazy používajú jednotnú zátvorkovú syntax so šípkou > smerujúcou k cieľu:
[čítať ďalej > #čistinka]
[ďalšia kapitola > chapter2.rea]Štruktúra: [zobrazovaný text > cieľ]
Interné odkazy na kotvy používajú #:
[vrátiť sa > #zaciatok]Odkazy medzi príbehmi:
[pokračovať v dobrodružstve > reast://ABC123]Poznámka: Externé URL (http/https) nie sú povolené v
.reatexte. Všetok externý prístup sa deklaruje cezallowed_urlsv manifestereast.jsona odkazuje sa aliasmi (pozri Externý prístup k API).
8. Médiá
Mediálne príkazy používajú zátvorkovú syntax s typovo špecifickými prefixmi. Šípka < indikuje, že zdroj prúdi do zobrazovacieho elementu:
| Typ | Syntax | Príklad |
|---|---|---|
| Obrázok | [!alt text < zdroj] | [!Tmavý les < media/forest.jpg] |
| Video | [>titulok < zdroj] | [>Brána sa otvára < media/gate.mp4] |
| Audio | [?titulok < zdroj] | [?Vtáčí spev < media/birds.ogg] |
Pamäťová pomôcka:
!= obrázok (symbol pre štetec; ako pozornosť/vizuálny dopad)>= video (symbol pre tlačidlo play)?= audio (symbol pre ucho; počúvaj/otáznik — „počuješ?")
Atribúty médií
Atribúty nasledujú za zdrojom, oddelené čiarkami:
[!Hrad < media/castle.jpg width=800, height=600]
[>Intro cinematik < media/intro.mp4 autoplay, loop, muted]
[?Hudba pozadia < media/theme.ogg volume=0.5, loop]Inline mediálne referencie
Pre médiá zabalené v .reast balíku použite číselné referencie:
[!Tajná mapa < :1]
[>Rituál < :2]Číslo sa mapuje na záznam v manifeste balíka.
9. Kotvy a poznámky pod čiarou
Vlastné kotvy
Umiestnite vlastnú kotvu kdekoľvek pomocou:
[#nazov_kotvy]Prejdite na ňu cez odkaz:
[vrátiť sa do bezpečia > #nazov_kotvy]Poznámky pod čiarou
Poznámky pod čiarou používajú [^identifikátor] pre referenciu a zodpovedajúci obsah neskôr:
Starodávny dialekt[^dialekt] bol takmer zabudnutý.
[^dialekt]: Forma starej elfčiny hovorená iba v severných územiach.Automaticky číslované poznámky používajú [^] (priraďované sekvenčne):
Rituál[^] vyžadoval tri zložky[^].
[^]: Podrobne opísané v Časti II.
[^]: Oheň, voda a ochotné srdce.