Tvorba webových stránok – Manuál k redakčnému systému Rheia 1.0, Roman Horváth, © 2015, powered by Rheia

Obsah stránky sa číta, prosím čakajte…

 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 otvárané v novom okne
(obvykle ide o externý odkaz) 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 otvárané v novom okne
(obvykle ide o externý odkaz). 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 otvárané v novom okne
(obvykle ide o externý odkaz) 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áva­Prázdneho­Zoznamu:«správa» (pozri kapitolu Oznamovanie prázdneho zoznamu článkov) a ďalšie príkazy zhrnuté nižšie. Direktíva správa­Prázdneho­Zoznamu 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 otvárané v novom okne
(obvykle ide o externý odkaz) obsah kódu.

Tento spôsob má v súčasnosti dve technické obmedzenia:

  1. 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.
  2. 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

Tabuľka v tabuľke

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 notesmallnote 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 otvárané v novom okne
(obvykle ide o externý odkaz) 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 otvárané v novom okne
(obvykle ide o externý odkaz) 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 otvárané v novom okne
(obvykle ide o externý odkaz) 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 otvárané v novom okne
(obvykle ide o externý odkaz) 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 
&#47;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 
&#47;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 emptynull 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:

  1. Aký je rozdiel medzi definíciou jednoriadkového a viacriadkového kódu RS Rheia?
  2. Ako je v zdrojovom texte RS Rheia možné vložiť HTML otvárané v novom okne
(obvykle ide o externý odkaz) kód priamo na mieste?
  3. Vymenujte aspoň štyri rezervované identifikátory kódov RS Rheia?
  4. Vymenujte aspoň štyri preddefinované kódy RS Rheia?