diff --git a/app/builders/messages/forwarded_message_builder.rb b/app/builders/messages/forwarded_message_builder.rb
index 85bdb0cf5..d5ed58f40 100644
--- a/app/builders/messages/forwarded_message_builder.rb
+++ b/app/builders/messages/forwarded_message_builder.rb
@@ -46,38 +46,13 @@ module Messages::ForwardedMessageFormatter
CommonMarker.render_html(text, options, extensions)
end
- # Convert markdown to plain text without HTML intermediary
+ # Convert text to plain text, stripping any markdown formatting
def self.markdown_to_plain_text(text)
return '' if text.blank?
- # If it's not markdown, return as is
- return text unless contains_markdown?(text)
-
- # Otherwise, strip markdown by first converting to HTML, then sanitizing
+ # Simply strip any markdown by converting to HTML and sanitizing
strip_markdown(text)
end
-
- # Add a helper method to detect if text contains markdown
- def self.contains_markdown?(text)
- return false if text.blank?
-
- # Check for common markdown patterns
- markdown_patterns = [
- /\*\*.*?\*\*/, # Bold
- /\*[^*\n]+?\*/, # Italic with asterisk
- /_[^_\n]+?_/, # Italic with underscore
- /^\s*\#{1,6}\s+/m, # Headers
- /^\s*>\s+/m, # Blockquotes
- /`[^`\n]+?`/, # Inline code
- /^```/m, # Code blocks
- /\[[^\]\n]{0,100}\]\([^)\n]{0,300}\)/, # Links (safe)
- /^\s*[*\-+]\s+/m, # Unordered lists
- /^\s*\d+\.\s+/m, # Ordered lists
- /^\s*\|.*\|/m, # Tables
- /~~.*?~~/ # Strikethrough
- ]
- markdown_patterns.any? { |pattern| text =~ pattern }
- end
end
# Only modify the formatted_html_content method in ForwardedMessageContentBuilder
@@ -119,17 +94,12 @@ module Messages::ForwardedMessageContentBuilder
original_content.to_s + forwarded_header_text + forwarded_body_text
end
- # Update this method to intelligently decide how to format content
+ # Update this method to always use markdown conversion
def formatted_html_content(original_content = '')
return original_content if forwarded_message.blank?
- # Check if content contains markdown and format accordingly
- converted_content = if Messages::ForwardedMessageFormatter.contains_markdown?(original_content.to_s)
- Messages::ForwardedMessageFormatter.convert_markdown_to_html(original_content)
- else
- Messages::ForwardedMessageFormatter.format_plain_text_to_html(original_content)
- end
-
+ # Always use markdown conversion since it handles plain text correctly
+ converted_content = Messages::ForwardedMessageFormatter.convert_markdown_to_html(original_content)
html_wrapper(converted_content)
end
end
@@ -175,7 +145,7 @@ module Messages::ForwardedMessageHtmlBuilder
"To: <#{to_email}>
"
end
- # Update this method to handle markdown when appropriate
+ # Update this method to always use markdown conversion
def forwarded_body_html
# Return HTML content directly if available
return email_data.dig('html_content', 'full') if email_data&.dig('html_content', 'full').present?
@@ -187,12 +157,8 @@ module Messages::ForwardedMessageHtmlBuilder
forwarded_message.content.to_s
end
- # Check if content contains markdown and format accordingly
- if Messages::ForwardedMessageFormatter.contains_markdown?(content)
- Messages::ForwardedMessageFormatter.convert_markdown_to_html(content)
- else
- Messages::ForwardedMessageFormatter.format_plain_text_to_html(content)
- end
+ # Always use markdown conversion since it handles plain text correctly
+ Messages::ForwardedMessageFormatter.convert_markdown_to_html(content)
end
end