gpt4 book ai didi

perl - 我可以让 dist-zilla 填写模板文件中的任意字段吗?

转载 作者:行者123 更新时间:2023-12-05 01:21:47 25 4
gpt4 key购买 nike

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

我通读了教程并搜索了 CPAN 上的模块,但不知道这是否可能。使用 [GenerateFile] 是 Not Acceptable 解决方法。将整个文件放入 dist.ini 的插件文件。除了缺乏灵 active 和单纯的丑陋之外,似乎不可能以这种方式添加带有前导空白的行。

最佳答案

我要做的是使用存储或插件来存储变量。 Stashes 类似于插件,但它们除了存储数据之外什么都不做,它们可以放入您的全局配置以及您的dist.ini 中。 .

[%Vars]
favorite_pie = pumpkin

然后你可以这样处理它们:
$zilla->stash_named('%Vars')->favorite_pie

这假设您已经创建了 Dist::Zilla::Stash::Vars 并为其赋予了 favorite_pie 属性。

不过,您可以制作一个完全通用的存储,它接受任何东西作为 key 。为此,我将查看 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") }}

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

关于perl - 我可以让 dist-zilla 填写模板文件中的任意字段吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12343268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com