summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLukas Rytz <lukas.rytz@gmail.com>2017-02-22 08:42:26 +0100
committerGitHub <noreply@github.com>2017-02-22 08:42:26 +0100
commitcbf7daa57d70ccacf8cfc7c2f4a7c0e81e1c773a (patch)
tree9fe176985bb167b881da731417ad6abd2f09a682 /src
parenteffde0cd2c24af2b27f2be02ad54fed6741977eb (diff)
parentb8a8ac15567c40b5a01f0f3ba7b54202bff0b27d (diff)
downloadscala-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.scala10
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. */