言語ファイルでマークダウン文字列をローカライズしました。HAML で次のことを行うためのよりクリーンな方法を探しています。
#text_for_something
:markdown
#{ t(:text_in_markown) }
または、同等に:
#text_for_something!= Maruku.new( t(:text_in_markown) ).to_html
言語ファイルでマークダウン文字列をローカライズしました。HAML で次のことを行うためのよりクリーンな方法を探しています。
#text_for_something
:markdown
#{ t(:text_in_markown) }
または、同等に:
#text_for_something!= Maruku.new( t(:text_in_markown) ).to_html
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}