- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在研究 Michael Hartl 的 Rails Tutorial同时尝试书中未涵盖的其他一些内容。完成后Chapter 5在创建静态页面的地方,我决定将 View 代码更改为 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 目录下,我有 Markdown 文件,例如 about.en.md、about.it.md、about .ja.md 等,因此在 :locale
参数中进行插值决定了渲染哪种语言的 Markdown 文件。
我的问题是:
:locale
和双字符串插值的使用似乎不太优雅。有没有办法更改此代码,以便我可以将 Ruby 变量传递到 Markdown 文件中?例如,我知道我可以通过将 about.en.md 更改为 HAML 部分 (_about.md) 来在 Markdown 中使用 #{language}
变量。 en.html.haml)并将代码更改为如下所示:
app/views/static_pages/about.html.haml
- provide(:title, t('.about_us'))
:markdown
#{render "about.#{params[:locale]}", language: 'Markdown!'}
但是,有没有办法在不将 Markdown 文件更改为其他类型文件的情况下做到这一点?如果存在这种方式,是否推荐/可行?
最佳答案
查看 this StackOverflow answer 后看来,i18n Markdown 文件的最佳位置是 config/locales 目录下它们自己的操作名称目录,并且有一个很好的机会重构 render
StaticPagesController
的所有 View 上的代码。因此,下面以about.html.haml为例,调用home中的render
,help 、关于和联系 View 已更改为完全相同的代码:
app/views/static_pages/about.html.haml
- provide(:title, t('.about_us'))
:markdown
#{render file: localized_page_for(action_name, params[:locale])}
localized_page_for
方法在 StaticPagesHelper
中定义:
app/helpers/static_pages_helper.rb
module StaticPagesHelper
def localized_page_for(action, locale)
"#{Rails.root}/config/locales/#{action}/#{action}.#{locale.to_s}.md"
end
end
所以,现在所有 Markdown 文件都已从 app/views/static_pages 目录中取出,并从各自的逻辑目录中调用(例如 config/locales/about/about .en.md 等)使用 ActionController
的 action_name
属性和区域设置,从而减少困惑。
对于上面的问题 2,字符串插值对于此类问题似乎足够常见,因此我也认为它足够“优雅”。
对于上面的问题3,经过详尽的搜索,我还没有找到任何人将变量传递到纯Markdown文件中的方法,并且the documentation似乎没有说任何支持他们的事情,所以我的结论是这是不可能的。如果绝对有必要将 Ruby 变量传递到 Markdown,则该文件将需要通过另一个解释器运行,类似于 this StackOverflow answer 中的描述。 .
运行安全扫描器后 Brakeman针对该应用程序,它提出了一个潜在的Dynamic Render Path由于将 params[:locale]
动态传递给 render
调用而不是向其传递静态字符串,因此出现安全警告(尽管很弱)。因此,我将对 localized_page
方法的调用移出 View ,将该方法本身移出 StaticPagesHelper
(以便该文件现在为空)并移入 StaticPagesController
然后在每个方法中实例化一个 @page
实例变量以传递给 View 。总之,代码现在看起来像这样,它没有收到安全警告:
app/controllers/static_pages_controller.rb
class StaticPagesController < ApplicationController
before_filter :localized_page, only: [:help, :about, :contact]
def home
if signed_in?
@micropost = current_user.microposts.build
@feed_items = current_user.feed.paginate(page: params[:page])
else
localized_page
end
end
def help
end
def about
end
def contact
end
private
def localized_page
@page = "#{Rails.root}/config/locales/"\
"#{action_name}/#{action_name}.#{params[:locale].to_s}.md"
end
end
app/views/static_pages/about.html.haml
- provide(:title, t('.about_us'))
:markdown
#{render file: @page}
关于internationalization - Rails 3 View 中的 i18n Markdown 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10233686/
这是我的代码片段:http://www.share-elm.com/sprout/53d242e2e4b07afa6f9834a2灵感来自 elm-lang.org 的 example . main
抱歉,如果这个问题有点基础,但互联网上的研究并没有得出任何合理的答案。我希望能够在我的网站上运行 markdown,类似于 github 所拥有的(编辑/预览设置)或实际上与 stackoverflo
我正在使用 markdown 编写文档,我正在使用 pandoc 将其导出为 PDF。在文档的末尾,我需要在 PDF 的打印副本上留出签名空间。 我试图找到如何绘制一条固定宽度的线,但到目前为止我只需
我已经搜索过谷歌和 SO,不知道 SO 是否是问这个的地方,但我想知道是否有标记可以为 Markdown 做某种类型的注释?我们在 Markdown 中为我们的项目做文档,并希望在不更改内容的情况下在
我想使用简单的文本编辑器和 Markdown 做类笔记。有没有办法标记文本元素以使其机器可读? 例如,我想将某些单词和短语标记为“定义”。然后,我可以运行某种脚本来显示单词及其相应的定义。 最佳答案
我有两个markdown文件:一个parent.md和child.md。 所以parent.md: # Main section ## sub-section 我想引用## sub-section中的
我需要在 Markdown 中创建一个类似嵌套的表,如下所示: 我怎样才能做到这一点? 最佳答案 @Waylan 是对的,您可以将 HTML(例如使用 Markdown 生成的表格)粘贴到 Markd
有没有办法在 Github markdown 的代码片段中链接表单? 例如:`I want THIS to be a link`哪里THIS看起来像 THIS . 最佳答案 我想通过 Markdown
我正在 Github 风格的 Markdown 中整理一些文档,并且我想整理一个有两行的表格。一种是简单的文本,另一种是 json 代码块。这是一个例子。 | Status | Response |
使用 GitHub 上“Markdown Cheatsheet ”中的表示例,您会得到以下结果: | Tables | Are | Cool | | -------
我对 Markdown 中的引号有疑问。当我有这样的事情时: text > quoted text > > deeper layer > > > even deeper
我正在寻找与 Markdown 中的多行代码功能等效的引号。对于代码块我可以方便地编写: ``` this is a code example ``` 有谁知道下面的事情是否可能? >>>
我想在 Markdown 中创建一个列表,但没有项目符号点。这可能吗? 到目前为止,我发现唯一推荐的方法是使用 HTML,我想避免使用 HTML。 最佳答案 这听起来似乎很明显,但是......您可以
我想编写一份编码标准规范文档,其中包含好和坏编码示例。每条规则都应该有一个编号、描述和示例。 例如,这是规则 1: # Rule 1 Description for rule 1. ## Good `
可以关注Marked library documentation并内联渲染一个 Markdown 字符串。这是一个有效的代码片段。 document.getElementById
据我所知,markdown 是 html 的“简化”版本。它易于使用和阅读。但我在创建输入表单时遇到了问题。 有人可以建议是否有任何方法可以在 Markdown 中添加 html 输入表单元素吗?我搜
如何在 Markdown 解析文档中包含小书签?是否有任何 Markdown 的“标签”基本上是说“不要解析这个”?? 例如,您可以有类似的内容: Hello 但是如果我尝试将其中的 JavaScri
可以关注Marked library documentation并内联渲染一个 Markdown 字符串。这是一个有效的代码片段。 document.getElementById
我想编写一个 R Markdown 文档,其中提供了如何编写 R Markdown 文档的代码示例。例如,我想在文档中展示如何将文本呈现为粗体。 `**this is bold**` will ren
我目前正在使用 GitHub 页面构建一个网站,并尝试利用一些 GitHub 风格的 Markdown 功能。特别隔离的代码块和表。 使用 redcarpet,我得到语法突出显示的围栏 block ,
我是一名优秀的程序员,十分优秀!