我目前正在阅读 Michael Hartl 的Rails 教程,同时尝试书中未涵盖的其他一些内容。完成第 5 章创建静态页面后,我决定将视图代码更改为 HAML,将页面国际化,并将静态内容放入单独的(非部分)Markdown 文件中,使用 RDiscount gem 来呈现它们。例如:
app/views/static_pages/about.html.haml
- provide(:title, t('.about_us'))
:markdown
#{render file: "static_pages/about.#{params[:locale]}.md"}
在static_pages目录下,我有诸如about.en.md、about.it.md、about.ja.md等 Markdown 文件,因此在:locale
参数中插值决定了渲染哪种语言的 Markdown 文件。
我的问题是:
- static_pages目录有点挤满了 Markdown 文件,因此是否有任何合理的默认/最佳实践位置(可能在app目录之外)来保存这些 Markdown 文件,它们可能会被不需要的人编辑了解应用程序的内部工作原理吗?
- 有什么更好的方法来实现在视图中渲染多语言 Markdown 文件?我
:locale
对双字符串插值的使用似乎不优雅。 有没有办法更改此代码,以便我可以将 Ruby 变量传递到 Markdown 文件中?例如,我知道我可以通过将about.en.md更改为 HAML 部分(_about.en.html.haml
#{language}
)来使用Markdown 中的变量并将代码更改为如下所示:app/views/static_pages/about.html.haml
- provide(:title, t('.about_us')) :markdown #{render "about.#{params[:locale]}", language: 'Markdown!'}
但是,有没有办法在不将 Markdown 文件更改为另一种类型的文件的情况下做到这一点?如果存在这种方式,是否推荐/可行?