Phoenix에서 haml 템플릿 사용

2170 단어 hamlPhoenixElixir

개요


  • Phoenix는 eex라는 템플릿 엔진을 사용하지만 솔직히 사용하기 쉽지 않습니다.
  • Haml을 사용하여 개발하면 템플릿 측 개발 속도가 향상됩니다.
  • 이번에는 Haml 템플릿 엔진으로 전환하는 방법을 소개합니다.

  • phoenix_haml 설치



    phoenix_haml | Github 을 사용합니다.

    mix.exs
    
      defp deps do
        [
          {:phoenix, "~> 1.3.0-rc"},
          {:phoenix_pubsub, "~> 1.0"},
          {:phoenix_ecto, "~> 3.2"},
          {:postgrex, ">= 0.0.0"},
          {:phoenix_html, "~> 2.10"},
          {:phoenix_live_reload, "~> 1.0", only: :dev},
          {:gettext, "~> 0.11"},
          {:cowboy, "~> 1.0"},
    +     {:phoenix_haml, "~> 0.2"}
        ]
      end
    
    $ mix deps.get
    

    템플릿 엔진 변경



    config/config.exs
    
    + config :phoenix, :template_engines, haml: PhoenixHaml.Engine
    
    

    live reload 하기 위해 config/dev.exs 를 편집합니다.

    config/dev.exs
    
    config :haml, Haml.Endpoint,
      live_reload: [
        patterns: [
          ~r{priv/static/.*(js|css|png|jpeg|jpg|gif|svg)$},
          ~r{priv/gettext/.*(po)$},
          ~r{web/views/.*(ex)$},
    -     ~r{web/templates/.*(eex)$}
    +     ~r{web/templates/.*(eex|haml)$}
        ]
      ]
    
    

    이상을 설정하면 움직입니다.

    샘플



    web/controllers/page_controller.ex
    
    defmodule Haml.PageController do
      use Haml.Web, :controller
    
      def index(conn, _params) do
    -  render conn, "index.html"
    +  render conn, "index.html", name: "テスト"
      end
    end
    

    web/templates/page/index.html.haml
    
    %h1
      = @name
    
    

    아래와 같이 표시되면 성공입니다.

    좋은 웹페이지 즐겨찾기