4

複数行の改行はうまくいかないようです:

何かのようなもの:

  intro: |
    We are happy that you are interested in
    and  
    more

+ more は改行にする必要がありますが、失敗します。

  intro: |
    | We are happy that you are interested in
    | and  
    | more

また

  intro: |
    We are happy that you are interested in \n
    and  
    more <2 spaces >
    another one

すべて失敗します。

yamlテキストブロックに複数行を正しく含める方法は?

RailsアプリのHAMLビューでこれを使用します

= t("mailer.beta_welcome.intro")

しかし、改行はこのように印刷されません.rawまたは何かで別の方法で出力する必要がありますか?

4

4 に答える 4

2

Google 社員への遅い回答:

HTML として出力しようとしていたようです。つまり、ページを調べると実際に改行が出力されていたということです。ただし、HTML は空白をほとんど無視するため、改行とスペースは HTML レンダラーによって単なるスペースに変換されていました。

simple_formatdocsによると、 simple_format はテキスト出力にいくつかの単純なフォーマット規則を適用して、プレーンテキスト出力に近づけるために、改行を<br/>タグに変換します。

したがって、あなたの問題は、期待どおりに実行されていた YAML とは何の関係もありませんでした。それは実際には HTML の仕組みによるもので、これも予想どおりです。 simple_formatYAML から改行を含む文字列を取得し、それをタグ付きの文字列に変換して<br/>、改行が実際に HTML に表示されるように修正しました。これは、最初に必要だったものです。

于 2014-06-16T17:51:56.913 に答える
0

Ugh.. after digging more on different keywords I found that

  = simple_format(t("mailer.beta_welcome.intro"))

does the trick although this seems stupid i see no workaround for now

于 2013-11-13T17:55:27.937 に答える
0

文字列を一重引用符で囲むことができます。

イントロ:「あなたが興味を持ってくれたことを嬉しく思います

于 2014-01-28T08:33:55.180 に答える