WPWMM4 (1) - веб -страница с Make и M4 - Сгенерируйте статические веб -страницы
Просто использовать команду Make. Makefile совместим с FreeBSD и NetBSD. На Linux должен установить пакет Bmake .
С WPWMM4 может создавать статические веб -страницы из файлов M4 . Генерирование осуществляется . Вы можете использовать внешние сценарии или команды.
Вы должны создать файл config.mk в каталоге и установить следующие переменные в этом файле. Вы можете использовать .clude в вашем config.mk, конечно.
Common_dir : где 00_defines.m4 . Обычно тот же каталог, что и Makefile .
Include_dir : каталог, в котором на основе пользователя включает M4 . Это относительно основного справочного каталога.
SRC_DIR : Эта переменная указывает на исходный каталог, где являются исходные файлы (обычно *.m4 ). Он может содержать подкатарии.
Assets_dir : в этом каталоге находятся статические файлы ( * .css , * .js и т. Д.).
Assets_dest_dir : целевой каталог статических файлов. Если вы хотите внутри $ {dest_dir}, должен включить его в эту переменную.
Assets_cp : команда, которая скопирует $ {assets_dir} . По умолчанию @cp -r .
Dest_dir : скомпилированное (созданное) место HTML. Подкаталонное дерево $ {src_dir} создано в этом каталоге с помощью Make .
Flag_dir : каталог, где находятся флаги. Флаги - это простые файлы, которые хранят информацию о здании. Есть только один флаг: $ {flag_mkdir} , который подписывает время, когда структура каталогов создается в $ {dest_dir} и хранит список созданных каталогов. Вы можете добавить плюс зависеть через $ {mkdir_req} - так что может повторно создать структуру каталога после изменения этого файла.
Mayout_dir : Вот макеты.
VIRT_DIR : Этот каталог содержит шаблоны виртуальных страниц.
Цели : Сестранный список статических файлов (виртуальные страницы не включены), что должно создать. Не включайте $ {dest_dir} , потому что он включен в систему строительства. Конечно, вы можете использовать каталоги. Его автоматическое требование - тот же файл в $ {src_dir}, заменяя расширение HTML на расширение M4 .
Targets_manual : Список статических файлов, снятый пространством, который должен создать. Не включайте $ {dest_dir} , потому что он включен в систему строительства. Эти цели не имеют автоматически сгенерированного требования, как $ {Targets} выше.
Greq : глобальное требование. Это необходимо для каждой цели. По умолчанию пусто.
foo.html_req : дополнительные требования Foo.html , которые включены в $ {targets} переменная (см. Выше). Foo.m4 добавляется автоматически. Эти переменные необязательны.
M4 : команда M4 . В большинстве случаев может быть установлено просто на M4 (на пути ). Эта переменная необязательна, значение по умолчанию - M4
M4_params : параметры команды M4 . Значение по умолчанию составляет -p -i include -d_src_dir = $ {src_dir} . Обратите внимание, что опция -p необходима, потому что мы используем встроенные макросы с префиксом M4_ .
Следующие переменные создаются динамически во время строительства, и вы можете использовать их в своих источниках и шаблонах M4 .
_Directory : целевой каталог внутри $ {dest_dir} (без $ {dest_dir} префикс). Корень $ {dest_dir} - "." (точка).
_File : целевое имя файла, которое находится при генерации (без какого -либо расширения).
Система отправляет некоторых помощников, которые вы можете использовать в своих файлах. Они определены в 00_defines.m4 . Вот список помощников:
_Body (Content, Options) : производит <опции Body $> $ content </body> .
_Charset (charset) : производит <meta charset = "$ charset"> .
_Class (class1, class2, ...) : производит class = "$ class1 $ class2 ..." .
_Css (cssfile) : производит <link rel = "stylesheet" href = $ cssfile> .
_Div (класс, контент, опции) : производит <div class = $ class $ options> $ content </div> .
_Head (Options, Content) : производит <Head $ Options> $ Content </Head> .
_Href (URL, текст, параметры, заголовок) : производит <a href = $ url $ wortions title = $ title> текст </a> .
_Meta (параметры) : создает <meta $ параметры> .
_Ol (параметры) : создает упорядоченный список <ol> <li> $ 1 </li> <li> $ 2 </li> ... </ol> . Вы можете указать элементы в списке параметров, разделенных запятыми. Будьте осторожны с цитированием!
_Stag (Tagname, Parameters) : производит <$ Tagname $ параметры> .
_Tag (Tagname, Content, Options) : производит <$ tagname $ options> $ content </$ tagname> .
>
_UL (параметры) : так же, как _OL .
В виртуальных страницах нет исходных (M4) файлов. Это полезно, когда вы хотите создать аналогичные страницы с аналогичным контентом (например, список файлов PDF, перечисление изображений, ...).
Вы должны создавать группы виртуалов (вы можете добавить только один виртуал в группу). Вы можете сделать это со следующими переменными:
Виртуалы : содержит название категорий. Например, виртуальные виртуальные данные = cat1 cat2 . Категории разделены космическим персонажем.
Virtualtemplate_* : вы можете установить (следующий примером выше) virtualtemplate_cat1 и virtualtemplate_cat2 . Их значения говорят, какой шаблон должен использовать для создания виртуальных страниц. Шаблоны хранятся в каталоге virt_dir . В файлах ваших шаблонов вы можете использовать динамически созданные переменные, см. Раздел [переменные внутри источников] [] ниже.
VirtualDir_* : Эта переменная указывает на целевой каталог, где должны появляться сгенерированные страницы. Вы должны установить каждую категорию, поэтому вам также нужно установить VirtualDIR_CAT1 и VirtualDIR_CAT2 .
Virtualout_* : выходные имена файлов. Например, virtual_cat1 = foo1.html foo2.html . В этом случае у вас будет $ {virtualdir_cat1} /foo1.html и $ {virtualdir_cat1} /foo2.html .
VirtualReq_* : Дополнительные требования к виртуальной категории. $ {VirtualTemplate _*}. M4 добавляется автоматически.
VirtualReqrule_* : простое правило преобразования для определения требования по файлу. Правило преобразования применяется к элементам $ {virtualout_*} переменных. Например, virtualReq_foo = c, .html, .dat, правило преобразует каждое расширение .html в расширение .dat : $ {destdir} /foodir/bar.html будет зависеть от файла foodir/bar.dat . Обратите внимание, что значение ** $ {virtualDir_*} не включено автоматически, поэтому, если вы хотите, вы должны это сделать! Будьте осторожны с рекурсивными зависимостями! Посмотрите на возможные модификаторы в руководстве Make (1) !
Вы можете определить крючки, которые работают на указанном событии. Вы можете использовать макрос $ { . Если вы не хотите просмотреть команду, должна префикс с Sign @ .
Hook_pre_html : он запускается перед генерацией HTML -файла из файла M4 . Значение по умолчанию - $ {msg1} здание $ {. Target} .
Hook_post_html : он работает после генерации HTML -файла из файла M4 . Значение по умолчанию пусто. Этот крючок полезен, например, если вы хотите проверить обоснованность HTML-файла (например, с Tidy, см. Http://www.html-tidy.org/).
Hook_pre_vhtml : он работает перед генерацией HTML -файла из виртуального шаблона (см. [Virtuals] [] выше). Значение по умолчанию - $ {msg1} Создание виртуального $ {. Target} .
Hook_post_vhtml : он работает после генерации HTML -файла из виртуального шаблона. Значение по умолчанию пусто.
Вы можете определить некоторые специальные цели в вашем ** config.mk '.
Предварительное время : эта цель выполнит перед любой другой целью (кроме чистой , конечно,). Например, вы можете запустить скрипт, который создает некоторые файлы, даже файл, который используется в WPWMM4. С этой целью может эмулировать функцию тегов (с использованием функции [Virtuals] []). Другая идея автоматически генерирует переменную $ {Targets} (с командой Find ).
Чистый-другой : когда вы запускаете чистую цель (которая удаляет все в каталоге $ {dest_dir} ), он тоже будет работать.
Есть несколько специальных целей, которые помогут отладить вашу конфигурацию.
SHOW-CONFIG : Показать основные переменные.
Show-Hooks : Покажите крючки.
Show-Targets : Показать цели (включая виртуальные цели).
Show-REQ : покажите цели с их требованиями. Цель начинает линию без каких -либо пробелов, требования префиксируются двумя пространствами. Между последним требованием и следующей целью находится пустая линия, вставленная.
Show-Virtuals : эта цель покажет определенные виртуальные и их конфигурации.
Есть некоторые переменные, которые вы можете использовать и установить в своих файлах M4 .
Есть некоторые команды, которые могут помочь. Они определены в 00_defines.m4 . Вот список:
_Script (command) : выполняет команду $ и вставьте его вывод ( STDAUT и STDERR тоже). Он использует макрос M4 ESYSCMD .
_Layout (макет, varname1, var1, varname2, var2, ...) : загрузите макет макета $ . Он использует M4 включает макрос. Вы можете определить макет веб -страницы в начале исходного файла. Эта команда назначит переменные Varname1 , varname2 , ... со значениями var1 , var2 .
_Layout_pre (pre) : $ pre напечатан перед включенным контентом.
_Layout_post (post) : post $ печатается после включенного контента.
_Incl (файл) : включает файл $ . Divert составляет -1, поэтому этот макрос не производит никаких выводов. Это идеально для загрузки файла с определениями макросов.
_2_body (текст) : текст $ в тег тела. Этот макрос собирает все входы и ничего не печатает. С _pr_body может печатать (и очистить) контент.
_2_head (текст) : так же, как _2_body , но он собирается в тег головы .
_Pr_body : распечатать и сбросить контент, собранный _2_body . Это простой макрос неверного .
_Pr_head : аналогично _pr_body .
_Pr_all : он печатает <! Doctype html> <html lang = "lang"> , вызывает _pr_head и _pr_body и после того, как он закрывает тег HTML .
config.mk
Сгенерированный пример-моя личная домашняя страница (на венгерском языке): http://uzsolt.hu/, а его исходное файл находятся по адресу https://svn.uzsolt.hu/uzsolt.hu/wpwmm4-uzsolt.hu/ and the github mirror : https://github.com/uzsolt/wpwmm4-uzsolt.hu.
Это простой сложный пример, но он демонстрирует мощность WPWMM4 :)
M4 (1), Make (1)
Zsolt udvari ([email protected], www.uzsolt.hu)