是否有任何方法在文件中有用户定义的参数,然后让dist.ini为参数设置值。例如,一个文件可能包含{{$THE_ANSWER}},而dist.ini文件将提供类似于THE_ANSWER = 42的值?我对使用dist::zilla处理perl发行版非常陌生,在理解它如何将文件作为模板处理时遇到了问题。似乎只有几个硬编码的参数,不同的插件,可以用于任何文件。其中一个参数是[NextRelease]在Changes文件中提供的{{Changes}}变量。
我阅读了这些教程,并搜索了CPAN上的模块,但不知道这是否是可能的。使用[GenerateFile]插件将整个文件放入dist.ini文件是不可接受的工作。除了缺乏灵活性和明显的丑陋之外,似乎不可能以这种方式添加带前导空格的线条。
发布于 2012-09-10 19:49:56
我要做的是使用一个存储或插件来存储变量。存储库就像插件一样,但是它们除了存储数据之外什么也不做,它们可以被放入您的全局配置以及您的dist.ini中。
[%Vars]
favorite_pie = pumpkin然后你就能得到这样的结果:
$zilla->stash_named('%Vars')->favorite_pie这假设您已经创建了Dist::Zilla::Stash::Vars,并为其提供了一个favorite_pie属性。
不过,您可以制作一个完全通用的存储库,它可以接受任何东西作为密钥。为此,我将查看Dist::Zilla::Plugin::Prereqs的源代码,它允许任意配置选项,并将它们推入BUILDSARGS方法中的散列属性中。
您可以使Dist::Zilla::Stash::Generic,然后根据不同的原因注册它多少次:
[%Generic / Pies]
favorite = pumpkin
hated = rhubarb
firstever = quince
[%Generic / Passwords]
pause = PeasAreDelicious
google = secret
reddit = SecretPeasAreDelicious...then,根据需要,在模板中.
{{ $zilla->stash_named('Passwords')->get_var('pause' }}如果我制作了许多使用这类通用工具的文件,我会传递它们的文本::Template实例--一个名为get_password的闭包,如下所示:
get_password => sub { $zilla->stash_named('Passwords')->get_var($_[0]) }然后您的模板可以包括:
Login with: {{ get_password("pause") }}这个答案显然给你留下了一些来源,但我认为它应该指向我用来做你想做的事情的所有部分。
https://stackoverflow.com/questions/12343268
复制相似问题