4

(私がここで調査した限り、これは重複した質問ではありません。スペースのトリミング (多くの場合改行の末尾) は<%-or-%>では議論されていますが、 では議論されていません<%=。Erubi テンプレート エンジンのマイナーな欠陥である可能性もあります。 Rails で ERB テンプレートに使用されています。)

ビューでコードをレンダリング/シンタックス ハイライトしたいのですが、ERB ビュー テンプレートには以下が含まれています。

<p>
  <strong>Code:</strong>
  <pre class="highlight github">
    <%= highlight(@code.code, @code.language) %>
  </pre>
</p>

その結果、HTML 出力は次のようになります。

<p>
  <strong>Code:</strong>
  <pre class="highlight github">
    <span class="kt">[and here's the code, but indented too much]</span>
  </pre>
</p>

タグがpre原因で、最初のコード行の前のスペースが HTML に含まれてレンダリングされるため、最初のコード行が 4 つのスペースでインデントされすぎています。

明らかに、ERB ビュー テンプレートを次のように作成することもできます。

<p>
  <strong>Code:</strong>
  <pre class="highlight github">
<%= highlight(@code.code, @code.language) %>
  </pre>
</p>

しかし、私のテンプレート ビューでは見苦しく見えます (インデントがオフになっているため)。

<%=質問:先頭のスペースも飲み込むようにするにはどうすればよいですか? 終了タグとして使用すると、末尾のスペース/改行が削除されることはわかってい-%>ますが、先頭のスペース (改行だけでなく) も削除したいと考えています。

4

1 に答える 1