0

言語ファイルでマークダウン文字列をローカライズしました。HAML で次のことを行うためのよりクリーンな方法を探しています。

#text_for_something
  :markdown
    #{ t(:text_in_markown) }

または、同等に:

#text_for_something!= Maruku.new( t(:text_in_markown) ).to_html
4

2 に答える 2

1

Rails Tutorial sample appの i18n に似たようなことをすることになりました。問題があるかどうかはわかりませんが、RDiscountを使用して Markdown をレンダリングしました。

要約すると、 config/localesの下のcontroller/actionディレクトリの下に各 i18n 化されたマークダウン ファイルをファイルし、コントローラーでレンダリングする必要があるページを決定します。たとえば、単純な About ページの場合、マークダウン ファイルは次の場所にあります。:en

config/locales/static_pages/about/about.en.md

About Us
========

Some more markdown text...

レンダリングされるファイルへのパスがコントローラで決定され、 に割り当てられ@pageます。次に、ファイル自体が関連する HAML パーシャルでレンダリングされます。

アプリ/コントローラー/static_pages_controller.rb

class StaticPagesController < ApplicationController

  before_filter :localized_page

  def about
    # ...
  end

  # ...

  protected

    def localized_page
      locale = params[:locale]
      @page = "#{Rails.root}/config/locales/#{controller_name}/"\
              "#{action_name}/#{action_name}.#{locale}.md"
    end
end

アプリ/ビュー/static_pages/about.html.haml

= render 'static_page', title: t('.about_us'), page: @page

app/views/static_pages/_static_page.html.haml

- provide(:title, title) if title
:markdown
  #{render file: page}
于 2013-03-08T07:59:44.807 に答える