PPWizard je preprocesor, který vám usnadní tvorbu a hlavně správu WWW stránek. Umožňuje centralizaci sdílených částí, jako jsou loga, navigační menu nebo emailové adresy a hotové WWW stránky účinně komprimuje vypuštěním přebytečných mezer. Zpracovávat s ním lze nejen HTML dokumenty, ale i XML soubory, soubory s kaskádovými styly, programové kódy a jiné ASCII textové soubory.

Internet je plný článků o HTML, CSS, textových a grafických editorech, ale články o kompletování webů, až na čestné výjimky, zcela chybí. Pravda, jazyku PHP je věnováno nepočítané množství seriálů, ovšem po jejich přečtení získává čtenář pocit, že se neobejde bez složitého databázového programování, jehož nezvládnutí může mít katastrofický vliv na stabilitu webového serveru. Navíc je pro jednoduché WWW stránky preprocesor efektivnější i praktičtější. Produkuje statické HTML stránky, které tak nejsou závislé na webovém serveru a prohlížet je lze i z pevného nebo kompaktního disku.

PPWizard jsem nezvolil náhodou. Jednak není moc z čeho vybírat, ale hlavně je PPWizard skutečnou jedničkou, která plní svůj úkol s nefalšovanou graciézností. Disponuje bohatou škálou funkcí a díky tomu s ním lze jednu věc tvořit více způsoby. Výborné také je, že pracuje na příkazové řádce. Může tak být součástí dávkových souborů, které automatizují nejen tvorbu a generování WWW stránek, ale i jejich upload na server.

Potěšující je skutečnost, že je PPWizard freeware. Australan Dennis Bareis jej původně vytvořil pro usnadnění své vlastní práce, ale později jej dal k dispozici i dalším uživatelům, za což si zaslouží náš dík.

Požadavky a instalace

PPWizard je naprogramován v jazyce REXX a je dodáván přímo ve zdrojovém kódu. Není nutné jej kompilovat a provozovat jej můžete na širokém spektru operačních systémů, Windows ani Linux nevyjímaje. Stačí si stáhnout příslušnou verzi interpretu jazyka REXX. Já budu pro jednoduchost vysvětlovat instalaci i práci na systému Windows, přičemž na dalších operačních systémech lze předpokládat ekvivalenci.

V zásadě existují tři varianty postupu, jak instalovat PPWizard:

  • Ze stránek PPWizardu si stáhněte kompletní spustitelný instalační balík pro Windows, který krom PPWizardu obsahuje i GNU interpret Regina jazyka REXX. Samotnou instalací se navíc integruje do kontextového menu Windows Exploreru, vyvolávaného pravým tlačítkem myši na typických příponách PPWizardu.
  • Ze stránek PPWizardu si stáhnete pouze samotný PPWizard. Jde o malý ZIP archiv o velikosti kolem 100 kB, který rozbalíte do libovolného adresáře. Pak si stáhnete interpret Regina jazyka REXX ve verzi podporované PPWizardem a nainstalujete jej. Nakonec si vytvoříte dávkový soubor, který vám umožní předat parametry projektu přes příkazovou řádku PPWizardu a ten pak postoupit interpretu. Podrobnosti o dávkových operacích jsou však již nad rámec tohoto článku.
  • Třetí možnost pro vás bude nejjednodušší a proto vám ji doporučuji. Stáhněte si předpřipravený archiv, který obsahuje v jednom balíku zdrojový soubor PPWizardu, interpret Regina jazyka REXX a zdrojové soubory malého ukázkového webu, ke kterému se budu odvolávat. PPWizard ani interpret Regina v tomto balíku není třeba instalovat. Stačí, když jej rozbalíte do libovolného prázdného adresáře. Tím instalace končí. Jen dávejte pozor, aby adresář, či některý z nadřazených adresářů, neměl v názvu mezeru či znak s diakritikou, protože PPWizard má při zpracování cest s těmito znaky problémy.

Stručný popis projektu

Myslím, že nejlépe se bude vysvětlovat PPWizard na praktickém příkladu. Proto se můžete rovnou pustit do prozkoumávání projektu. Celý je uložen v adresáři „PPW“. Souborem generuj.bat si zkuste webový projekt vygenerovat.

Co se při generování dělo? PPWizard vložil do každého zdrojového souboru s příponou „it“ obsah souboru macros.ih, samotný obsah pak zpracoval a výstup uložil do výstupního adresáře „WEB“ jako soubor s příponou HTML. Posléze do výstupního adresáře zkopíroval všechny soubory s příponou „css“ a „jpg“. Do adresáře „TEMP“ si uložil informace o časech poslední editace zdrojových souborů, aby příště generoval pouze změněné soubory. Nastavení všech těchto parametrů je uloženo v souboru project.ppw.

Souborům, ukládaným na výstup jako HTML, je vhodné dávat příponu „it“. Technicky to nutné není, ale jde o dobré doporučení. Stejně tak souborům, které chcete do „it“ souborů vkládat (takzvaně „includovat“), přiřazujte příponu „ih“. V našem příkladu máme jediný takový soubor macros.ih. Projekt je nastaven tak, aby se při zpracovávání vkládal automaticky na začátek každého „it“ souboru. V tomto souboru jsou uložené společné deklarace, jako je hlavička webu, menu, patička, jméno a email autora a podobně.

Makra

V textovém editoru (například v poznámkovém bloku) si otevřete soubor macros.ih a svoji pozornost zaměřte hned na první řádek: #define myName Jan Bien. Tím deklarujete jakýsi paměťový prostor, který se jmenuje myName a obsahuje mé jméno. Nyní přesuňte svou pozornost na předposlední řádek souboru index.it: <$myName>. Zde dojde, zjednodušeně řečeno, k vypsání obsahu paměťového prostoru myName.

Možná vás udivilo slovní spojení „paměťový prostor“ a vidíte v něm jen cosi, co programovací jazyky označují pojmem „proměnná“. Ve skutečnosti zde však jde o něco více. V index.it přejděte na 12. řádek (<$subTitle text="Dolor sit">) a v macros.ih na #define subTitle <h2>{$text}</h2>. Všimněte si, že jsme paměťovému prostoru subTitle při vyvolání předali navíc parametr „text“ s hodnotou „Dolor sit“. Paměťový prostor dokáže tento parametr využít odvoláním se na jméno parametru za znakem dolaru ve složených závorkách ({$text}), čímž se začíná podobat jazykem programátorů spíše jakési proceduře či funkci. V PPWizardu se tento paměťový prostor nazývá makro a tak i já budu na dalších řádcích používat právě tento termín.

Nyní vám je již jistě jasný i první a poslední řádek souboru, <$document title="Lorem ipsum"> a <$/document>. Makro document vloží celou hlavičku webu včetně navigace a makro /document patičku a řádné ukončení HTML souboru. V souboru macros.ih vás však čeká překvapení – definice makra je zde o něco složitější, dokonce je víceřádková:

#( ‚<?NewLine>‘
#define document
  definice makra document
  na více řádcích
#)

Začátek #( je na dalším řádku následován #define document. Každý další řádek je již jedním řádkem makra document až po ukončení definice na řádku #). Tajemná konstrukce '<?NewLine>' určuje, jak má makro zacházet s konci řádků. Kdybyste tuto konstrukci u makra neuvedli, vložilo by se při vyvolání celé do jednoho řádku.

K čemu to je?

Myslím, že i z takto malého příkladu je vidět, jak efektivní PPWizard je. A je nejen efektivní, ale i velice mocný. Navštivte weby Mraveniště či Sova v síti – věřte nebo ne, oba jsou tvořeny kompletně v PPWizardu!

Odkazy, zdroje

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Žádný příspěvek v diskuzi

Odpovědět