2017-02-10 6 views
0

У меня есть файл конфигурации YAML, который может содержать немного CSS для настройки.Многострочная строка в YAML, содержащая цитаты

css.custom: > 
    .company-logo { 
    height: 60px; 
    padding-top: 15px; 
    } 
    .input[type=\"text\"] { 
    background: white; 
    border: 1px solid gray; 
    border-radius: 3px; 
    } 

Который затем превращали в файле с именем base.css.twig так:

{{ css.custom }} 

Моя проблема заключается в том, что я не могу получить котировки в input[type=\"text\"] для правильного отображения как обратный слэш буквально переводится и котировки отображаются как ". Кто-нибудь понял, как успешно выполнить сырые кавычки?

В результате рендеринга:

input[type="text"] 
+0

YAML дает ключ 'css.custom', но в Twig вы получаете доступ к переменной' css.customCss'. Кроме того, ваш данный код Twig, возможно, недостаточно, чтобы распознать ошибку. вы в среде '{% autoescape%}'? Что произойдет, если вы удалите '| raw'? – flyx

+0

Плохо, я сделал ошибку в примере. Я проверю его и опубликую результаты с помощью и без фильтра. – ecc

+0

@flyx получается, что вы были правы. это была проблема все время! Я искал неправильное место, и сыроечко пропало! – ecc

ответ

0

Решение заключается в использовании {{ css.custom|raw }}

Я думал, что я уже использовал raw, но я был неправ.

1

Вы не можете ничего в YAML многострочных скалярных строк избежать. Вы не должны бежать кавычки, так что вы должны оставить из \:

css.custom: > 
    .company-logo { 
    height: 60px; 
    padding-top: 15px; 
    } 
    .input[type="text"] { 
    background: white; 
    border: 1px solid gray; 
    border-radius: 3px; 
    } 

Вы также должны учитывать, если вы действительно хотите складной (>), а не буквальное (|) стиль многострочно скаляры.

folding style is like literal style:

Сложенные стиль обозначается индикатором «>». Он похож на буквальный стиль; однако сложенные скаляры подлежат сгибанию линии.

и the literal style не избежать:

Там нет никакого способа, чтобы избежать символов внутри литералов скаляров. Это ограничивает их печатными символами. Кроме того, нет возможности разбить длинную литеральную линию.

+0

Это не отвечает на мой вопрос, однако, поскольку кавычки отображаются как '"'. Использование '>' или '|' для меня одно и то же. Я на самом деле думаю, что все в одной строке лучше подходит для цели. Это также не решает проблему. – ecc

+0

Изменение с '>' на '|' является необязательным, как я указал. Важная часть состоит в том, что вы, похоже, думаете, что вам нужно избегать цитат, поставив перед ними задний кадр, но в сложенном/буквальном YAML-строке вы не можете. (И если для вашего программного обеспечения для обработки требуется обратная запись, это не имеет ничего общего с YAML, и вы неправильно отметили вопрос). – Anthon

+0

Я думаю, мы не можем предположить, что вопрос с меткой «yaml» действительно может быть получен с помощью знания YAML, потому что для OP не может быть очевидно, что проблема не связана с YAML, и ответ, говорящий им, что, конечно, полезно , – flyx

Смежные вопросы