我正在尝试编写一个YAML字典,用于Rails项目的国际化.我有点困惑,因为在一些文件中,我看到双引号中的字符串,而有些没有.需要考虑以下几点:
!- 非特定标记,而第一个示例的最后两行不使用 - 它们都有效.我的问题是:在YAML中使用不同类型的引号有哪些规则?
可以这么说:
!单引号,当...?!?我在某种程度上得到它,但我还没有看到一个没有提出更多问题而不是答案的例子.
http://rhnh.net/2011/01/31/yaml-tutorial
# Set.new([1,2]).to_yaml
--- !ruby/object:Set
hash:
1: true
2: true
Run Code Online (Sandbox Code Playgroud)
我知道我们正在声明一个Set标签.我不知道后续哈希映射与它有什么关系.我们是在宣布架构吗?有人能给我看一个带有多个标签声明的例子吗?
我已经阅读了规范:http://yaml.org/spec/1.2/spec.html#id2761292
%TAG ! tag:clarkevans.com,2002:
Run Code Online (Sandbox Code Playgroud)
这是宣告架构吗?为了成功解析文件,解析器还需要做些什么吗?某种类型的模式文件?
http://www.yaml.org/refcard.html
Tag property: # Usually unspecified.
none : Unspecified tag (automatically resolved by application).
'!' : Non-specific tag (by default, "!!map"/"!!seq"/"!!str").
'!foo' : Primary (by convention, means a local "!foo" tag).
'!!foo' : Secondary (by convention, means "tag:yaml.org,2002:foo").
'!h!foo': Requires "%TAG !h! <prefix>" (and then means "<prefix>foo").
'!<foo>': Verbatim tag (always means "foo").
Run Code Online (Sandbox Code Playgroud)
为什么与主标记和辅助标记相关,为什么辅助标记引用URI?有这些问题正在解决什么问题?
我似乎看到很多"他们是什么",没有"为什么他们在那里",或"他们用于什么".
我正在使用Rails i18n本地化我的网站.
在翻译yml文件中,我看到了
time:
am: am
formats:
default: ! '%a, %d %b %Y %H:%M:%S %z'
long: ! '%d %B, %Y %H:%M'
short: ! '%d %b %H:%M'
pm: pm
Run Code Online (Sandbox Code Playgroud)
(取自https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/en-GB.yml)
感叹号是什么意思?如果你带走感叹号,它会有什么不同?
谢谢
我想防止使用gitlab CI测试规则来检查TODO注释(或其他有问题的字符串)。我在这里添加了最后一行:
.job_template: &template_test
image: python:3.6-stretch
tags:
- python
# ...
stages:
- test
test:
<<: *template_test
stage: test
script:
- flake8 *.py
- ! grep TODO *.py
Run Code Online (Sandbox Code Playgroud)
但是,当我查看运行器的输出时,它失败了:
$ flake8 *.py
$ grep TODO *.py
ERROR: Job failed: exit code 1
Run Code Online (Sandbox Code Playgroud)
Gitlab似乎吞下了感叹号!,该感叹号在外壳中用于抵消grep的返回值。