diff options
author | Lukas Rytz <lukas.rytz@gmail.com> | 2017-02-22 08:42:26 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-22 08:42:26 +0100 |
commit | cbf7daa57d70ccacf8cfc7c2f4a7c0e81e1c773a (patch) | |
tree | 9fe176985bb167b881da731417ad6abd2f09a682 /src | |
parent | effde0cd2c24af2b27f2be02ad54fed6741977eb (diff) | |
parent | b8a8ac15567c40b5a01f0f3ba7b54202bff0b27d (diff) | |
download | scala-cbf7daa57d70ccacf8cfc7c2f4a7c0e81e1c773a.tar.gz scala-cbf7daa57d70ccacf8cfc7c2f4a7c0e81e1c773a.tar.bz2 scala-cbf7daa57d70ccacf8cfc7c2f4a7c0e81e1c773a.zip |
Merge pull request #5681 from Philippus/issue/9704
SI-9704 don't add a closing HtmlTag if it is already closed
Diffstat (limited to 'src')
-rw-r--r-- | src/scaladoc/scala/tools/nsc/doc/base/comment/Body.scala | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/scaladoc/scala/tools/nsc/doc/base/comment/Body.scala b/src/scaladoc/scala/tools/nsc/doc/base/comment/Body.scala index 7f4e52e88d..2524fb75fb 100644 --- a/src/scaladoc/scala/tools/nsc/doc/base/comment/Body.scala +++ b/src/scaladoc/scala/tools/nsc/doc/base/comment/Body.scala @@ -74,9 +74,8 @@ object EntityLink { def unapply(el: EntityLink): Option[(Inline, LinkTo)] = Some((el.title, el.link)) } final case class HtmlTag(data: String) extends Inline { - private val Pattern = """(?ms)\A<(/?)(.*?)[\s>].*\z""".r private val (isEnd, tagName) = data match { - case Pattern(s1, s2) => + case HtmlTag.Pattern(s1, s2) => (! s1.isEmpty, Some(s2.toLowerCase)) case _ => (false, None) @@ -86,8 +85,13 @@ final case class HtmlTag(data: String) extends Inline { isEnd && tagName == open.tagName } + def close = tagName collect { + case name if !HtmlTag.TagsNotToClose(name) && !data.endsWith(s"</$name>") => HtmlTag(s"</$name>") + } +} +object HtmlTag { + private val Pattern = """(?ms)\A<(/?)(.*?)[\s>].*\z""".r private val TagsNotToClose = Set("br", "img") - def close = tagName collect { case name if !TagsNotToClose(name) => HtmlTag(s"</$name>") } } /** The summary of a comment, usually its first sentence. There must be exactly one summary per body. */ |