AmigaGuideMichal Kára
Možná píšete programy a chcete si k nim vytvořit jinou dokumentaci než jenom
obyčejný textový soubor. Od verze 2.0 byl na Amize zaveden systém datatypů a jako jeden z prvních i
hypertextový formát: AmigaGuide. Hypertext
O tom, co je to hypertext již bylo napsáno mnohé. Proto jen stručně.
Obyčejný dokument na papíře nebo v textovém souboru je víceméně lineární. Je
sice možno odkazovat se na jiná místa v něm i na jiné dokumenty, ale vyhledávání
odkazů je dosti pracné, a to jak listováním v knížkách u klasické podoby, tak i
procházení a hledání v souboru. Ovšem počítače jsou tady aby člověku pomáhaly
řešit problémy (většinou sice takové, které by bez nich nebyly...).
Hypertext je tedy něco, co místo slovních odkazů jinam obsahuje odkaz, kde se má
daná informace hledat. v nějaké počítači srozumitelné formě. Tomuto údaji se
říká LINK.
V současné době nejpoužívanějším hypertextovým formátem je HTML. To je klasickým
příkladem jednoho dokumentu s odkazy na jiné. Na Amize se používá jako
standardní hypertextový formát AmigaGuide. Ten, jak poznáte později, není
„klasickým“ hypertextem, ale dělí text do uzlů. AmigaGuide Dokument
Dokument v AmigaGuide je prostý text vytvořený kterýmkoli programátorským
editorem. Kromě vlastního textu dokumentu obsahuje také řídící příkazy. Ty
začínají vždy znakem @ („zavináč“).
Aby se poznalo, že jde o dokument v AmigaGuide, musí být na začátku prvního
řádku textu uveden příkaz @DATABASE (viz níže).
Vlastní text je potom členěn na uzly (nodes). Každý uzel má své jméno a případně
nadpis. Na obrazovce se zobrazí vidy právě jeden uzel. Při načtení dokumentu ve
formátu AmigaGuide se vždy jako první zobrazí uzel s názvem „MAIN“. Příkazy AmigaGuide
Jak již jsem uvedl, příkazy AmigaGuide začínají zavináčem. Přímo za ním je
jméno příkazu a pak případné argumenty oddělené mezerami nebo tabelátory. Pokud
je v argumentu mezera, je možno jej uzavřít do uvozovek. Jak však dostat do
argumentu uvozovku nevím...
Každý uzel (respektive jeho text) je uzavřen mezi příkazy @NODE a @ENDNODE.
Podle umístění vzhledem k těmto příkazům se dají příkazy AmigaGuide rozdělit do
tří kategorií:
- Příkazy globální. Musí být vně textu uzlů (příkazů @NODE a @ENDNODE) a musí
být vždy od začátku řádky.
- Příkazy uzlu. Musí být mezi příkazy @NODE a @ENDNODE. Také musí být vždy na
začátku řádky.
- Příkazy změny atributů. Tyto příkazy musí být uvnitř textu uzlu (příkazů @NODE
a @ENDNODE), ale mohou začínat kdekoli. Na rozdíl od ostatních příkazů, které
jsou ukončeny koncem řádku, jsou tyto příkazy ve složených závorkách:
@{PŘÍKAZ[ARGUMENT1 [ARGUMENT2...]]}. Hranaté závorky se do textu nepíší. Jen
označují, že počet argumentů není obecně pevně dán.
V dalším budu argumenty uzavírat mezi lomené závorky: „<Argument>“. Ty se tam
nepíší, jen označují začátky a konce názvů argumentů.
Kromě příkazu @DATABASE nejsou žádné příkazy udávající copyright, jméno autora
atd. povinné, není tedy nutné je v dokumentu vůbec mít. Jedinou další nutnou
složkou dokumentu, je uzel se jménem MAIN. Verze AmigaGuide
Ještě malou poznámku o verzích. AmigaGuide se vyskytuje ve třech verzích. Na
systémech 2.0 a 2.1 je to verze 36 (V36). (Možná je to na 2.1 verze 37, ale v
tom případě se V36 a V37 neliší. Nevím o žádném rozdílu.) Majitelé A1200 mají
potom většinou instalován systém 3.0 a s ním verzi V39. Někteří mohou mít
WorkBench 3.1 na něm je V40. Bohužel, většina rozumných příkazů funguje až ve
verzi 40... Globální příkazy
@$VER: <AmigaDOS version string> - Tento příkaz je AmigaGuide ignorován.
Slouží pro příkaz AmigaDOSu version. Pokud zadáte z CLI příkaz version <soubor>,
je provedeno několik testů, mimo jiné se soubor prohledává, zda obsahuje právě
řetězu „$VER:“. Pokud ano, řádek po něm se vypíše.
@(C) <Copyright> - Opět je při zobrazování ignorován. Argument příkazu může
obsahovat copyright.
@AUTHOR <Autor> - Také se nezobrazuje. Argument by měl obsahovat informace o
autorovi dokumentu. Ty jsou ale stejně většinou obsaženy v některém uzlu aby je
bylo možné získat bez prohlížení dokumentu editorem.
@DATABASE <Jméno> - Tento příkaz musí být uveden na první řádce dokumentu, jinak
systém nepozná, že je ve formátu AmigaGuide. Argumentem by mělo být jméno
dokumentu. To se ale ignoruje, argument nemusí být dokonce uveden vůbec žádný.
@ENDNODE - Označuje konec textu uzlu. Po něm mohou opět následovat globální
příkazy nebo další příkaz @NODE, který začne text dalšího uzlu
@FONT <Jméno> <Velikost> Umožňuje nastavit písmo (font), kterým se bude dokument
zobrazovat. Nedoporučuji jej příliš používat, ledaže by jste si byli jisti, že
je uvedené písmo instalováno. Stejně si nebudete moci být úplně jisti, zda nemá
uživatel nastavené vysoké rozlišení, takže by váš dokument nebyl k přečtení...
Menší podraz spočívá v tom, že jméno písma se uvádí včetně přípony .font, takže
třeba „@FONT topaz.font 11“. Jinak příkaz akceptuje skoro všechna písma včetně
vektorových, pouze se občas chová trochu divně. Jak jsem již napsal, raději se
mu vyhněte.
@HEIGHT <Velikost> - Má to být počet řádek, ale nezdá se mi, že by tento příkaz,
měl nějaký efekt.
@HELP <Adresa> - Pokud tento příkaz neuvedete, bude tlačítko „Help“ zobrazovat
vždy dokument o používání AmigaGuide (Uložený v souboru
„HELP:English/Sys/Amigaguide.guide“, popřípadě jiném adresáři podle toho, jaký
jazyk máte zapnut). Pomocí příkazu @HELP je možno přikázat programu aby po
kliknutí na tlačítko HELP zobrazoval jiný dokument. O adresách dokumentů více u
příkazu „@ {Text LINK Adresa [Řádek]}“ v sekci „Příkazy změny atributů“.
@INDEX <Adresa> - Standardně je tlačítko „Index“ zašedlé, není možné jej
používat. Příkazem @INDEX je možno nastavit uzel, který je indexem dokumentu.
Poté bude možno se kliknutím na toto tlačítko dostat na tento uzel. Nikdo
samozřejmě nekontroluje, zda je daný uzel indexem...
@MACRO <Jméno> <Makro> - Umožňuje definovat makra. Makro se používá podobně jako
příkaz pro změnu atributů. Může mít také argumenty. Ty se označují v jeho
definici postupně $1 pro první argument, $2 pro druhý atd. Více viz text
ukázkového dokumentu.
@MASTER <Jméno> - Argument tohoto příkazu určuje dokument ze kterého vznikl
tento text. Používá se tehdy, pokud nebyl dokument napsán přímo v AmigaGuide,
ale byl do něj zkonvertován z nějakého jiného hypertextového formátu, například
HTML nebo TexInfo.
@NODE <Jméno> <Nadpis> - Tímto příkazem se začíná text uzlu. Argument Jméno je
jméno uzlu, které se používá při odkazech na tento uzel v dokumentu (LINKY).
Nadpis je nepovinný argument. Není-li uveden, použije se místo něj obsah
argumentu Jméno. Nadpis se použije jako jméno okna, v němí se AmigaGuide
dokument zobrazuje. Jak jsem již uvedl, není mi známo, jak do argumentu zadat
uvozovky. Proto, je Nadpis nemůže obsahovat, většinou se používá apostrofů ()
apod.
@ONCLOSE <Skript> - Určuje ARexxový skript, který se provede při zavření tohoto
dokumentu. Hodnota, kterou vrátí, se naprosto ignoruje.
@ONOPEN <Skript> - Určuje ARexxový skript, který se provede při otevření
dokumentu. Pokud vrátí jinou hodnotu než 0, dokument nebude otevřen.
@REM <Poznámka> nebo @REMARK <Poznámka> - Argumenty těchto příkazů se ignorují a
tyto příkazy jsou tedy předurčeny k zapisování poznámek do textu. Na tomto místě
se sluší poznamenat, že i text, který je zapsán mimo uzly, se ignoruje
(samozřejmě pokud to není příkaz) a toho lze také využívat k psaní poznámek. Ale
v textu uzlů je nutno využít služeb jednoho z příkazů @REM nebo @REMARK.
@SMARTWRAP - Standardně se při zobrazování dokumentu v AmigaGuide dodržuje
přesně řádkování. Řádky jsou ukončeny tak jako jsou ve zdrojovém textu
dokumentu. Ovšem to nemusí vypadat dobře. Jednak díky použití písma s nestejnou
šířkou písmen, jednak proto, že příkazy se nezobrazují. ale když dokument
píšete, samozřejmě je na obrazovce máte. Upravit tedy ručně dokument tak, aby
vypadal dobře je dosti náročně na čas a každá změna v něm rovněž.
Takže je tu možnost specifikovat pro dokument, že si jej má zformátovat sám
zobrazovač AmigaGuide. Jedním z módů je @WORDWRAP, o němž bude napsáno níže.
Druhým je @SMARTWRAP. Konce řádků ve zdrojovém dokumentu se v tomto módu
ignorují, respektive považují za mezeru. Oproti očekávání se více mezer
nepovažuje za jedno, ale poctivě se zobrazí jako více mezer.
Odstavce se oddělují prázdným řádkem. Řádek musí být opravdu prázdný, nesmí na
něm být ani žádný příkaz a dokonce ani mezera.
@TAB <Velikost> - Mění rozteč tabelátorů. Standardně jsou tabelátory rozmístěny
vidy na každé osmé pozici. Pomocí tohoto příkazu je možné rozteč změnit na
libovolnou hodnotu, dokonce i nulovou nebo zápornou. Záporné hodnoty sice mají
zajímavé efekty, ale asi je nevyužijete. Konečně, můžete si to vyzkoušet.
@WIDTH <Šířka> - Teoreticky by měl tento příkaz měnit šířku stránky. Nepovedlo
se mi však zjistit, jeho efekt ani na formátování (@WORDWRAP, @SMARTWRAP), ani
na centrování čí zarovnávání vpravo (@{JCENTER}, @{JRIGHT}). Opravdu tedy nevím,
jak přinutit AmigaGuide zformátovat text do sloupečku o 40 znacích...
@WORDWRAP - Druhý ze způsobů formátování, ten méně použitelný. Konce řádků zde
totiž znamenají konce odstavců. Každý odstavec je tedy jeden více či méně dlouhý
řádek. Jednak se takový text špatně edituje a jednak je WORDWRAP podporován až
od verze systému 3.0 (V39), takže na starších systémech se zobrazí dlouhé řádky,
což vypadá dosti úděsně. Pokud použijete @SMARTWRAP, můžete si dokument alespoň
trochu předformátovat aby se dal číst, a finální úpravu nechat na zobrazovači,
pokud to umí.
A to je právě ten problém. @SMARTWRAP je totiž podporován až od verze 3.1 (V40),
kterou má jen málo lidí. A teď se rozhodujte, co použít. Já bych byl osobně pro
to dokument jakž takž upravit a použít @SMARTWRAP, ale rozhodně nelze počítat s
tím, že by více lidí vidělo dokument zformátovaný smartwrapem než v původní
podobě. Příkazy uzlu
- Tento příkaz se neuvádí zavináčem. Naopak slouží k tomu, aby bylo možno
zapsat do dokumentu zavináč i na začátku řádky a před otevírací složenou
závorkou. Zde je v tom mírný nepořádek. Podle mne by mělo KAŽDÉ použití zavináče
(kromě za zpětným lomítkem) znamenat začátek příkazů. Nebyl-li by za ním příkaz,
byla by to chyba.
Ovšem současná implementace považuje zavináč za začátek příkazu právě pouze na
začátku řádky a před otevírací složenou závorkou, jinde se před něj zpětné
lomítko dávat nemusí. Naopak, chcete-li do textu zařadit zpětné lomítko, musíte
před něj dát ještě jedno. Tedy sekvence „\“ se změní na „“, „\\“ na „\“;
apod.
Pokud uvedete zpětné lomítko před jiným znakem, také se nebude interpretovat.
Jeho uvedením před tabelátorem či koncem řádku lze dosáhnou toho, že tento se
nebude interpretovat nýbrž se ve výsledném textu zobrazí znak z písma s
příslušným kódem (9 nebo 10). Ve standardním topazu to bude pro oba dva případy
takový „obdélníček“.
Je ale zajímavé, že toto nelze provést s uvozovkou v argumentu. Nechápu proč.
Jak jsem již uvedl, je v tom v AmigaGuide „mírný nepořádek“.
@FONT <Jméno> <Velikost> - Funguje stejně jako globální verze, ale zná účinek
jenom na tento uzel. Nezáleží, kde příkaz leží, vždy má účinek na celý text
uzlu, t.j. i na ten před ním. Stejně se chovají i ostatní příkazy uzlu, proto to
u nich již nebudu uvádět. Pokud je více stejných příkazů uzlu v textu jednoho
uzlu, má účinek vždy ten poslední.
@HELP <Adresa> - Jako globální verze, ale má účinek pouze na uzel ve kterém je
uveden.
@INDEX <Adresa> - Jako globální verze, ale má účinek pouze na uzel ve kterém je
uveden.
@KEYWORDS <Klíčová slova> - V současné verzi se nepoužívá. Původně měl asi
sloužit k prohledávání databáze nebo sestavování indexu, ale nikdy k tomu
nedošlo.
@ MACRO <Jméno> <Makro> - Jako globální verze, ale má účinek pouze na uzel ve
kterém je uveden.
@NEXT <Adresa> - Určuje uzel, který se zobrazí pokud uživatel klikne na tlačítko
„Browse >“. Není-li tento příkaz uveden, bude to uzel který následuje ve
zdrojovém dokumentu.
@ONCLOSE <Skript> - ARexxový program, který se provede, pokud uživatel skončí
prohlížení tohoto uzlu. Jeho návratový kód (return value) se ignoruje.
@ONOPEN <Skript> - ARexxový program, který se provede pokud si uživatel chce
prohlédnout text tohoto uzlu. Je-li návratový kód různý od nuly, text se
nezobrazí a uživatel zůstane na předchozím uzlu.
@PREV <Adresa> - Určuje uzel, který se zobrazí pokud uživatel klikne na tlačítko
„Browse <“. Není-li tento příkaz uveden, bude to uzel který v dokumentu
předchází tomuto.
@SMARTWRAP - Jako globální verze, ale platí pouze pro tento uzel.
@TAB <Velikost> - Jako globální verze, ale platí pouze pro tento uzel.
@TITLE <Nadpis> - Určuje nadpis uzlu (viz druhý argument příkaz @NODE). Pokud
byl použit příkaz @TITLE, ignoruje se případný druhý argument příkazu @NODE a
použije se místo něj argument @TITLE.
@TOC <Adresa> - Adresa uzlu v němž je obsah (Table Of Contents). Není-li tento
příkaz v uzlu uveden, je za obsah považován uzel „MAIN“. Na obsah se uživatel
může přesunout kliknutím na tlačítko „Contents“. Pokud se zobrazuje samotný uzel
„MAIN“, je tlačítko „Contents“ zešedlé.
@WORDWRAP - Jako globální verze, ale platí pouze pro tento uzel. Příkazy změny atributů
Tyto příkazy účinkují na text uzlu od svého místa dále až do konce nebo do
příkazu který jejich účinek zruší nebo změní.
@{<„Text“> <Příkaz> <Argumenty příkazu>} - Vytvoří tlačítko (gadget) a do něj
vepíše Text. Při kliknutí na tlačítko se provede akce specifikovaná Příkazem
(možné příkazy viz níže). Text musí být v uvozovkách! Většinou jsou prvním a
posledním znakem textu mezery, nebol tlačítko s textem těsně k okrajům nevypadá
příliš dobře.
Současný AmigaGuide neumí udělat tlačítko přes více řádků. Je-li příliš dlouhé,
bude prostě přečnívat a to i když je zapnutý @WORDWRAP nebo @SMARTWRAP.
Možné příkazy a jejich argumenty jsou následující:
@{<„Text“> ALINK <Adresa uzlu> <Řádek>} - Měl by zobrazit uzel do nového okna.
Bohužel od verze 3.0 (V39) výše funguje jako LINK (viz níže), tedy zobrazuje
text do starého okna. Nyní něco k adresám uzlu:
Na uzly ve stejném dokumentu (stejném souboru) se lze odkazovat prostě pouze
jejich jmény. Žádný problém. Ale můžete se odkazovat i do jiných souborů. V tom
případě uvedete jméno souboru a za ním lomítko a jméno uzlu který chcete
zobrazit. Jméno musí být uvedeno i tehdy, pokud chcete zobrazit uzel „MAIN“.
Takže například uvedete odkaz „HELP:English/Sys/Amigaguide.guide/Main“. Ve
jménech uzlů se nerozlišuje velikost písmen. Lze tedy psát „MAIN“, „main“,
„Main“, „mAiN“ apod.
Se zavedením datatypů (od verze 3.0 (V39)) je možno odkazovat se i na jiný typ
dat než na dokumenty v AmigaGuide. Například nemůžete mít v dokumentu přímo
obrázky, ale odkaz na ně může ukazovat. Ovšem pozor, PODRAZ! I za jménem obrázku
totiž musíte uvést jméno „uzlu“ a to konkrétně „MAIN“, jinak se vám obrázek
nenatáhne! Takže chcete-li zobrazit obrázek „DH0:Pictures/Datel.iff“, musíte se
na něj odkázat jako na „DH0:Pictures/Datel.iff/Main“. Toto funguje ve VŠECH
odkazech, takže indexem vašeho dokumentu může být klidně obrázek.
Ale zpět k příkazu ALINK. Jako nepovinný parametr mu lze zadat i číslo řádky v
uzlu, od které se má zobrazit. Pokud máte například nějaký seznam pojmů, můžete
se odkázat na řádek v něm a uživatel nebude muset nelistovávat příslušný pojem
na který chtěl skočit. Ale pozor, i zde číhá zrada.
Příslušný řádek, na který se odkážete, nebude totiž prvním řádkem na stránce. Je
pouze zaručeno, že bude na stránce, která se zobrazí. Máte-li uzel s pěti řádky
a obrazovka má řádků dvacet, nelze AmigaGuide donutit aby zobrazil tento uzel
jinak než od prvního řádku. Udávat řádek v odkazu flink) má tedy smysl pouze
pokud je text uzlu delší než jedna stránka.
@{<„Text“> CLOSE} - Měl by zavírat okno otevřené pomocí příkazu ALINK. Ale tento
příkaz nefunguje. Pokud uživatel klikne na tlačítko s tímto příkazem, AmigaGuide
„zmrtví“ a dá se pouze zavřít. Takže nepoužívat.
@{<„Text“> LINK <Adresa uzlu> <Řádek>} - Zobrazí daný uzel od daného řádku.
Parametr Řádek je nepovinný. Viz komentáře u příkazy ALINK.
@{<„Text“> RX <Skript>} - Po kliknutí na tlačítko spustí ARexxový skript. Jeho
návratová hodnota se ignoruje.
@{<„Text“> RXS <ARexx>} - Po kliknutí na tlačítko se druhý argument vezme za
ARexxový skript a spustí se. Například: @{„CED dopředu „RXS“ address rexx ced
cedtofront“} dá do popředí CED na kliknutí na tlačítko.
@{<„Text“> SYSTEM <Příkaz>} Spustí daný příkaz AmigaDOSu nebo program.
@{<„Text“> QUIT} - Má skončit prohlížení dokumentu. Ale nefunguje, má stejné
efekty jako CLOSE.
@{AMIGAGUIDE} - Vloží to textu uzlu text „AMIGAGUIDE(R)“ (bez uvozovek).
@{APEN <N>} - Nastaví číslo barvy, kterou se bude zobrazovat písmo. Nedoporučuji
příliš používat, neboť se musíte spoléhat na to, jak budou barvy nastaveny a to
nikdy není jisté. Snad jenom pokud zobrazujete AmigaGuide na obrazovce svého
programu...
@{B} - Zapíná tučné písmo (bold). Není kumulativní (nested), takže jeden příkaz
má přesně stejný účinek jako několik za sebou: první příkaz @{UB} tučné písmo
vypne.
@{BG <Barva>} - Mění barvu pozadí. Pokud chcete přepínat barvy, používejte spíše
tento příkaz a @{FG} než
@{APEN} a @{BPEN}. Udávané barvy mají symbolická jména. Já zde uvedu i
souvislost s nastavením v preferencích „Palette“.
Text - Standardní barva používaná pro text. Nelze přestavit, je to pravděpodobně
vždy barva číslo 1 .
Shine - Světlý text. V preferencích je to barva „Bright Edges“ („Světlé rohy“).
Shadow - Tmavší (stínový) text. V preferencích je to barva „Dark Edges“ („Tmavé
rohy“).
Fill - Barva používaná k vyplňování. Použije se barvu nastavená v preferencích
pod jménem „Active Windows Title Bar“ („Barva rámečku aktivního okna“).
FillText - Další barva na vyplňování. V menu je pod jménem „Active Window
Titles“ („Barva nadpisu (titulku) aktivního okna“).
Background - Barva pozadí. Pravděpodobně se nedá změnit, je to vždy barva číslo
0.
Highlight - Důležitý text.
V preferencích se jmenuje „Important Text“ („Důležitý text“).
@{BODY} - Vysvětlení tohoto příkaz je složitější. Mějme uzel s nastaveným
formátováním, je jedno zda @SMARTWRAP nebo @WORDWRAP. Pokud do něj potřebujeme
vložit text v němž si přejeme zachovávat konce řádků, použijeme příkaz @{CODE}
(viz dále). Poté potřebujeme obnovil původní způsob formátování. @SMARTWRAP a
@WORDWRAP jsou příkazy uzlu a mají účinek na celý uzel, nedají se tedy použít.
Zde nám pomůže příkaz, @{BODY}, který zruší účinek @{CODE} a obnoví Formátování.
@{BPEN <N>} - Nastaví číslo barvy, která se bude používat na pozadí. Opět
nedoporučuji používat, viz příkaz @{APEN}.
@{CLEARTABS} - Zruší účinek příkazu @{SETTABS}.
@{CODE} - Pokud je nastaveno formátování @SMARTWRAP nebo @WORDWRAP, tento příkaz
zruší jeho účinek. Od něj dále tedy budou striktně dodržovány konce řádků tak
jako ve zdrojovém textu dokumentu. Obnovit opět formátování lze příkazem
@{BODY}.
@{FG <Barva>} – Mění barvu textu. Barva a poznámky - viz příkaz @{BG}
@{I} - Zapne skloněné písmo (italiku). Podobně jako u @{B} není jeho účinek
kumulativní.
@{JCENTER} - Zapne centrování textu. Centrování (stejně jako zarovnávání vpravo)
nezávisí na formátování, funguje všude. Příkaz @{LINDENT} (viz níže) nemá na
@{JCENTER} ani na @{JRIGHT} vliv. Tedy, nemá pokud nezapnete @SMARTWRAP nebo
@WORDWRAP. Více u příkazu {LINDENT}
@{JLEFT} - Zapne zarovnávání textu k levému okraji. Toto je standardní
nastavení.
@{RIGHT} -Zapne zarovnávání textu vpravo. Možné vedlejší efekty viz příkaz
@{LINDENT}.
@{LINDENT <N>} - Na začátek každé řádky bude vloženo N mezer, řádek bude tedy
odsazen. Viz. @{PARI}. Funguje jak pro normální formátování padle řádků ve
zdrojovém textu tak pat @SMARTWRAP a @WORDWRAP.
Následující platí pro standardní formátování: Nastavíte-li N poměrně velké (cca
60), můžete kombinací s centrováním nebo zarovnáváním vpravo dosáhnout některých
zajímavých efektů. Například ačkoli bude nastaveno zarovnávání vpravo, text bude
přes pravý okraj atd.
Ani nezkoušejte nastavit @{LINDENT} nebo @{PARI} pokud máte nastavené centrování
nebo přirážení vpravo. Výsledné efekty jsou dosti nepoužitelné.
Také vám neradím zkoušet nastavit @{LINDENT} záporný. Mně se podařilo tímto
AmigaGuide zhroutit tak, že mi nastřílela po paměti a já musel zresetovat Amigu.
A nakonec, ještě jeden podraz. Příkazy @{LINDENT}, @{PARI} a @{PARD} totiž
začínají působit až na dalším řádku (výstupu). Podívejte se jaké kejkle jsem
musel provádět v příkladu, abych dosáhl toho, co chci.
@{LINE} - Má smysl pouze při nastaveném @SMARTWRAP nebo @WORDWRAP. Na tomto
místě se řádek násilně zlomí a dále se bude pokračovat na nové řádce.
@{PAR} - Vloží to textu začátek nového odstavce. Ve všech módech (i při
standardním formátování) se chová stejně. Započne na novém řádku a na jeho
počátek vloží počet mezer který je součtem nastavení PARI a LINDENT (viz
příslušné příkazy!.
@{PARD} - Nastaví LINDENT na 0, PART na 0, APEN na 1, BPEN na 0 a font na
standardní (globální).
@{PART <N>} - Nastavuje hodnotu, která se přičte k LINDENT vždy na začátku
odstavce a příslušný počet mezer se vloží na začátek řádky. Tato hodnota může
být i záporná, pak je první řádek odstavce blíže u okraje než zbytek. Samozřejmě
má význam a používá se pouze pokud AmigaGuide může rozlišit kde je začátek
odstavce, tedy pokud je nastaven @SMARTWRAP nebo @WORDWRAP či pokud při
standardním formátování použijete příkaz @{PAR}.
@{PLAIN} - Ruší veškeré tučné či skloněné písmo a podtrhávání. Jako kdyby jste
zadali @{UB}@{UI}@{UU}.
@{SETTABS <Pozice1 > <Pozice2> <Pozice3> ... } - Umožňuje mít proměnnou rozteč
mezi pozicemi tabelátoru. Nastavuje přímo sloupce na kletých se zastaví
tabelátor. Za těmito pozicemi platí nastavení příkazem @TAB. Máme-li například
nastaveno @TAB 5 a @{SETTABS 3 5 9 11}, budou pozice tabulátoru 3, 5, 9, 11, 16,
21, 26, ...
@{TAB} - Vloží do výstupu znak s kódem 9. Má stejný účinek jako zpětné lomítko a
ihned za ním tabelátor.
@{U} - Zapne podtrhávání. Má stejné vlastnosti jako @{I} a @{B}.
@{UB} - Vypne tučné písmo.
@{UI} - Vypne skloněné písmo (italika).
@{UU} - Vypne podtrhávání. GLOBÁLNÍ PŘÍKAZY
$VER: |
V36 |
(C) |
V36 |
AUTHOR |
V36 |
DATABASE |
V36 |
ENDNODE |
V36 |
FONT |
V36 |
HEIGHT |
V36 |
HELP |
V36 |
INDEX |
V36 |
MACRO |
V40 |
MASTER |
V36 |
NODE |
V36 |
ONCLOSE |
V40 |
ONOPEN |
V40 |
REM |
V36 |
REMARK |
V36 |
SMARTWRAP |
V40 |
TAB |
V40 |
WIDTH |
V36 |
WORDWRAP |
V39 |
PŘÍKAZY UZLU
|
V36 |
FONT |
V36 |
HELP |
V36 |
INDEX |
V36 |
KEYWORDS |
Nefunguje |
MACRO |
V40 |
NEXT |
V36 |
ONCLOSE |
V40 |
ONOPEN |
V40 |
PREV |
V36 |
SMARTWRAP |
V40 |
TAB |
V40 |
TITLE |
V36 |
TOC |
V36 |
WORDWRAP |
V39 |
PŘÍKAZY ZMĚNY ATRIBUTŮ
{Text ALINK} |
Pouze V36 |
{Text CLOSE} |
Pouze V36 |
{Text LINK} |
V36 |
{Text RX } |
V36 |
{Text RXS } |
V36 |
{Text SYSTEM } |
V36 |
{Text QUIT} |
Pouze V36 |
{AMIGAGUIDE} |
V40 |
{APEN} |
V40 |
{B} |
V39 |
{BG} |
V40 |
{BODY} |
V40 |
{BPEN} |
V40 |
{CLEARTABS} |
V40 |
{CODE} |
V40 |
{FG} |
V40 |
{I} |
V39 |
{JCENTER} |
V40 |
{JLEFT} |
V40 |
{JRIGHT} |
V40 |
{LINDENT} |
V40 |
{LINE} |
V40 |
{PAR} |
V40 |
{PARD} |
V40 |
{PART} |
V40 |
{PLAIN} |
V40 |
{SETTABS} |
V40 |
{TAB} |
V40 |
{U} |
V39 |
{UB} |
V39 |
{UI} |
V39 |
{UU} |
V39 |
Příklad
Aby se tento článek neskládal jen z teoretického tlachání, připravil jsem
pro vás příklad, ve kterém uvidíte praktické použití příkazů. V nějakém
programátorském textovém editoru (CED, GoldED) jej přepište a uložte. Pak jej
zobrazte bud pomocí příkazu AmigaGuide (u systémů verze 2.0 a 2.1) nebo
Multiview (na systémech 3.0 a vyšších).
Na PD disku je příklad uložen jako soubor Example.guide. @DATABASE Example.guide
@AUTHOR Michal Kara, [email protected]
Text mimo uzly se ignoruje. Proto si sem mazu psat co chci.
@NODE Main „Hlavni menu“
@{„Ukazka zmeny písma“ LINK Písmo}
@{„Ukazka zmeny barvy a pouziti makra“ LINK „Barva a makro“}
@{„Formatovani“ LINK Formatovani}
@ENDNODE
@NODE Písmo „Ukazka písma“
@FONT topaz.font 11
Tento text je vetsi nez v ostatních uzlech. Je to zpusobeno tím, ze byl pouzit
prikaz @{B}@FONT topaz.font 11 @{UB}.
@ENDNODE
@NODE „Barva a makro“
@MACRO ColorTest „$1:@{FG $1} $1 @{FG Text}“
@{B}UPOZORNENI:@{UB} Tento priklad funguje pouze na systtmu 3.1.
V tomto uzlu uvidíte jednak nuzné barvy a jednak pouziti makra. Je defínovano
makro @{B}@MACRO ColorTest „@{FG $1} $1 @{FG Text}“@{UB}, ktere je pak
pouzito na ukazku ruznych barev.
@{ColorTest Text}
@{ColorTest Shine}
@{ColorTest Shadow}
@{ColorTest Fill}
@{ColorTest FillText}
@{ColorTest Background}
@{ColorTest Highlight}
Muzete zkusit zmenit nastaveni v preferencích „Color“ a uvidíte jak se budou
menu barvy. Nezapomente, ze musíte mít toto okno zobrazeno na WorkBenchi a také
jej musíte pokazde zavrit a znovu nahnat.
@ENDNODE
@NODE Formatovani
@WORDWRAP
@{B}UPOZORNENI:@{UB} Tento priklad funguje uplne pouze na Amize 1200 nebo 4000.
@{LINDENT 2}@{PARI 3}@{PAR}Tento odstavec ma nasteveny LINDENT na 2 a PART na 3.
Jeho první radek je tedy odsazen 5 mezer od okraje a dalsi radky pouze dve
mezery od levého okraje.
@REM Od prikazu @{LINDENT} musí byt predchozi text cely na jednom radku !
@{PARD}@{JCENTER}
Nyní vídite ukazku centrovaní. Tento text je také zalaman pomoci prikazu
@WORDWRAP, presto je centrovan.
@{JRIGHT}Mala ukazka zarovnavani vpravo.
@{CODE}@{JLEFT}Potrebujete-li vepsat nejaky text. napriklad cast programu do
automaticky tormatovaneho textu zaridi to prikaz @{CODE}.
@{BODY}A prikaz @{BODY} opet obnoví povodni automatické formatovani napsaného
textu uzlu. Teú je PART a INDENT pomoci @{PARD} nastaven na nulu. @REM Od
prikazu @{BODY} musí byt predchozi text cely na jednom radku!
@ENDNODE Vytlačiť článok
Pozn.: články boli naskenované ako text a preto obsahujú aj zopár chýb. Taktiež neručíme za zdrojové kódy (Asm, C, Arexx, AmigaGuide, Html) a odkazy na web. Dúfame, že napriek tomu vám táto databáza dobre poslúži.
Žiadna časť nesmie byť reprodukovaná alebo inak šírená bez písomného povolenia vydavatela © ATLANTIDA Publishing
none
|