perl – 我可以在模板文件中填充dist-zilla填充任意字段吗?
有没有办法在文件中有一个用户定义的参数,然后让dist.ini设置参数的值.例如,文件可能包含{{$THE_ANSWER}},而dist.ini文件会提供类似THE_ANSWER = 42的值?我很高兴使用dist :: zilla来处理perl发行版,而我在理解它如何将文件视为模板时遇到了问题.似乎只有几个硬编码参数,可以通过插件改变,可以用于任何文件.一个这样的参数是由[NextRelease]在Changes文件中提供的{{$NEXT}}变量.
我阅读了教程并在CPAN上搜索了模块,无法确定这是否可行.使用[GenerateFile]插件将整个文件放在dist.ini文件中是不可接受的解决方法.除了缺乏灵活性和简单的丑陋之外,似乎不可能通过这种方式添加具有领先白色空间的线条. 解决方法
我要做的是使用存储或插件来存储变量. Stashes就像插件一样,但它们除了存储数据之外什么都不做,它们可以放在你的全局配置和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 …然后,根据需要,在模板中说… {{ $zilla->stash_named('Passwords')->get_var('pause' }} 如果我制作了大量使用这种泛型的文件,我会在Text :: Template实例中传递一个名为get_password的闭包,如下所示: get_password => sub { $zilla->stash_named('Passwords')->get_var($_[0]) } 然后您的模板可能包括: Login with: {{ get_password("pause") }} 这个答案显然会留给你一些消息来源,但我认为应该指出我用来做你想做的所有事情. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |