Obsah stránky sa číta, prosím čakajte…
Tvorba webových stránok – Manuál k redakčnému systému Rheia 1.0, Roman Horváth, © 2015, powered by Rheia
TWS – Manuál k RS Rheia 1.0 – Obsah | Výpočty a iné úpravy obsahu « Vkladanie externých textov | Vloženie príkazu JavaScriptu »
Systém Rheia sa usiluje brániť vzniku typografických alebo syntaktických nezrovnalostí pravidlami, ktoré zavádza. Popri dodržaní všetkých pravidiel nie je vždy možné dosiahnuť požadovaný výsledok priamočiaro. Niektoré pravidlá sa dajú obísť rušiacou klauzulou, no ani tá nedokáže vyriešiť všetko. Preto Rheia ponúka širšiu skupinu preddefinovaných kódov (sú zhrnuté na konci tejto kapitoly) a umožňuje i definovanie vlastných kódov. Nimi je možné vyriešiť vloženie akéhokoľvek HTML obsahu.
Definícia jednoriadkového kódu musí byť umiestnená na samostatnom riadku a nesmie obsahovať syntax RS Rheia, naopak, v obsahu jej definície je očakávaná syntax jazyka HTML . Takáto definícia má nasledujúci všeobecný tvar:
#«identifikátor»:«HTML obsah»
«identifikátor» smie byť také slovo, ktoré sa začína ľubovoľným písmenom anglickej abecedy, nepovinne pokračuje písmenami anglickej abecedy alebo číslicami a nie je rezervované systémom Rheia na iné účely. V tabuľkách rozdelených do samostatných sekcií nižšie sú uvedené všetky rezervované identifikátory RS Rheia.
«HTML obsah» určuje obsah kódu, ktorý bude pri použití doslovne vložený do HTML stránky, pričom pod použitím kódu sa rozumie vloženie nasledujúcej klauzuly kdekoľvek do zdrojového textu stránky:
code(«identifikátor»)
Okrem toho je možné definovať viacriadkové kódy, ktorých obsah je naopak vygenerovaný pomocou syntaxe RS Rheia. Ukazuje to nasledujúca sekcia s názvom Kódy s generovaným obsahom.
Poznámka: | Prázdny identifikátor nie je v definícii kódu povolený, pretože je rezervovaný. Prázdny identifikátor pri použití kódu je povolený a často používaný – ide o rušiacu klauzulu. |
---|---|
Poznámka: | Rovnakú syntax ako definícia kódu má napríklad direktíva #správaPrázdnehoZoznamu: «správa» (pozri kapitolu Oznamovanie prázdneho zoznamu článkov) a ďalšie príkazy zhrnuté nižšie. Direktíva správaPrázdnehoZoznamu však nie je v konflikte s definíciou kódov, pretože v identifikátoroch kódov nie je povolená diakritika. |
Kódy s generovaným obsahom
Niekedy môže byť vyhovujúcejšie vygenerovať obsah kódu pomocou stroja RS Rheia (t. j. s použitím syntaxe RS Rheia). Na to je slúži definícia viacriadkových kódov, ktorá má nasledujúcu syntax:
#«identifikátor»:#openCapture «Obsah definovaný pomocou syntaxe RS Rheia.» #closeCapture
Rheia začne zachytávať obsah medzi začiatkom a koncom tejto syntaxe a z neho vygeneruje HTML obsah kódu.
Tento spôsob má v súčasnosti dve technické obmedzenia:
- Na to, aby mohlo byť zachytávanie obsahu korektne začaté a ukončené je nevyhnutné, aby bol stroj RS Rheia v neutrálnom stave. To značí, že nesmie práve prebiehať definícia odseku, tabuľky, zoznamu a podobne. Na dosiahnutie tohto stavu stačí pred riadky začiatku a konca definície umiestniť prázdny riadok.
Prázdny riadok pred začatím definície ukončí prípadný začatý odsek, tabuľku alebo zoznam a uvedie stroj RS Rheia do neutrálneho stavu. Podobne je to s prázdnym riadkom pred ukončením definície. Na odstránenie tohto obmedzenia by bol potrebný rozsiahly refaktoring stroja RS Rheia. - Definície (máme na mysli iba samotnú definíciu, ktorá zostáva do použitia neviditeľná a ktorej umiestnenie v rámci zdrojového textu je rýdzo na voľbe autora stránky) nesmú byť umiestnené v rámci obsahu kariet, pretože mechanizmus zachytávania generovanej (t. j. viacriadkovej) definície kódu by sa dostal do konfliktu s mechanizmom zachytávania obsahu kariet.
Ani jedno z týchto obmedzení nepredstavuje zásadnú prekážku pri používaní generovaných (t. j. viacriadkových) kódov. Len je nevyhnutné dbať na to, aby boli pri definíciách viacriadkových kódov tieto obmedzenia vzaté do úvahy.
Príklad:
#tabulkaVTabulke:#openCapture >|Nadpis --- *# → # → * *Tabuľka → v → *tabuľke *# → # → * ||Odsek. #closeCapture *# → # → * * → code(tabulkaVTabulke) → *code() *# → # → *
Výsledok:
Nadpis
Odsek. |
|||||||||||
Rezervované identifikátory
Rezervované identifikátory sú také identifikátory, ktoré sú použiteľné v tvare #
«identifikátor»:
«obsah», ale ich význam je iný než definícia kódu. Tie, ktoré slúžia na tvorbu poznámok sú uvedené v nasledujúcej tabuľke spolu s ukážkou vloženej poznámky:
Identifikátor | Význam a príklad s výsledkom | |
---|---|---|
error |
vloženie chybového hlásenia s vlastným textom a nasledujúcim formátom: | |
#error: Chybové hlásenie |
Chybové hlásenie |
|
graynotice |
vloženie šedej poznámky; vhodné na vytvorenie výziev v sústave kariet v prípade, že nie je predvolená žiadna karta | |
#graynotice: Šedá poznámka |
Šedá poznámka |
|
note |
vloženie informačnej poznámky naformátovanej nasledujúcim spôsobom: | |
#note: Poznámka |
Poznámka: Poznámka |
|
smallnote |
vloženie informačnej poznámky písanej menším písmom; podobá sa na technické správy uvedené v sekcii Ďalšie direktívy nižšie (#reconstruct# , #work# …) |
|
#smallnote: Malá poznámka |
Poznámka: Malá poznámka |
|
Poznámka: | Text „Poznámka“ v poznámkach typu note a smallnote je vkladaný automaticky a je závislý od jazykovej mutácie stránky. |
---|
V nasledujúcej tabuľke sú uvedené ďalšie rezervované identifikátory, ktoré nevkladajú žiadny obsah. Majú príkazový alebo definičný charakter (opis významu obsahuje vo väčšine prípadov odkaz na ďalšie informácie):
Identifikátor | Význam |
---|---|
code |
vloženie HTML kódu priamo na mieste výskytu direktívy (viac informácií v rovnomennej sekcii pod tabuľkou) |
style |
vloženie definície štýlu |
tables |
direktíva na zmenu zoznamu tried štýlov tabuľky platná pre všetky tabuľky nasledujúce za miestom uvedenia direktívy |
table |
direktíva na zmenu zoznamu tried štýlov tabuľky platná pre najbližšiu tabuľku nasledujúcu za miestom uvedenia direktívy |
Nasledujúci riadok obsahuje zoznam všetkých ďalších direktív slúžiacich na úpravu tried štýlov súčastí tabuliek: firstRows , oddRows , evenRows , lastRows , headCells , leftCells , oddCells , evenCells , rightCells (podrobnosti sú uvedené v kapitole Štýly tabuliek). |
|
floatLeft |
predvolený zoznam tried štýlov obrázkov plávajúcich vľavo |
floatRight |
predvolený zoznam tried štýlov obrázkov plávajúcich vpravo |
paragraphs |
direktíva na zmenu zoznamu tried štýlov odseku platná pre všetky odseky nasledujúce za miestom uvedenia direktívy |
paragraph |
direktíva na zmenu zoznamu tried štýlov odseku platná pre najbližší odsek nasledujúci za miestom uvedenia direktívy |
orderedList |
zmena zoznamu tried štýlov číslovaného zoznamu – využiteľné napríklad pri zmene úrovne číslovaného zoznamu |
unorderedList |
zmena zoznamu tried štýlov pre zoznam s odrážkami – využiteľné napríklad pri zmene úrovne zoznamu s odrážkami |
calc |
vloženie príkazu modulu jednoduchého kalkulátora |
makro |
definícia makra |
javaScript |
vloženie príkazu JavaScriptu spusteného tesne pred zobrazením obsahu stránky |
onShow |
vloženie príkazu JavaScriptu spusteného po zobrazení obsahu stránky |
ical |
vloženie príkazu modulu kalendára iCalendar |
Karta |
vytvorenie novej karty |
Podkarta |
vytvorenie novej karty druhej úrovne |
Titulok |
úprava titulku stránky – táto úprava nie je odporúčaná, Rheia nastavuje titulok stránky automaticky |
Nadpis |
vloženie nadpisu stránky s odkazom na permalink |
(Mnohé ďalšie direktívy alebo klauzuly, súhrnne príkazy, ktoré majú rovnakú syntax, nie sú v rozpore s definíciami kódov, pretože obsahujú diakritiku alebo medzeru. Napríklad: #Názov:
…, #Šablóna:
…, #Presmerovanie karty:
… atď. Ďalšie direktívy majú podobnú syntax, ale nevyžadujú hodnotu oddelenú dvojbodkou, preto tiež nie sú v konflikte. Napríklad: #Pod kartami
, #startCode
atď. Všetky príkazy sú zhrnuté v sekcii Príkazy s podobnou syntaxou ako definície kódov; nižšie.)
Vloženie HTML kódu priamo na mieste
Rezervovaný identifikátor code
slúži na vloženie HTML kódu priamo na mieste výskytu direktívy. K dispozícii sú dve syntaktické verzie – jednoriadková a viacriadková.
Jednoriadková sa ničím neodlišuje od jednoriadkovej definície kódu, s tým rozdielom, že vloženie je vykonané priamo v mieste výskytu.
Viacriadková verzia tohto vloženia sa podobá na kódy s generovaným obsahom (opísané vyššie), ale iba syntakticky. Principiálne je obsah (rovnako ako pri jednoriadkovej verzii) očakávaný tiež v HTML tvare:
#code:#openCapture «HTML obsah» #closeCapture
Tento blok definície je vhodné oddeliť od ostatného obsahu prázdnymi riadkami. Stroj RS Rheia sa po skončení zachytávania vráti do posledného stavu spracovania, takže ak by sa z pohľadu syntaxe RS Rheia ocitol tento blok napríklad uprostred odseku, výsledok by bol iný než by sme mohli očakávať.
Príklad:
; Príklad korektne oddelenej definície Odsek pred 1. #code:#openCapture <p>Odsek definície 1.</p> #closeCapture Odsek za 1. === ; Príklad nekorektne oddelenej definície Odsek pred 2. #code:#openCapture <p>Odsek definície 2.</p> #closeCapture Odsek za 2.
Výsledok:
Odsek pred 1.
Odsek definície 1.
Odsek za 1.
Odsek definície 2.
Odsek pred 2. Odsek za 2.
Príkazy s podobnou syntaxou ako definície kódov
Pre úplnosť uvádzame zhrnutie všetkých ostatných príkazov, ktoré majú syntax v tvare s mriežkou na začiatku riadka, ale nie sú v konflikte s definíciami kódov, pretože text príkazu obsahuje diakritiku alebo medzeru, ktorých použitie nie je v identifikátoroch kódov povolené alebo pre nich platí to, že nevyžadujú (resp. nesmú mať) definovaný žiadny obsah uvádzaný dvojbodkou.
Najprv uvedieme niekoľko príkazov, ktorých syntax je v tvare #
«príkaz»:
«obsah»
Príkaz | Súvisiaca kapitola |
---|---|
Alias karty | Alias karty |
Alias podkarty | |
Odkaz karty | Odkazy kariet |
Odkaz podkarty | |
Presmerovanie karty | Presmerovanie karty |
Presmerovanie podkarty |
a ešte niekoľko ďalších príkazov, ktorých syntax je v tvare #
«príkaz» (bez obsahu)
Príkaz | Súvisiaca kapitola |
---|---|
Pod kartami |
Pridanie obsahu pod kartami |
Pod podkartami |
Pridanie obsahu pod kartami druhej úrovne |
Predvolená karta |
Predvolená karta |
Predvolená podkarta |
Predvolená karta druhej úrovne |
Žiadna karta |
Zrušenie predvolenej karty |
Žiadna podkarta |
Prázdna sekcia kariet druhej úrovne |
Zlomová karta |
Zlomová karta |
Zlomová podkarta |
Zlomová karta druhej úrovne – to isté ako zlomová karta |
startCode |
Táto skupina direktív slúži na vloženie bloku ukážky zdrojového kódu. |
startJavaCode |
|
startHTMLCode |
|
startCSSCode |
|
endCode |
|
Preddefinované kódy
V nasledujúcej tabuľke sú zhrnuté všetky preddefinované kódy, ktoré je možné použiť v zdrojovom texte uvedením klauzuly v tvare code(
«identifikátor»)
(všimnite si, že niektoré z nich obsahujú aj znaky, ktoré nie sú pri definovaní vlastných kódov povolené).
Viaceré preddefinované kódy nevkladajú svoj obsah vo forme jedného znaku (tak ako ho vidí návštevník počas prezerania stránky), ale vo forme znakovej entity HTML. Informácie o znakových entitách sú v kapitole Tabuľka znakov.
Identifikátor | Význam kódu |
---|---|
zwsp |
medzera s nulovou šírkou (zero width space); je vhodné ju použiť napríklad na rozdelenie veľmi dlhých URL adries (pri jednoduchých externých odkazoch to Rheia zabezpečuje automaticky) |
nbsp |
pevná medzera (non‑breaking space); Rheia používa pevnú medzeru napríklad na zariadenie toho, aby sa jednopísmenové predložky a spojky neocitli „osamotené“ na konci riadkov (je to súčasť automatickej typografie) |
br |
ručné zalomenie riadka (break) – <br /> ; pozri aj kapitolu Zalomenie riadka a prázdne odseky; definícia kódu je prítomná z viacerých dôvodov: na zaručenie spätnej kompatibility so staršími verziami systému, kód slúži ako pomôcka pri riešení prípadných konfliktov, kód je použiteľný na vloženie ručného zalomenia bez pevnej medzery (pozri kapitolu Zalomenie riadka a prázdne odseky) |
p |
prerušenie odseku a začatie nového odseku – </p><p> ; vhodné pri použití v súvislosti s vkladaním hodnôt objektov (pozri kapitolu Základné spôsoby použitia objektov – pri jednoduchom vložení hodnoty do samostatného odseku) |
pre |
začatie sekcie preformátovaného obsahu – <pre> ; pozri kapitolu Ukážka zdrojového kódu; definícia kódu je prítomná z dôvodu spätnej kompatibility so staršími verziami systému a ako pomôcka pri riešení prípadných konfliktov |
/pre alebo /pre |
ukončenie sekcie preformátovaného obsahu – </pre> ; pozri kapitolu Ukážka zdrojového kódu; definícia kódu je prítomná z dôvodu spätnej kompatibility so staršími verziami systému a ako pomôcka pri riešení prípadných konfliktov |
code |
vloženie začiatočnej značky formátovania textu ako kódu – <code> ; pozri aj kapitolu Základné formátovanie textu – znak ` ; definícia kódu je prítomná z dôvodu spätnej kompatibility so staršími verziami systému a ako pomôcka pri riešení prípadných konfliktov |
/code alebo /code |
vloženie koncovej značky formátovania textu ako kódu – </code> ; pozri aj kapitolu Základné formátovanie textu – znak ` ; definícia kódu je prítomná z dôvodu spätnej kompatibility so staršími verziami systému a ako pomôcka pri riešení prípadných konfliktov |
lt |
vloženie znaku menší než: < (nepodlieha automatickým typografickým úpravám) |
gt |
vloženie znaku väčší než: > (nepodlieha automatickým typografickým úpravám) |
amp |
vloženie znaku anglického „a“ (ampersand): & |
quot |
vloženie znaku strojopisných úvodzoviek: " (nepodlieha automatickým typografickým úpravám) |
lp |
vloženie znaku ľavá okrúhla zátvorka: ( |
rp |
vloženie znaku pravá okrúhla zátvorka: ) |
lbk |
vloženie znaku ľavá hranatá zátvorka: [ |
rbk |
vloženie znaku pravá hranatá zátvorka: ] |
lbc |
vloženie znaku ľavá zložená zátvorka: { |
rbc |
vloženie znaku pravá zložená zátvorka: } |
back |
vloženie znaku spätná lomka: \ |
dollar |
vloženie znaku dolár: $ |
hyp alebo hyphen |
vloženie znaku spojovník: ‑ |
com alebo comma |
vloženie znaku čiarka: , |
dot |
vloženie znaku bodka: . (nepodlieha automatickým typografickým úpravám) |
minus |
vloženie znaku mínus −, ktorý je odlišný od znaku pomlčky –; (Pri vzájomnom porovnaní znakov pomlčka, plus a mínus: –+− by sme mali vidieť rozdiel medzi rozmerom a/alebo umiestnením znakov pomlčky a mínusu. Mínus by malo presne zodpovedať rozmerom a umiestneniu znaku plus, umiestnenie a/alebo rozmery znaku pomlčky sa môžu odlišovať, pretože tento znak sa riadi inými konvenciami.) |
Okrem všetkých uvedených príkazov a definícií je v systéme Rheia k dispozícii niekoľko všeobecných direktív, ktorých účelom je rýchle informovanie návštevníka o aktuálnom stave navštívenej stránky sídla. Je to päť nasledujúcich informácií (direktívy empty
a null
sú identické):
#reconstruct# #work-soon# #work# #not-available# #empty# #null#
Výsledok:
Poznámka: Stránka je momentálne v procese rekonštrukcie…
Poznámka: Na tejto časti stránky budeme pracovať v blízkej budúcnosti…
Poznámka: Na tejto časti stránky sa momentálne pracuje…
Poznámka: Táto informácia nie je dostupná v slovenskom jazyku…
Poznámka: V tejto sekcii momentálne neponúkame žiadne informácie…
Poznámka: V tejto sekcii momentálne neponúkame žiadne informácie…
V prekladoch direktívy #not-available#
sa mení aj cieľový jazyk. To znamená, že napríklad anglická verzia poznámky vypovedá o nedostupnosti anglickej verzie obsahu…
Otázky a úlohy:
- Aký je rozdiel medzi definíciou jednoriadkového a viacriadkového kódu RS Rheia?
- Ako je v zdrojovom texte RS Rheia možné vložiť HTML kód priamo na mieste?
- Vymenujte aspoň štyri rezervované identifikátory kódov RS Rheia?
- Vymenujte aspoň štyri preddefinované kódy RS Rheia?