在配置文件中,我有一个密钥,我想给它分配一个URL。问题是YAML将:and -字符解释为创建映射或列表,因此它在行上有问题

url: http://www.some-site.example/

(因为HTTP后面有冒号,中间有连字符)

是否有明确的方法来逃避:and -?或者干脆把整件事都放在单引号里然后就收工了?


当前回答

Jekyll中YAML解析器的另一种工作方式:

title: My Life: A Memoir

另一方面,冒号后面不跟空格似乎不会影响Jekyll的YAML解析器。破折号也不行。

其他回答

GitHub行动抱怨

curl -L -H "Authorization: token ${{ secrets.TOKEN }}"  https://example.com/try.txt

但是当冒号后面没有空格的时候是可以的,比如

curl -L -H "Authorization:token ${{ secrets.TOKEN }}"  https://example.com/try.txt

如果您在Spring Boot 2中使用@ConfigurationProperties来注入包含冒号的键的映射,那么您需要在引号内使用方括号进行额外的转义,因为Spring只允许字母数字和“-”字符,将其余的字符剥离。你的新密钥看起来是这样的:

"[8.11.32.120:8000]": GoogleMapsKeyforThisDomain

参考这个github问题。

报价:

"url: http://www.some-site.example/"

为了澄清,我的意思是“引用值”,最初认为整个事情就是值。如果值是http://www.some-site.example/,就像这样引用它:

url: "http://www.some-site.example/"

引用,但我更喜欢他们的只是价值:

url: "http://www.some-site.example/"

把它们放在整条线上看起来可能会造成问题。

根据YAML规范,:和-都不是问题。:只是一个键分隔符,后面有一个空格,而-只是一行开头的数组指示符,后面有一个空格。

但是如果你的YAML实现有问题,你可能有很多选择:

- url: 'http://www.some-site.example/'
- url: "http://www.some-site.example/"
- url:
    http://www.some-site.example/
- url: >-
    http://www.some-site.example/
- url: |-
    http://www.some-site.example/

然而,在“普通风格”中没有明确的转义形式。