Em um arquivo de configuração, tenho uma chave à qual desejo atribuir um URL. O problema é que o YAML interpreta: e - caracteres como criando mapeamentos ou listas; portanto, há um problema com a linha
url: http://www.example-site.com/
(por causa dos dois pontos após http e o hífen no meio)
Existe uma maneira explícita de escapar ':' e '-'? Ou seria apenas colocar a coisa toda entre aspas simples e chamar de dia?
Respostas:
Citações:
Para esclarecer, eu quis dizer "citar o valor" e originalmente pensei que a coisa toda era o valor. Se
http://www.example-site.com/
for o valor, apenas cite-o da seguinte maneira:fonte
- 'PS4="+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }"'
O que também funciona e é ainda mais agradável para textos longos e com várias linhas, é colocar o texto recuado na próxima linha, após um sinal de barra vertical ou superior a:
Um tubo preserva novas linhas, um sinal gt transforma todas as linhas a seguir em uma longa cadeia.
fonte
>-
ou|-
para evitar isso.- >
mas os itens após o primeiro são ignorados.- |
e em uma nova linha recuei o texto do item da lista para que o primeiro caractere ficasse alinhado com o pipe. Espero que ajude, funcionou para mim em um arquivo de localidade do Rails 4.2.De acordo com as especificações da YAML, nem o
:
nem o-
deve ser um problema.:
é apenas um separador de chaves com um espaço a seguir e-
é apenas um indicador de matriz no início de uma linha com um espaço a seguir.Mas se sua implementação de YAML tiver um problema, você poderá ter várias opções:
No entanto, não há explicitamente nenhuma forma de escapar possível no " estilo simples ".
fonte
Citações, mas eu prefiro-as apenas no valor:
Colocá-los em toda a linha parece que pode causar problemas.
fonte
Outra maneira que funciona com o analisador YAML usado no Jekyll:
Dois pontos não seguidos por espaços não parecem incomodar o analisador YAML de Jekyll, por outro lado. Nem traços.
fonte
Se você estiver usando o
@ConfigurationProperties
Spring Boot 2 para injetar mapas com chaves que contêm dois pontos, precisará de um nível adicional de escape usando colchetes dentro das aspas, porque o spring apenas permite caracteres alfanuméricos e '-', eliminando o restante. Sua nova chave ficaria assim:Vejo este problema do github para referência.
fonte
Eu vim aqui tentando fazer minha tarefa de Linha de Comando do Azure DevOps funcionar. O que funcionou para mim foi usar o
|
caractere pipe ( ). Usar>
não funcionou.Exemplo:
fonte
.gitlab-ci.yml
, mas até precisar de cachimbo '|' no script - ele falha silenciosamente :(