Wg mnie jednym z lepszych rozwiązań jest skorzystanie z czystego języka, w którym tworzysz stronę www, np. w php ja kiedyś zrobiłem tak:
Strona gółowna w pliku "/index.php":
<?php
$page_title = 'Tytuł strony głównej';
$page_description = 'Opis strony głównej';
$page_keywords = 'słowa kluczowe strony głównej';
$main_page_link = '/';
$second_page_link = '/druga-strona/'
$third_page_link = '/trzecia-strona/'
$page_content = 'główna treść strony (pobierana np. z bazy danych sql)';
require_once('/pattern.php');
?>
Druga strona w pliku "/druga-strona/index.php":
<?php
$page_title = 'Tytuł strony drugiej';
$page_description = 'Opis strony drugiej';
$page_keywords = 'słowa kluczowe strony drugiej';
$main_page_link = '../';
$second_page_link = '/'
$third_page_link = '../trzecia-strona/'
$page_content = 'główna treść strony (pobierana np. z bazy danych sql)';
require_once('../pattern.php');
?>
Trzecia strona w pliku "/trzecia-strona/index.php":
<?php
$page_title = 'Tytuł strony trzeciej';
$page_description = 'Opis strony trzeciej';
$page_keywords = 'słowa kluczowe strony trzeciej';
$main_page_link = '../';
$second_page_link = '../druga-strona/'
$third_page_link = '/'
$page_content = 'główna treść strony (pobierana np. z bazy danych sql)';
require_once('../pattern.php');
?>
Wzorzec (szablon lub szkielet) naszej witryny www w pliku "/pattern.php":
<!doctype html>
<html lang="pl">
<head>
<meta charset="utf-8" />
<title><?php echo $page_title; ?></title>
<meta name="description" content="<?php echo $page_description; ?>" />
<meta name="keywords" content="<?php echo $page_keywords; ?>" />
</head>
<body>
<header>
<nav>
<a href="<?php echo $main_page_link; ?>">Strona główna</a>
<a href="<?php echo $second_page_link; ?>">Strona druga</a>
<a href="<?php echo $third_page_link; ?>">Strona trzecia</a>
</nav>
</header>
<main>
<h1><?php echo $page_title; ?></h1>
<p><?php echo $page_content; ?></p>
</main>
</body>
</html>
Oczywiście, to jest tylko przykład, jednak obrazuje ogólnie jak może działać system własnego szablonu. Widać, że dla każdej strony tworzymy zmienne zawierające najważniejsze unikalne informacje dla danej strony, a na końcu dodajemy za pomocą require_once(); wzorzec (ang. pattern), który wypełniamy wcześniej zdefiniowanymi zmiennymi. No i możliwości są znacznie większe - ja chciałem pokazać tylko sposób implementacji takiego rozwiązania. Z góry życzę powodzenia!