我正在尝试使用红地毯制作一个自定义渲染器,将[[id]]
块转换为应用程序中其他页面的链接。
定制呈现器的文档相当简洁,所以我不知道如何使用它。
以下是我目前得到结果(这不起作用)
class LinksRenderer < Redcarpet::Render::HTML
def link(link, title, content)
# Look for text enclosed in double square brackets and wrap it in an <a> tag
if content =~ /\[\[(.*?)\]\]/
text = $1
"<a href='#{link}' title='#{title}'>#{text}</a>"
else
# Use the default link rendering behavior for other links
super
end
end
end
我通过助手调用它:
def md(text)
markdown = Redcarpet::Markdown.new(LinksRenderer.new)
markdown.render(text).html_safe
end
有什么想法吗?
1条答案
按热度按时间llew8vvj1#
link
方法仅在找到链接(a
标记)时调用。要完成你想要的,你必须使用这里描述的
preprocess(full_document)
或postprocess(full_document)
,这些方法将提供完整的内容,你将能够替换标签。