ruby-on-rails 一个红地毯宝石渲染器,它从'[['块中生成链接

l7wslrjt  于 2023-02-20  发布在  Ruby
关注(0)|答案(1)|浏览(137)

我正在尝试使用红地毯制作一个自定义渲染器,将[[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

有什么想法吗?

llew8vvj

llew8vvj1#

link方法仅在找到链接(a标记)时调用。
要完成你想要的,你必须使用这里描述的preprocess(full_document)postprocess(full_document),这些方法将提供完整的内容,你将能够替换标签。

相关问题