# Pull Request Template ## Description This PR fixes the link formatting issue on the backend by adding `:autolink` to `ChatwootMarkdownRenderer#render_message`, ensuring all URLs are converted to `<a>` tags. Fixes https://linear.app/chatwoot/issue/CW-6682/email-channel-links-are-not-working ## Type of change - [x] Bug fix (non-breaking change which fixes an issue) ## Checklist: - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my code - [ ] I have commented on my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [ ] Any dependent changes have been merged and published in downstream modules --------- Co-authored-by: Sojan Jose <sojan@pepalo.com>
33 lines
790 B
Ruby
33 lines
790 B
Ruby
class ChatwootMarkdownRenderer
|
|
def initialize(content)
|
|
@content = content
|
|
end
|
|
|
|
def render_message
|
|
markdown_renderer = BaseMarkdownRenderer.new
|
|
doc = CommonMarker.render_doc(@content, :DEFAULT, [:strikethrough, :autolink])
|
|
html = markdown_renderer.render(doc)
|
|
render_as_html_safe(html)
|
|
end
|
|
|
|
def render_article
|
|
markdown_renderer = CustomMarkdownRenderer.new
|
|
doc = CommonMarker.render_doc(@content, :DEFAULT, [:table])
|
|
html = markdown_renderer.render(doc)
|
|
|
|
render_as_html_safe(html)
|
|
end
|
|
|
|
def render_markdown_to_plain_text
|
|
CommonMarker.render_doc(@content, :DEFAULT).to_plaintext
|
|
end
|
|
|
|
private
|
|
|
|
def render_as_html_safe(html)
|
|
# rubocop:disable Rails/OutputSafety
|
|
html.html_safe
|
|
# rubocop:enable Rails/OutputSafety
|
|
end
|
|
end
|