3

私は検索しましたが、何も見つかりません。これはどこかに言及されているように見えるので、間違った情報を探しているのかもしれません。基本的に、Slim Template Engine について質問があります。

Slim を使用しているときに、ブラウザーから出力されたソース コードを表示すると、適切にタグをネストする HAML とは異なり、適切にネストされておらず、プロフェッショナルではないように見えます。私が何か間違ったことをしているのかどうかはわかりません.Slimが大好きなので、間違っている場合は正しい方向に向けてください. Slim と HAML の両方について、サンプル コードと出力を以下に示します。

まだ Rails に慣れていないため、関連性があるかどうかはわかりませんが、私の開発マシンの仕様は次のとおりです。

*Fedora 18 x86_64
*Apache 2.4.4
*Ruby 2.0.0p195
*Rails 3.2.13

The Gem Versions for HAML and Slim:
haml (4.0.3)
haml-rails (0.4)
slim (2.0.0)
slim-rails (2.0.1)

*Apache configuration is set to: RailsEnv development

スリム

アプリ/ビュー/レイアウト/application.html.slim:

doctype html
html

    head
        title Test Website
        = stylesheet_link_tag "application", :media => "all"
        = javascript_include_tag "application"
        = csrf_meta_tags

    body
        = yield

ソース出力:

<!DOCTYPE html><html><head><title>Test Website</title><link href="/assets/application.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/home.css?body=1" media="all" rel="stylesheet" type="text/css" /><script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/home.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script><meta content="authenticity_token" name="csrf-param" />
<meta content="EFA1Dzi1D1DY4GVBlAJ+IIyhm7ZvYch8t5v2a6cj42k=" name="csrf-token" /></head><body><h1>Home#index</h1><p>Find me in app/views/home/index.html.slim</p></body></html>

ハムル

アプリ/ビュー/レイアウト/application.html.haml:

!!!
%html

    %head
        %title Test Website
        = stylesheet_link_tag "application", :media => "all"
        = javascript_include_tag "application"
        = csrf_meta_tags

    %body
        =yield

ソース出力:

<!DOCTYPE html>
<html>
  <head>
    <title>Test Website</title>
    <link href="/assets/application.css?body=1" media="all" rel="stylesheet" type="text/css" />
    <link href="/assets/home.css?body=1" media="all" rel="stylesheet" type="text/css" />
    <script src="/assets/jquery.js?body=1" type="text/javascript"></script>
    <script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
    <script src="/assets/home.js?body=1" type="text/javascript"></script>
    <script src="/assets/application.js?body=1" type="text/javascript"></script>
    <meta content="authenticity_token" name="csrf-param" />
    <meta content="RmxaPGwJapEf16Uw8ApQG0CpCHtr4My4aD8UO9w80dY=" name="csrf-token" />
  </head>
  <body>
    <h1>Home#index</h1>
    <p>Find me in app/views/home/index.html.haml</p>
  </body>
</html>
4

1 に答える 1

2

出力には特に問題はありません。Slim は最大のパフォーマンスを得るために圧縮しているだけです。ブラウザは、機能する限り、見た目は気にしません。

ただし、開発中は、デバッグ目的でより読みやすいバージョンが必要になることは理解できます。

次のように、きれいな出力を生成するようにSlim を構成できます。

# Indent html for pretty debugging and do not sort attributes
Slim::Engine.set_default_options :pretty => true, :sort_attrs => false

config/environments/development.rbたとえば、それを入れるだけで準備完了です。

于 2013-06-25T07:09:45.240 に答える