如何在标记文件中传递和呈现ruby变量?宝石“红地毯”

如何在标记文件中传递和呈现ruby变量?宝石“红地毯”,ruby,markdown,Ruby,Markdown,我用的是宝石红地毯。我有一份降价文件。我希望能够用一些ruby变量来呈现它。大概是这样的: # my_file.md ###Something fdafdsfdsfds --- <% for n in my_numbers do %> <%= n %> <% end %> 这样做的正确方法是什么?如何传递和渲染红宝石 变量?您可以使用ruby中包含的erb库,但您必须要求它: require 'erb' require 'redc

我用的是宝石红地毯。我有一份降价文件。我希望能够用一些ruby变量来呈现它。大概是这样的:

 # my_file.md

 ###Something
 fdafdsfdsfds

 ---

 <% for n in my_numbers do %>
     <%= n %>
 <% end %>
这样做的正确方法是什么?如何传递和渲染红宝石 变量?

您可以使用ruby中包含的erb库,但您必须要求它:

require 'erb'
require 'redcarpet'

input = File.read "./file.md"

markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML, autolink: true, tables: true)

output = markdown.render ERB.new(input).result(binding)

File.open("output.html", "w") { |f| f.write output }
您可以通过引用

自定义标记渲染器。您可以使用ruby中包含的erb库,但您必须要求它:

require 'erb'
require 'redcarpet'

input = File.read "./file.md"

markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML, autolink: true, tables: true)

output = markdown.render ERB.new(input).result(binding)

File.open("output.html", "w") { |f| f.write output }

您可以通过引用

what's binding?binding是一个特殊变量来定制markdown渲染器,有关详细信息,请在google中搜索ruby中的what's binding。假设ruby变量位于file.md文件中……为什么不必使用元编程呢?我如何传递一个具体的变量,而不是所有的上下文?这并不是真正的元编程。如果你只想公开特定的数据而不是整个上下文,你可以创建一个自定义绑定对象,但我不确定你为什么要这么做。绑定是什么?绑定是一个特殊的变量,在谷歌搜索ruby中绑定的内容以获取更多信息。假设ruby变量位于file.md文件中……为什么不必使用元编程呢?我如何传递一个具体的变量,而不是所有的上下文?这并不是真正的元编程。如果您只想公开特定的数据,而不想公开整个上下文,那么可以创建一个自定义绑定对象,但我不确定您为什么要这样做。