【问题标题】:How to pass and render a ruby variable in a markdown file? Gem "redcarpet"如何在 markdown 文件中传递和渲染 ruby​​ 变量?宝石“红地毯”
【发布时间】:2017-12-30 23:48:18
【问题描述】:

我正在使用宝石“红地毯”。我有一个降价文件。我希望能够用一些 ruby​​ 变量来渲染它。像这样的:

 # my_file.md

 ###Something
 fdafdsfdsfds

 ---

 <% for n in my_numbers do %>
     <%= n %>
 <% end %>

做这样的事情的正确方法是什么?如何传递和渲染红宝石 变量?

【问题讨论】:

    标签: ruby markdown


    【解决方案1】:

    您可以使用 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 }
    

    你可以通过引用redcarpet readme来自定义markdown渲染器

    【讨论】:

    • 什么是绑定?
    • binding 是一个特殊的变量,请在 google 上搜索“什么是 ruby​​ 中的绑定”以获取更多信息。 ruby 变量假定在file.md 文件中...
    • 为什么没有必要使用元编程?我将如何传递一个具体的变量,而不是所有的上下文?
    • 这并不是真正的元编程。如果您只想公开特定数据而不是整个上下文,您可以创建一个自定义绑定对象,但我不确定您为什么要这样做。
    猜你喜欢
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-25
    • 1970-01-01
    • 2017-12-19
    • 1970-01-01
    相关资源
    最近更新 更多