Я использую Module :: Build для выполнения действий по сборке, тестированию, testpod, html и установке моего разрабатываемого модуля Perl. Сгенерированные HTML-файлы в порядке, но я был бы намного счастливее, если бы мог каким-то образом настроить Module :: Build для использования утилиты форматирования perltidy -html вместо своего собственного средства форматирования HTML.
Кто-нибудь знает, как я могу заменить средство форматирования HTML, которое поставляется с Module :: Build, на более красивое средство форматирования HTML?
Приложение: Когда я сказал «заменить» выше, это, вероятно, вводило в заблуждение. Я действительно не хочу писать код, чтобы заменить HTML-форматер, который поставляется с Module :: Build. Я действительно хочу знать, имеет ли Module :: Build какие-либо другие параметры форматирования HTML. HTML-код, который он генерирует, очень простой и общий. Это так скучно. Мне очень нравится вывод perltidy.
Вот как у меня это работает прямо сейчас в скрипте сборки, который я написал, но это просто хак ... выпал на сценарий командной строки perltidy:
use strict;
use warnings;
# get list of files in directory
my $libLocation = "lib/EDF";
opendir( DIR, $libLocation );
my @filenameArray = readdir(DIR);
# iterate over all files to find *.pm set
for my $file (@filenameArray) {
if ( $file =~ m/ # matching regex
\. # literal period character
pm # the pm file extenstion
/x # end of regex
)
{
my $return = `perl D:/Perl/site/bin/perltidy -q --indent-columns=4 --maximum-line-length=80 -html -opath blib/libhtml2 -toc $libLocation/$file`;
if ($return eq "") {
print "HTMLized " . $file . "\n";
}
else {
print "Error: " . $return . "\n";
}
}
}
Но я действительно надеялся, что есть способ использовать Module :: Build и просто сообщить ему флаг или аргумент или что-то еще, чтобы сказать ему использовать другой форматер HTML. Полагаю, это несбыточная мечта:
use strict;
use warnings;
use Module::Build;
my $build = Module::Build->resume (
properties => {
config_dir => '_build',
},
);
$build->dispatch('build');
$build->dispatch('html', engine => 'perltidy');
или, может быть:
$build->dispatch('htmltidy');