解析Redmine插件联系人帮助台HTML邮件时没有换行符

解析Redmine插件联系人帮助台HTML邮件时没有换行符,redmine,redmine-plugins,Redmine,Redmine Plugins,也许有人在Redmines contacts helpdesk插件和HTML邮件解析方面也有类似的问题 在我的例子中,在上次更新Redmine 4.0.6.stable和contacts helpdesk插件v4.1.7之后,HTML邮件没有换行符,这使得问题难以阅读… 帮助台插件: 经过一段时间的调查,我发现,改变从以前的更新插件是主要原因。具体来说,内容解析已从“在插件中执行”更改为“使用redmine基本功能” 代码参考功能:helpdesk\u mailer\u support.rb第2

也许有人在Redmines contacts helpdesk插件和HTML邮件解析方面也有类似的问题

在我的例子中,在上次更新Redmine 4.0.6.stable和contacts helpdesk插件v4.1.7之后,HTML邮件没有换行符,这使得问题难以阅读…
帮助台插件:

经过一段时间的调查,我发现,改变从以前的更新插件是主要原因。具体来说,内容解析已从“在插件中执行”更改为“使用redmine基本功能”

代码参考功能:helpdesk\u mailer\u support.rb第293行(方法纯文本\u正文)

最后一个问题是,解析html的基本redmine功能使用
Loofah.document(html)
方法
.text
,而不是使用
.to_text

不同之处在于,
.text
将产生
lineablenec
.to\u text
将产生
lineA\nlineB\nlineC
,这将在redmine问题中显示换行符

代码更改(helpdesk\u mail\u support.rb):

if Redmine::VERSION.to_<'3.1'
def html_body_to_text(html)
#剥离html标记并删除doctype指令
html.gsub!%r{^[]+},'
如果重新挖掘Helpdesk.strip\u标签?
html.gsub!%r{(?:.|\n |\r)+?},'
html.gsub!%r{},“\r\n”
html.gsub!%r{},“\r\n\r\n”
html.gsub!%r{
  • },'-' html.gsub!%r{]*>},“\r\n” html.sub!%r{^false)) .带.挤压(“”) .gsub(/^+/,'') 结束 #换车到此结束 结束
  • if Redmine::VERSION.to_s < '3.1'
          def html_body_to_text(html)
    
            # strip html tags and remove doctype directive
            html.gsub! %r{^[ ]+}, ''
            if RedmineHelpdesk.strip_tags?
              html.gsub! %r{<head>(?:.|\n|\r)+?<\/head>}, ''
              html.gsub! %r{<\/(li|ol|ul|h1|h2|h3|h4)>}, "\r\n"
              html.gsub! %r{<\/(p|div|pre)>}, "\r\n\r\n"
              html.gsub! %r{<li>}, '  - '
              html.gsub! %r{<br[^>]*>}, "\r\n"
              html.sub! %r{^<!DOCTYPE .*$}, ''
              html.strip
            end
          end
    
          def plain_text_body_to_text(text)
            text.gsub(/^ +(?![*#])/, '')
          end
        # change starts here
        else
          def html_body_to_text(html)
            doc = Loofah.document(html)
            Loofah.remove_extraneous_whitespace(doc.to_text(:encode_special_chars => false))
                .strip.squeeze(' ')
                .gsub(/^ +/, '')
          end
          # change ends here
        end