Defect #31695

Convert HTML links to Textile/Markdown links when creating an issue from an email

Added by Yuichi HARADA 5 months ago. Updated about 1 month ago.

Status:ClosedStart date:
Priority:NormalDue date:
Assignee:Go MAEDA% Done:

0%

Category:Email receiving
Target version:4.1.0
Resolution:Fixed Affected version:

Description

When creating an issue from HTML format email, the href attribute of the A tag disappears, and only the string is acquired.

[Input]

foo<a href="http://example.com/">bar</a>baz

[Expected]

foo "bar":http://example.com/ baz

[Actual]

foobarbaz

fixed-31695.patch Magnifier (4.05 KB) Yuichi HARADA, 2019-07-08 10:34

tests_for_a_elements_without_href.patch Magnifier (1.75 KB) Marius BALTEANU, 2019-11-04 21:10

fix_for_links_without_href.patch Magnifier (1.97 KB) Marius BALTEANU, 2019-11-04 21:11

Associated revisions

Revision 18361
Added by Go MAEDA 4 months ago

Convert HTML links to Textile/Markdown links when creating an issue from an email (#31695).

Patch by Yuichi HARADA.

Revision 18988
Added by Go MAEDA about 1 month ago

Fix that receiving HTML email fails if it contains a link without an href attribute (#31695).

Patch by Marius BALTEANU.

History

#1 Updated by Yuichi HARADA 5 months ago

I attached a patch for Textile and Markdown.

#2 Updated by Go MAEDA 5 months ago

  • Target version set to Candidate for next major release

#3 Updated by Go MAEDA 4 months ago

  • Target version changed from Candidate for next major release to 4.1.0

Setting the target version to 4.1.0.

#4 Updated by Go MAEDA 4 months ago

  • Subject changed from Convert the A tag to Textile / Markdown when creating an issues from HTML email to Convert HTML links to Textile/Markdown links when creating an issue from an email
  • Status changed from New to Closed
  • Assignee set to Go MAEDA
  • Resolution set to Fixed

Committed the patch. Thank you for improving Redmine.

#5 Updated by Marius BALTEANU about 1 month ago

The current implementation fails with the following error if the link doesn't contain the href attribute.

Error:
Redmine::WikiFormatting::MarkdownHtmlParserTest#test_should_not_convert_a_tag_without_href:
NoMethodError: undefined method `value' for nil:NilClass
    lib/redmine/wiki_formatting/markdown/html_parser.rb:40:in `block in <class:HtmlParser>'
    lib/redmine/wiki_formatting/html_parser.rb:58:in `scrub'
    lib/redmine/wiki_formatting/html_parser.rb:36:in `to_text'
    test/unit/lib/redmine/wiki_formatting/markdown_html_parser_test.rb:41:in `test_should_not_convert_a_tag_without_href'

I'm attaching:
1. Tests for for markdown and textile which fail on the current trunk
2. A proposed fix, but I'm not sure if foo<a name="Header-one">bar</a>baz should be converted to foo bar baz or to foobarbaz.

#6 Updated by Go MAEDA about 1 month ago

Marius BALTEANU wrote:

The current implementation fails with the following error if the link doesn't contain the href attribute.

Thank you for catching and fixing the error.

2. A proposed fix, but I'm not sure if foo<a name="Header-one">bar</a>baz should be converted to foo bar baz or to foobarbaz.

I think we can omit the surrounding spaces for that case. Text generated from `<a href="http://www.example.com/">foo</a>` style HTML should have surrounding spaces because Textile link `"foo":http://www.example.com/` does not work without surrounding spaces. However, the text "bar" you will get by converting from `<a name="Header-one">bar</a>` does not have any markup and will be always rendered properly. So, I think the surrounding spaces are unnecessary.

#7 Updated by Marius BALTEANU about 1 month ago

Go MAEDA wrote:

Marius BALTEANU wrote:

The current implementation fails with the following error if the link doesn't contain the href attribute.

Thank you for catching and fixing the error.

2. A proposed fix, but I'm not sure if foo<a name="Header-one">bar</a>baz should be converted to foo bar baz or to foobarbaz.

I think we can omit the surrounding spaces for that case. Text generated from `<a href="http://www.example.com/">foo</a>` style HTML should have surrounding spaces because Textile link `"foo":http://www.example.com/` does not work without surrounding spaces. However, the text "bar" you will get by converting from `<a name="Header-one">bar</a>` does not have any markup and will be always rendered properly. So, I think the surrounding spaces are unnecessary.

Great! Please feel free to update the patches.

#8 Updated by Go MAEDA about 1 month ago

  • Status changed from Reopened to Closed

Marius BALTEANU wrote:

The current implementation fails with the following error if the link doesn't contain the href attribute.

Committed the patches. Thank you.

Also available in: Atom PDF