テンプレートにはスリムを使用し、レールにはルビーを使用しています(使用を開始したばかりです)。私が直面している唯一の問題は、レンダリングされたhtmlのフォーマットがないことです。つまり、改行やインデントはありません。Slimがフォーマットを本質的にレンダリングするのは少し難しいかもしれないことを私は理解できます。
適切にフォーマットされたhtmlをレンダリングする方法はありますか?
テンプレートにはスリムを使用し、レールにはルビーを使用しています(使用を開始したばかりです)。私が直面している唯一の問題は、レンダリングされたhtmlのフォーマットがないことです。つまり、改行やインデントはありません。Slimがフォーマットを本質的にレンダリングするのは少し難しいかもしれないことを私は理解できます。
適切にフォーマットされたhtmlをレンダリングする方法はありますか?
ドキュメントから:
Slim::Engine.set_default_options pretty: true
または直接
Slim::Engine.default_options[:pretty] = true
コメントで@rubiiiが述べたように、少し拡張すると、これはSlimの機能です。同じ理由で、本番環境でJavascriptとCSSを縮小して圧縮することをお勧めします。スリムは、この:pretty
オプションをに設定せずに、本番環境で不要な空白を削除しますtrue
。
config/initializers/slim.rb
ファイルがある場合は:pretty
、環境をチェックしてオプションを動的に構成できます。
Slim::Engine.set_default_options pretty: Rails.env.development?
それ以外の場合は、このオプションをtrue
でのみに設定し、本番config/environments/development.rb
環境に残す必要があります。false
タグにdata-force-encoding="✓"
属性を追加するだけです。body
これにより、Railsはquoted printableとして電子メールを送信できるようになります(実際にはUTF8文字を使用するのがコツです)。参照:https ://github.com/slim-template/slim/issues/123
適切にフォーマットされたhtmlをレンダリングする方法はありますか?
HTMLは、技術的に言えば、改行なしで「適切にフォーマット」できます。興味がある場合は、「HTML検証」を調べてください。
Slimに関しては、改行は追加の作業を行う必要がある数少ないポイントの1つです。多くの人がHTML<br>
タグを使用する場合$/
、ローカルの行区切り記号に対応するruby変数であるを使用することをお勧めします。<br>
要素が時代遅れであり、slimはそれをレンダリングする出力を生成しないため、これを好みますが、実際のタグを使用することはお勧めできません。行末変数は、個人的にもより親しみやすく、信頼性があります:)
実際に使用するもう1つの大きな理由$/
は、他のルビーコーディングパターンにシームレスに適合し、全体的に不可知論的であるということです。例としてこのテンプレートを確認してください。