2017-02-10 65 views
0

私はカスタマイズのために少しのCSSを含むことができるYAML設定ファイルを持っています。その後、ファイルにレンダリングされる引用符を含む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

@flyはあなたが正しいと分かります。それはすべての問題だった!私は間違った場所を見ていて、生のものは見つからなかった! – ecc

答えて

0

ソリューションは、私はすでにrawを使用していたと思ったが、私は間違っていた{{ css.custom|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関連ではないことがOPではっきりしないかもしれないので、yamlでタグ付けされた質問に実際に答えられるとは思えません。 。 – flyx

関連する問題