Я изучаю Perl и использую Dancer в качестве веб-рамки. У меня есть два вида (файлы tt), которые должны использовать одну и ту же навигацию. Итак, было бы здорово начать изучать, как управлять шаблонами для навигации и нижних колонтитулов.Perl Dancer Шаблоны, нижние колонтитулы
Я прочитал документацию для Template Toolkit, и я сделал следующее:
Я изменил файл config.yml
на:
#template: "simple"
template: "template_toolkit"
engines:
template_toolkit:
start_tag: '[%'
end_tag: '%]'
Я определил шаблоны в .pm
файла:
package proyecto;
use Dancer ':syntax';
our $VERSION = '0.1';
get '/' => sub {
template 'index';
};
get '/menu' => sub {
template 'menu';
};
true;
Существует связь в шаблоне индекса предписывающего посетителя в шаблон меню:
<li class="active">< a href="/menu">Menu <span class="sr-only"></span></a></li>
Я хотел бы повторно использовать навигационный код из index.tt в menu.tt, поэтому я обернут навигационный код в index.tt со следующим:
[% BLOCK navigation %]
#my nav code
[% END %]
Чтобы, наконец, включает в себя, что код в файле menu.tt, я написал следующее (где навигационный код должен быть):
[% navigation = 'index.tt' %]
[% INCLUDE navigation %]
файлы index.tt
и menu.tt
расположены в представлениях папки. Но, похоже, это не так просто! = (Любое предложение о том, как повторно использовать код из одного файла в другой, который находится в том же каталоге?
Примечание: имена пакетов в Perl начинаются с заглавных букв по соглашению. – simbabque
@ Это помогло мне, потому что я потерялся, прочитав документацию, когда искал ссылку. :) Отправьте ответ. – simbabque
@simbabque Я изначально разместил ссылку Dancer2 и изменил ее ... пришлось копать немного, чтобы найти версию Dancer1. Так что, наверное, я обманул? ;-) – ThisSuitIsBlackNot