首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以让dist-zilla在模板文件中填充任意字段吗?

我可以让dist-zilla在模板文件中填充任意字段吗?
EN

Stack Overflow用户
提问于 2012-09-09 21:46:31
回答 1查看 204关注 0票数 4

是否有任何方法在文件中有用户定义的参数,然后让dist.ini为参数设置值。例如,一个文件可能包含{{$THE_ANSWER}},而dist.ini文件将提供类似于THE_ANSWER = 42的值?我对使用dist::zilla处理perl发行版非常陌生,在理解它如何将文件作为模板处理时遇到了问题。似乎只有几个硬编码的参数,不同的插件,可以用于任何文件。其中一个参数是[NextRelease]Changes文件中提供的{{Changes}}变量。

我阅读了这些教程,并搜索了CPAN上的模块,但不知道这是否是可能的。使用[GenerateFile]插件将整个文件放入dist.ini文件是不可接受的工作。除了缺乏灵活性和明显的丑陋之外,似乎不可能以这种方式添加带前导空格的线条。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-10 19:49:56

我要做的是使用一个存储或插件来存储变量。存储库就像插件一样,但是它们除了存储数据之外什么也不做,它们可以被放入您的全局配置以及您的dist.ini中。

代码语言:javascript
复制
[%Vars]
favorite_pie = pumpkin

然后你就能得到这样的结果:

代码语言:javascript
复制
$zilla->stash_named('%Vars')->favorite_pie

这假设您已经创建了Dist::Zilla::Stash::Vars,并为其提供了一个favorite_pie属性。

不过,您可以制作一个完全通用的存储库,它可以接受任何东西作为密钥。为此,我将查看Dist::Zilla::Plugin::Prereqs的源代码,它允许任意配置选项,并将它们推入BUILDSARGS方法中的散列属性中。

您可以使Dist::Zilla::Stash::Generic,然后根据不同的原因注册它多少次:

代码语言:javascript
复制
[%Generic / Pies]
favorite  = pumpkin
hated     = rhubarb
firstever = quince

[%Generic / Passwords]
pause  = PeasAreDelicious
google = secret
reddit = SecretPeasAreDelicious

...then,根据需要,在模板中.

代码语言:javascript
复制
{{ $zilla->stash_named('Passwords')->get_var('pause' }}

如果我制作了许多使用这类通用工具的文件,我会传递它们的文本::Template实例--一个名为get_password的闭包,如下所示:

代码语言:javascript
复制
get_password => sub { $zilla->stash_named('Passwords')->get_var($_[0]) }

然后您的模板可以包括:

代码语言:javascript
复制
Login with: {{ get_password("pause") }}

这个答案显然给你留下了一些来源,但我认为它应该指向我用来做你想做的事情的所有部分。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12343268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档