gpt4 book ai didi

ruby-on-rails-3 - 如何在 Rails 3 中使用 markdown 自动渲染部分内容?

转载 作者:行者123 更新时间:2023-12-03 07:42:43 25 4
gpt4 key购买 nike

我想将我的一些部分作为 Markdown 片段。使用标准 Rails erb 模板渲染它们的最简单方法是什么?

理想情况下,我想做这样的事情:

如果我在app/views/_my_partial.md.erb中有一个部分:

My awesome view
===============

Look, I can **use** <%= language %>!

我从这样的 View 中引用:

<%= render "my_partial", :language => "Markdown!" %>

我想要得到如下所示的输出:

<h1>My awesome view</h1>
<p>Look, I can <strong>use</strong> Markdown!</p>

最佳答案

事实证明,执行此操作的正确方法是使用 ActionView::Template.register_template_handler:

lib/markdown_handler.rb:

require 'rdiscount'

module MarkdownHandler
def self.erb
@erb ||= ActionView::Template.registered_template_handler(:erb)
end

def self.call(template)
compiled_source = erb.call(template)
"RDiscount.new(begin;#{compiled_source};end).to_html"
end
end

ActionView::Template.register_template_handler :md, MarkdownHandler

如果您在 config/application.rb(或初始化程序)中需要“markdown_handler”,则任何 View 或部分都可以使用 ERb 插值呈现为 Markdown扩展名.html.md:

app/views/home/index.html.md:

My awesome view
===============

Look, I can **use** <%= @language %>!

app/controllers/home_controller.rb:

class HomeController < ApplicationController
def index
@language = "Markdown"
end
end

关于ruby-on-rails-3 - 如何在 Rails 3 中使用 markdown 自动渲染部分内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4163560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com