SoftVisionSoftware development, consulting and services
Guest (talk|msg)
Content Server >> Content > Content formats > wik > references
Content Server




Referencie
Abstrakt
Systém umožňuje jednoduché zadanie odkazov - referencií - na iné články obsahu, alebo na iné WWW stránky. V súvislosti s odkazmi na články obsahu, systém umožňuje vloženie obsahu článku priamo na miesto referencie, teda inline (v riadku) vloženie článku, v rôznych módoch formy vloženia. Systém umožňuje kontextovú interpretáciu relatívnych referencií na články obsahu, pričom v súvislosti s inline vloženými článkami, umožňuje kontextovú interpretáciu relatívnych referencií v inline vložených článkoch, v kontexte umiestnenia obsahu článku, alebo v kontexte umiestnenia referencie článku. Interpretácia relatívnych referencií v kontexte umiestnenia referencie článku, umožňuje použitie článkov s relatívnymi referenciami ako vzorových - template - článkov, čo je možné využiť napríklad na vytvorenie rôzneho obsahu s rovnakou štruktúrou, a to až na úroveň základnej štruktúry stránky prezentačnej úrovne. Účelom systému relatívneho referencovania obsahu, je umožnenie jedinečného zadania obsahu, a jeho využitie kdekoľvek v prezentovanom obsahu, a umožnenie premenovania základných ciest k článkom (napr. sekcií), bez narušenia referencií, čo umožňuje aj prenos obsahu medzi rôznymi inštanciami systému a inline referencovanie obsahu iných serverov založených na rovnakom princípe.

Popis
Základné formáty referencie sú :
  • [[reference]] - základná forma referencie - odkaz vo forme linky - štandardne sa ako text linky použije nadpis článku
  • [[[reference]]] - inline vloženie článku aj s nadpisom v štandardnom formáte
  • {{reference}} - inline vloženie obsahu (článku, parametra, reťazca, interného grafického článku) v kontexte miesta obsahu
  • {{{reference}}} - inline vloženie obsahu v kontexte miesta referencie - template

Spôsob interpretácie referencie je daný týmito základnými formami, a vlastným formátom a obsahom reťazca referencie. Formát a obsah reťazca referencie má pre tieto jednotlivé základné formy spoločné ale aj špecifické prvky, ktoré určujú ako je reťazec referencie interpretovaný v rámci danej formy referencie.

Základnou formou zadania referencie je cesta referencie uzavretá medzi dvomi hranatými zátvorkami - [[reference]]. Táto forma referencie je na prezentačnej úrovni interpretovaná ako odkaz vo forme linky.

Referencie, ktoré začínajú bodkou, sú interpretované ako systémové referencie na vlastný obsah sprostredkovaný serverom.

Referencie ktoré nezačínajú bodkou sú interpretované špecificky podľa základnej formy referencie.


Spoločný formát reťazca referencie :
Spoločný formát reťazca referencie je založený na implicitnej časti (prefix) a explicitnej časti (bookpath) reťazca. Prefix referencie je založený na rezervovaných znakoch, a má logickú štruktúru, ktorá je algoritmicky interpretovaná, a slúži na relatívne spätné referencovanie. Bookpath predstavuje úplnú alebo čiastočnú cestu k článku obsahu, v závislosti od prefixu referencie. Oddeľovačom identifikátora sekcie od identifikátora článku, v explicitnej časti reťazca referencie - bookpath, je čiarka ',' alebo lomítko '/'. Oddeľovačom zložiek cesty bookpath je dvojbodka ':'. Zo systémových a logických dôvodov, musia byť oddeľovače sekcie a oddeľovač cesy rozdielne, keďže rozlíšenie cesty na časť 'sekcia' a časť 'článok', je dodatočná informácia súvisaca so spracovaním informácie o sekcii, ktorá má v systéme špecifický význam. Z hľadiska relatívneho referencovania je ale toto rozlíšenie irelevantné, a cesta je daná superpozíciou identifikátora sekcie a a identifikátora článku, ako keby boli oddelené dvojbodkou v jednom reťazci cesty. Príklad reťazca referencie : '.section:subsection/article.subarticle'.

Systém rozlišuje aj mäkké oddeľovače cesty - bodka, oproti tvrdým oddeľovačom cesy - dvojbodka. Mäkké alebo tvrdé oddeľovače identifikátorov cesty majú význam pri spätnom referencovaní, ktoré umožňuje mäkké, alebo tvrdé, spätné referencovanie. Pri tvrdom spätnom referencovaní je oddeľovačom algoritmu spätnej referencie len dvojbodka. Pri mäkkom spätnom referencovaní, ktoré predstavuje detailnejšie spätné referencovanie, sú oddeľovačmi algoritmu spätného referencovania bodka aj dvojbodka. Algoritmus spätného referencovania vytvorí výslednú referenciu na základe odoberania identifikátorov z konca cesty, s použitím zodpovedajúcich oddeľovačov. Spätné referencovanie sa zadáva v prefixe referencie pomocou zodpovedajúcich riadiacich znakov, ktoré sú popísané ďalej.

Referencie na neexistujúce články sa interpretujú ako linky s identifikátormi absolútnej cesty, rozdelenej na sekciu a článok hviezdičkou. To umožňuje neexistujúce články vytvoriť jednoducho kliknutím na linku neexistujúceho článku, a zadaním obsahu. Táto vlastnosť môže byť použitá aj na kontrolu správnosti zadania referencií, pred založením nových článkov. Pri presune kurzora myši nad linku odkazu sa v stavovom riadku prehliadača zobrazí celková URL cesta odkazu.
...
V prípade referencií článkov obsahu, teda referencií začínajúcich bodkou, systém umožňuje aj parametrické zadanie refrencie, v tom zmysle, že zadanie reťazca referencie môže obsahovať odkazy na parametre systému. V algoritme interpretácie referencie sú identifikátory uzavreté medzi zložitými zátvorkami '{param_name}' intepretované ako parametre, a v reťazci refrencie sa na miesto parametra vloží hodnota daného parametra. Príklad : [[.{context_section}/article:{date}]] : article:10 * 23/2017. Dostupné parametre ...

Prefixy spoločného formátu reťazca referencie sú interpretované nasledovne :

Jedna bodka pred identifikátorom, '.bookpath', určuje absolútnym spôsobom článok bookpath. Tento typ referencie je vhodný na absolútne referencovanie. Pokiaľ nie je explicitne v rámci bookpath zadaný článok, potom referencia určuje základný článok v sekcii danej referenciou (.bookpath/home). Pokiaľ bookpath nie je zadané, teda referencia je '.', referencia určuje základný článok v základnej sekcii systému (system home). Základná sekcia systému je daná nastavením zodpovedajúceho systémového parametra, a štandardne je jej identifikátor zhodný s identifikátorom aplikácie (biomed,hippo,graspex...). Príklad 1 : [[.example/article]] : example * article. Príklad 2 : [[.example]] : example * contents . Príklad 3 : [[.]] : Welcome

Dve bodky pred identifikátorom, '..bookpath', určujú článok bookpath v sekcii článku, v ktorom je referencia vložená. Príklad : [[..example]] : content.server * content:formats:wik:references:example

Pokiaľ referencia začína dvomi zložitými úvodzovkami, referencia je interpretovaná ako cesta k aktuálnemu článku. Toto umožňuje k ceste aktálneho článku pridať identifikátor podčlánku, alebo špecifické parametre požiadavky URL. Príklad : [[""&param=value]] : common format (param=value)

"Mäkký" alebo "tvrdý" podčlánok sú dané oddeľovačom identifikátora podčlánku : mäkkým - bodka, alebo tvrdým - dvojbodka.

Dve bodky a dvojbodka pred identifikátorom, '..:bookpath', určujú mäkký pod-článok bookpath k článku, v ktorom je referencia vložená. Pokiaľ je context_bookpath cesta k článku, v ktorom je referencia vložená, potom absolútna cesta referencie bude '.context_bookpath.bookpath'. Príklad : [[..:example]] : content.server * content:formats:wik:references.example

Dve bodky a dve dvojbodky pred identifikátorom, '..::bookpath', určujú tvrdý pod-článok bookpath k článku, v ktorom je referencia vložená. Pokiaľ je context_bookpath cesta k článku, v ktorom je referencia vložená, potom absolútna cesta referencie bude '.context_bookpath:bookpath'. Príklad : [[..::example]] : content.server * content:formats:wik:references:example

Dve bodky a tri dvojbodky pred identifikátorom, '..:::bookpath', určujú tvrdú pod-sekciu bookpath v sekcii článku, v ktorom je referencia vložená. Pokiaľ je context_bookpath cesta k článku, v ktorom je referencia vložená, potom absolútna cesta referencie bude '.section(context_bookpath):bookpath/contents'. Tento typ referencie je vhodný na referencovanie podsekcií aktuálnej sekcie, a tým aj na zakladanie podsekcií aktuálnej sekcie. Príklad : [[..:::example]] : content.server:example * contents

Prvé dve bodky prefixu sú intepretované vyššie uvedeným spôsobom. Teda jedna bodka znamená book-root, a dve bodky znamenajú this-section. Dve bodky v prefixe teda predstavujú základ relatívneho referencovania. Každá ďalšia bodka je interpretovaná ako tvrdá spätná referencia k aktuálnemu kontextu. Dvojbodky za bodkami v prefixe sa aj v tomto prípade interpretujú rovnakým spôsobom, ale v kontexte referencie danej bodkami. Pri spätnej referencii každá bodka naviac, ako dve bodky, spôsobí odstránenie z konca cesty context_bookpath identifikátora oddeleného od ďalšej časti dvojbodkou, teda tvrdým oddeľovačom cesty, a vo výslednom kontexte sa aplikuje ostatná časť referencie. Príklad 1 : [[...:example]] : content.server * content:formats:wik.example . Príklad 2 : [[....:example]] : content.server * content:formats.example . Príklad 3 : [[.....:example]] : content.server * content.example [edit]


Špecifické formáty referencie :
Súčasťou referencie môže byť zadanie textu referencie, bez ohľadu na to, či sa jedná o URL referenciu alebo refereciu na obsah. Text referencie musí byť oddelený od cesty referencie oddeľovačom '|' - [[reference_path|reference_text]]. Pokiaľ je zadaný text referencie, použije sa ako text vytvorenej linky, alebo ako nadpis inline vloženého článku. Pokiaľ text referencie nie je explicitne zadaný, text linky sa extrahuje implicitne podľa typu referencie a kontextu na základe cesty referencie. Pokiaľ text referencie začína identifikátorom interpretačnej funkcie, potom sa explicitný aj implicitný vstup pre text linky alebo nadpisu, spracuje touto interpretačnou funkciou. Pokiaľ text referencie obsahuje len identifikátor interpretačnej funkcie, potom je definovaná len interpretačná funkcia a text linky alebo nadpisu sa získa implicitne.

Referencie [[:urlpath]], ktoré začínajú dvojbodkou, sú interpretované ako http://urlpath linky.
Referencie [[::urlpath]], ktoré začínajú dvomi dvojbodkami, sú interpretované ako https://urlpath linky.
Referencie [[urlpath]], ktoré začínajú www.., a ftp. sú interpretované ako linky http://urlpath, resp. ftp://urlpath.
Referencie [[urlpath]], ktoré začínajú http:, https:, ftp: a mailto: sú interpretované priamo ako linky urlpath.

Ostatné referencie [[article_title]] sú interpretované ako odkazy http://en.wikipedia.org/wiki/article_title, na články internetovej encyklopédie WIKI, ktoré majú názov daný v referencii. Pred názvom článku v referencii article_title môže byť uvedený pomlčkou oddelený kód jazykovej verzie encyklopédie, ktorý zodpovedá URL danej jazykovej verzie encyklopédie. Pokiaľ nie je jazyková verzia uvedená, odkaz sa intepretuje ako odkaz na anglickú verziu encyklopédie.

Inline referencie môžu referencovať len články systému ContentServer, keďže URL referencie sú referenciami na celkový obsah WWW stránky a nie na zložky tohoto obsahu. Inline referencie môžu referencovať aj obsah iných serverov systému ContentServer, pričom v takom prípade sa uplatňujú prístupové práva vzdialeného servera, a preto takéto požiadavky musia byť autorizované, alebo na prístupovej úrovni Guest.

V prípade inline referencií typu [[[.reference]]] sa inline obsah vkladá ako nový odstavec so štandardným titulkom obsahu, daným nadpisom referencovaného článku.

V prípade inline referencií typu {{.reference}} a {{{.reference}}}, sa inline obsah vkladá ako plynulý text, teda bez odriadkovania alebo nového odstavca. Pokiaľ má byť inline vložený obsah odriadkovaný, alebo odstavený, musí tak byť odriadkovaná alebo odstavená inline referencia v mieste referencie. Relatívne referencie sa v takto inline vložených článkoch interpretujú v kontexte danom základným formátom referencie.

Text reference_text v inline referenciách typu {{.reference|reference_text}} a {{{.reference|reference_text}}}, sa špecificky interpretuje ako spôsob vloženia nadpisu článku pred obsah inline vloženého článku. Pokiaľ reference_text nie je zadaný, potom sa na miesto inline referencie vloží len obsah článku bez nadpisu. Pokiaľ reference_text začína znakom '_' podtržítko, potom sa text za týmto znakom pripojí k nadpisu článku, a výstedný nadpis sa vloží na miesto referencie ako podtrhnutý a za ním sa vloží riadkom oddelený obsah článku. Pokiaľ reference_text začína znakom '-' pomlčka, potom sa nadpis vloží na miesto referencie ako hrubý text podtrhnutý oddeľovacou čiarou o hrúbke rovnej počtu pomlčiek, a pod čiarou sa vloží obsah článku. Pokiaľ reference_text je ':' dvojbodka, potom sa k nadpisu článku pripojí medzera a dvojbodka, a výsledný nadpis sa vloží na miesto referencie ako podtrhnutý text a za ním sa vloží medzerou oddelený obsah článku. Pokiaľ reference_text je '::' dve dvojbodky, potom sa k nadpisu článku pripojí medzera a dvojbodka, a výsledný nadpis sa vloží na miesto referencie ako hrubý a podtrhnutý text a za ním sa vloží medzerou oddelený obsah článku. Pokiaľ reference_text začína idetifikátorom interpretačnej funkcie, potom sa text za týmto identifikátorom, oddelený dvojbodkou, pripojí k nadpisu článku, a výsledný nadpis sa spracuje interpretačnou funkciou, a výsledok sa vloží na miesto referencie a za ním sa vloží medzerou oddelený obsah článku. Príklad {{.reference|uc.s.b.i.u: :}} - k nadpisu sa pridá ' :' a nadpis bude veľkými písmenami, hrubý, šikmý, preškrtnutý a podčiarknutý.

Referencie začínajúce dvojbodkou ':' - {{:param_name}} - predstavujú v systéme referencie na rozsiahly systém parametrov prístupných cez identifikátory parametrov. Referencia tohoto typu je interpretovaná tak, že na miesto referencie v obsahu sa vloží aktuálna hodnota parametra daného identifikátorom param_name. Parametre definované a podporované systémom sú popísané článku - content.server * content:formats:wik:references:system:parameters. Príklad : {{:db.user.fullusername}} - aktuálny užívateľ je : Guest. [edit]


Príklady
Systém v podstate nevyžaduje najprv zadať články obsahu, a potom články v ktorých sú tieto články použité (s výnimkou vzorov článkov). Systém umožňuje vytvárať obsah priebežne podľa potreby a zakladať potrebné články obsahu v reálnom čase, keď sa vyskytne potreba rozšírenia alebo doplnenia obsahu.

Založenie sekcie na koreni obsahu :

Ak sa vyskytne potreba založiť novú sekciu na koreni obsahu, potom stačí vložiť zodpovedajúcu referenciu : [[.:::section_subsection_link]] -  content.server:section_subsection_link * contents , článok uložiť, a kliknutím na linku vytvorenej referencie prejsť na založenie a zadanie obsahu novej sekcie.

Založenie podsekcie aktuálnej sekcie :

Ak sa vyskytne potreba založiť podsekciu aktuálnej sekcie, napríklad pri zadávaní obsahu (contents) sekcie, potom stačí vložiť zodpovedajúcu referenciu : [[..:::section_subsection_link]] -  content.server:section_subsection_link * contents , článok uložiť, a kliknutím na linku vytvorenej referencie prejsť na založenie a zadanie obsahu novej sekcie.

Založenie článku v aktuálnej sekcii :

Ak sa vyskytne potreba založiť článok v aktuálnej sekcii, ako odkaz alebo ako inline vloženú časť obsahu aktuálne písaného článku, potom stačí vložiť zodpovedajúcu referenciu : [[..section_article_link]] -  content.server * content:formats:wik:references:section_article_link, alebo inline - {{..section_article_inline}} -   , článok uložiť, a kliknutím na linku vytvorenej referencie prejsť na založenie a zadanie obsahu článku.

Založenie podčlánku aktuálneho článku na základe existujúceho obsahu článku :

Ak sa vyskytne potreba založiť podčlánok v aktuálnom článku na základe existujúceho obsahu, napríklad kôli samostatnému referencovaniu daného obsahu z iných alebo v iných článkoch, potom stačí vložiť zodpovedajúcu inline referenciu : {{..:subarticle_inline}} -   , skopírovať premiestňovanú časť obsahu do schránky, článok uložiť, a kliknutím na linku vytvorenej referencie prejsť na založenie článku a vloženie obsahu článku zo schránky.

Založenie vzoru - template :

Do novo vytvoreného článku na začiatok vložiť referenciu template : {{.templates/article_template}} -   , článok uložiť, a kliknutím na linku vytvorenej referencie prejsť na založenie a zadanie obsahu článku vzoru. Vo vzoroch článku je potrebné používať relatívne referencovanie, čím sa linky vo vzore budú interpretovať v kontexte referencie na tento vzor. Vzor môže obsahovať aj zložitejšie formátovanie častí stránky pomocou tabuliek a ďalších html tagov. Relatívne referencie interpretované v kontexte referencie vzoru spôsobia, že články týchto referencií budú založené v sekcii kontextu a nie v sekcii vzoru (template). Sekcie vzorov môžu byť podľa potreby a príslušnosti vzorov zakladané aj v sekciách ktorých sa týkajú, a nie len globálne, čo umožňuje relatívne referencovanie aj referencií na vzory článkov, a využitie všetkých vlastností systému referencovania aj vsúvislosti so vzormi článkov, rovnako ako v súvislosti s inline článkami. Rozdiel medzi template článkami a inline článkami je len v tom, že sa template články interpretujú v kontexte referencie a nie v kontexte obsahu. Template články preto musia absahovať relatívne referencie, aby mohli slúžiť ako vzory. Príkladom vzoru je článok biomedweb.developement * task.template. Obsah tohoto vzoru je interpretovaný v kontexte referencie v článkoch sekcie biomedweb.developement * contents.