gpt4 book ai didi

ruby-on-rails - rails/Redcarpet : Markdown-->HTML with link attributes not working in helper

转载 作者:行者123 更新时间:2023-12-04 05:54:54 25 4
gpt4 key购买 nike

我在我的 ApplicationHelper 中有一个函数,在 Controller 中有一个完全相同的函数用于预渲染。预呈现以我想要的方式创建链接,使用 target="_blank",但现场呈现不会。我的代码如下:

require 'redcarpet'

module ApplicationHelper
def markdown(text)
rndr = Redcarpet::Render::HTML.new(:link_attributes => Hash["target" => "_blank"])
markdown = Redcarpet::Markdown.new(
rndr,
:autolink => true,
:space_after_headers => true
)
return markdown.render(text).html_safe
end
end

在 Rails 控制台中运行它也会正常呈现链接,没有链接属性。我的 Controller 中的相同代码按预期工作。

最佳答案

我使用自定义 Markdown 生成器(redcarpet v 3.1.2)让它工作

lib/my_custom_markdown_class.rb
class MyCustomMarkdownClass < Redcarpet::Render::HTML
def initialize(extensions = {})
super extensions.merge(link_attributes: { target: "_blank" })
end
end

然后像这样使用它

app/helpers/application_helper.rb
def helper_method(text)
filter_attributes = {
no_links: true,
no_styles: true,
no_images: true,
filter_html: true
}

markdown = Redcarpet::Markdown.new(MyCustomMarkdownClass, filter_attributes)
markdown.render(text).html_safe
end

或者,您可以将此 helper_method 放入模型中,并将 filter_attributes 设置为类变量。

关于ruby-on-rails - rails/Redcarpet : Markdown-->HTML with link attributes not working in helper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14076922/

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