我正在使用 Module::Build 在我正在开发的 Perl 模块上执行构建、测试、testpod、html 和安装操作。生成的 HTML 文件没问题,但如果我能以某种方式将 Module::Build 配置为使用 perltidy -html 格式化实用程序而不是它自己的 HTML 格式化程序,我会更高兴。
任何人都知道我可以用更漂亮的 perltidy HTML 格式化程序替换 Module::Build 附带的 HTML 格式化程序吗?
附录: 当我在上面说“替换”时,这可能具有误导性。我真的不想编写代码来替换 Module::Build 附带的 html 格式化程序。我真的很想知道 Module::Build 是否有任何其他HTML 格式化程序选项。它生成的 HTML 看起来非常简单和通用。太无聊了。我非常喜欢 perltidy 的输出。
这是我现在如何在我编写的构建脚本中让它工作的方法,但这完全是一个 hack ......落入命令行 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');