Przykłady użycia

Obiektowy język definiowania dokumentów hipertekstowych i jego implementacja.

ObjectHTML : Program narzędziowy makedefs : Przykłady użycia

Poprzednia strona: Uruchamianie
Nastepna strona: Drzewo programu / kompilator

Pliki nagłówkowe wygenerowane przy pomocy makedefs mogą być wykorzystane w projektach CGI, specjalistycznych modułach serwera HTTP lub portalach zbudowanych w technologiach ASP, PHP. Stałe zdefiniowane przez program konwertujący będą użyte do generacji dynamicznych stron HTML.

Przykładowa zawartość pliku do konwersji:

<!--MYDEF htmlbegin-->
<html>
<head>
<title>tutuł strony</title>
</head>
<body>

<!--ENDMYDEF-->
<!--MYDEF htmlend-->
</body>
</html>

<!--ENDMYDEF-->

Plik wynikowy konwersji do C++ będzie miał następującą zawartość:

const char *htmlbegin = "<html>\n<head>\n<title>tutuł strony</title>\n</head>\n<body>\n"
const char *htmlend = "</body>\n</html>\n"

Korzystanie z tak zdefiniowanych stałych jest trywialne. Najprostszy program napisany w C i korzystający z interfejsu CGI do komunikacji z serwerem WWW może mieć następującą postać:

#include <stdio.h>
#include <index.h>

int main(int argc, char *argv[])
{
	printf("Content-type: text/html\n\n");
	printf("%s",htmlbegin);
	printf("Hello world\n");
	printf("%s",htmlend);
}

Dzięki takiemu rozwiązaniu kod HTML może być oddzielony od kodu programu. Zmiany w układzie strony nie będą wymagały żadnych zmian w programie, będzie potrzebna tylko jego rekompilacja.

Takie podejście to generacji dynamicznych stron przy wykorzystaniu stałych tekstowych ma jeszcze jedną dodatkową zaletę: szybkość działania. Proszę zauważyć, że stałe są bezpośrednio wypisywane na standardowe wyjście, które jest przekierowane do serwera WWW, a następnie wysyłane do przeglądarki. Dla kontrastu proszę wyobrazić sobie powszechnie stosowane rozwiązanie korzystania ze wzorców (ang. template), gdzie wzorzec strony HTML jest zapisany w pliku. Program korzystający z takiego wzorca musi na początku wczytać taki plik, a następnie go przetworzyć. Polega to na zamianie parametrów wzorca na właściwą treść, operacja zamiany części tekstu na inny jest dosyć czasochłonna.

Listopad 2000