Изменения

Перейти к: навигация, поиск

Шаблонизатор VMX::Template

436 байтов добавлено, 20:43, 27 июля 2018
Нет описания правки
* Лицензия: GNU GPL версии 3 или новее
* Полный набор исходников здесь: http://yourcmc.ru/git/summaryvitalif/VMXTemplate** PHP-версия (PHP >= 5.4): [http://yourcmc.ru/git/blobvitalif/VMXTemplate.git/raw/master/template.php template.php] и [http://yourcmc.ru/git/blobvitalif/VMXTemplate.git/raw/master/template.parser.php template.parser.php].** Новая Perl-версия: [http://yourcmc.ru/git/blobvitalif/VMXTemplate.git/raw/master/VMXTemplate.pm VMXTemplate.pm] и все его [http://yourcmc.ru/git/tree/VMXTemplate.git/master/VMXTemplate подмодули VMXTemplate/*.pm].** Старая Perl-версия: [http://yourcmc.ru/git/blobvitalif/VMXTemplate.git/raw/master/VMX%2FTemplate.pm VMX/Template.pm] и [http://yourcmc.ru/git/blobvitalif/VMXTemplate.git/raw/master/VMX%2FCommon.pm VMX/Common.pm].** Исходный код грамматики PHP-версии (LALR(1) [http://yourcmc.ru/git/summaryvitalif/lime LIME]): [http://yourcmc.ru/git/blobvitalif/VMXTemplate.git/raw/master/template.lime template.lime].** Исходный код грамматики Perl-версии (LALR(1) {{CPAN|Parse::Yapp}}): [http://yourcmc.ru/git/blobvitalif/VMXTemplate.git/raw/master/template.yp template.yp] и [http://yourcmc.ru/git/blobvitalif/VMXTemplate.git/raw/master/template.skel.pm template.skel.pm].** Исходный код голой грамматики (LALR(1) yacc): [http://yourcmc.ru/git/blobvitalif/VMXTemplate.git/raw/master/template.y template.y].
** В Git-репозитории можно найти полную историю разработки, начиная с самых старых phpbb-подобный версий.
* Простые настройки для подсветки синтаксиса шаблонов в [http://www.midnight-commander.org/ Midnight Commander]'а: [{{SVN|vitalif/trunk/scripts/tpl.syntax|markup}} tpl.syntax]. Чтобы подсветка нормально выглядела, к tpl.syntax в начало надо дописать html.syntax из стандартного комплекта поставки mc.
Если вы знаете о порождающих грамматиках, то вот контекстно-свободная грамматика для LALR(1) алгоритма разбора:
* Голая Bison-грамматика, для получения представления о синтаксисе: http://yourcmc.ru/git/blobvitalif/VMXTemplate.git/raw/master/template.y* Рабочая [httpshttp://github.com/vitalif/lime LIME]-грамматика: http://yourcmc.ru/git/blobvitalif/VMXTemplate.git/raw/master/template.lime (для её работы нужен патченый LIME — см. https://github.com/vitalif/lime)* Рабочая {{CPAN|Parse::Yapp}}-грамматика: http://yourcmc.ru/git/blobvitalif/VMXTemplate.git/raw/master/template.yp
=== Пример ===
Ограничение длины строки <tt>str</tt> максимальной длиной <tt>len</tt> — <tt>strlimit(str, len, dots = "...")</tt>. Если строка превышает заданную длину, она обрезается предпочтительно по пробелу или Tab’у, а в конец добавляется <tt>dots</tt> или по умолчанию <tt>"..."</tt>, если аргумент <tt>dots</tt> не передаётся.
 
==== PLURAL_RU ====
 
Выбор правильного окончания в русском языке в зависимости от количества: <tt>plural_ru(число, один, несколько, много)</tt>. Например (1 шаблон, 2-3-4-102 шаблонА, 5-6-15-… шаблонОВ):
 
<tt><nowiki>{num} шаблон{plural_ru(num, '', 'а', 'ов')}</nowiki></tt>
=== Массивы и хеши ===

Навигация