所以我有两个YAML文件,"A"和"B",我想要将A的内容插入到B中,或者拼接到现有的数据结构中,像数组一样,或者作为元素的子元素,比如值对于某个哈希键.
这有可能吗?怎么样?如果没有,任何指向规范参考的指针?
我有以下YAML:
paths:
patha: /path/to/root/a
pathb: /path/to/root/b
pathc: /path/to/root/c
Run Code Online (Sandbox Code Playgroud)
如何通过/path/to/root/从三个路径中删除并将其作为自己的设置来"规范化" ,例如:
paths:
root: /path/to/root/
patha: *root* + a
pathb: *root* + b
pathc: *root* + c
Run Code Online (Sandbox Code Playgroud)
显然这是无效的,我只是弥补了.什么是真正的语法?可以吗?
YAML文件中的变量是否可能?例如:
theme:
name: default
css_path: compiled/themes/$theme.name
layout_path: themes/$theme.name
Run Code Online (Sandbox Code Playgroud)
在这个例子中,如何theme: name: default在其他设置中使用?语法是什么?
我想在那里使用yml文件中声明的变量.例如,我声明site_name并想在下面使用它description.
en:
site_name: &site_name "Site Name"
static_pages:
company:
description: *site_name #this works fine
description: "#{*site_name} is an online system" #this doesn't work
Run Code Online (Sandbox Code Playgroud)
如何将*site_name变量与其他文本组合在一起?
在Perl中,我可以执行以下操作:
my $home = "/home";
my $alice = "$home/alice";
Run Code Online (Sandbox Code Playgroud)
我可以在YAML中执行以下操作:
Home: /home
Alice: $Home/alice
Run Code Online (Sandbox Code Playgroud)
那么"爱丽丝" /home/alice到底有效吗?
有没有办法让我的en.yml文件包含一个常量?
# en.yml
foo:
bar:
I love BAZ so much!
# initializers/constants.rb
BAZ = "stackoverflow.com"
I18n.t("foo.bar")
-> "I love stackoverflow.com so much!"
Run Code Online (Sandbox Code Playgroud)
?
如果没有,有没有办法自我引用yaml文件?
foo:
bar:
I love *baz* so much!
baz:
stackoverflow.com
I18n.t("foo.bar")
-> "I love stackoverflow.com so much!"
Run Code Online (Sandbox Code Playgroud) 我想让一个yaml对象引用另一个,如下所示:
intro: "Hello, dear user."
registration: $intro Thanks for registering!
new_message: $intro You have a new message!
Run Code Online (Sandbox Code Playgroud)
上面的语法只是它可能如何工作的一个例子(它也是它在这个cpan模块中的工作方式.)
我正在使用标准的ruby yaml解析器.
这可能吗?