Я использую Template Toolkit (Perl) и у меня есть простой скрипт, который генерирует статические файлы из шаблонов. Это отлично подходит для ситуации, в которой вы находитесь (обычная навигация и т. Д.).
Он поставляется с командой ttree
, которая обрабатывает дерево каталогов и помещает результаты в другое.
Вот файл tt.rc, который я использую:
# ignore these files (regular expressions)
ignore = \.svn
ignore = ^#
ignore = ~$
ignore = .DS_Store
ignore = \.tt$
# if these template files change, reprocess everything
depend *=tpl/wrapper,tpl/defaults,style/default.html
# just copy these files, don't process as templates
copy = \.(gif|png|pdf|jpg)$
# verbose output
verbose
# recurse into subdirectories
recurse
# setup some defaults from tpl/defaults
pre_process = tpl/defaults
# process this file instead of the real file (see below how this is used)
process = tpl/wrapper
# process files from src/, output to html/
# extra templates in lib/ (tpl/wrapper for example).
src = src
dest = html
lib = lib
Пара специальных файлов, tpl/defaults
- это
[%- page = {
title = template.title,
style = template.style or 'default.html'
};
base = INCLUDE tpl/base_uri;
# don't include any whitespace from here...
RETURN;
-%]
А tpl/wrapper
является
[%- content = PROCESS $template;
IF !template.name.search('.html') OR page.style == 'none';
content;
ELSE;
default_style_template = "style/" _ page.style;
PROCESS $default_style_template;
END;
%]
Это обработает настоящий шаблон; поместите результаты в переменную content
, а затем обработайте шаблон style
(установите с page.style
в tpl/defaults
; по умолчанию defaults.html
).
файл стиля lib/style/default.html
просто должен иметь
[% content %]
где-то включить настоящий шаблон; до и после этого вы можете иметь стандартный нижний колонтитул и верхний колонтитул.
Подробнее о Template Toolkit можно прочитать по адресу tt2.org .
Другой вариант - использовать wget
(или аналогичный) в рекурсивном режиме для «зеркального отображения» страниц, сгенерированных PHP на сервере разработки; но я бы не советовал.