aboutsummaryrefslogtreecommitdiff
path: root/doc-tool/src/dotty/tools/dottydoc/model/comment/HtmlParsers.scala
diff options
context:
space:
mode:
Diffstat (limited to 'doc-tool/src/dotty/tools/dottydoc/model/comment/HtmlParsers.scala')
-rw-r--r--doc-tool/src/dotty/tools/dottydoc/model/comment/HtmlParsers.scala31
1 files changed, 21 insertions, 10 deletions
diff --git a/doc-tool/src/dotty/tools/dottydoc/model/comment/HtmlParsers.scala b/doc-tool/src/dotty/tools/dottydoc/model/comment/HtmlParsers.scala
index 24572925c..d3b695aac 100644
--- a/doc-tool/src/dotty/tools/dottydoc/model/comment/HtmlParsers.scala
+++ b/doc-tool/src/dotty/tools/dottydoc/model/comment/HtmlParsers.scala
@@ -8,22 +8,22 @@ import dotc.util.Positions._
import dotty.tools.dottydoc.util.syntax._
import util.MemberLookup
+import com.vladsch.flexmark.ast.{ Node => MarkdownNode }
+import com.vladsch.flexmark.html.HtmlRenderer
+import com.vladsch.flexmark.parser.Parser
+import com.vladsch.flexmark.util.sequence.CharSubSequence
+
object HtmlParsers {
- implicit class MarkdownToHtml(val text: String) extends AnyVal {
- def fromMarkdown(origin: Entity)(implicit ctx: Context): String = {
- import com.vladsch.flexmark.util.sequence.CharSubSequence
+ implicit class StringToMarkdown(val text: String) extends AnyVal {
+ def toMarkdown(origin: Entity)(implicit ctx: Context): MarkdownNode = {
import com.vladsch.flexmark.ast.{ Link, Visitor, VisitHandler, NodeVisitor }
- import com.vladsch.flexmark.parser.Parser
- import com.vladsch.flexmark.html.HtmlRenderer
val inlineToHtml = InlineToHtml(origin)
- // TODO: split out into different step so that we can get a short summary
val node = Parser.builder(ctx.docbase.markdownOptions)
.build.parse(text)
- implicit def toCharSeq(str: String) = CharSubSequence.of(str)
def isOuter(url: String) =
url.startsWith("http://") ||
@@ -49,14 +49,25 @@ object HtmlParsers {
override def visit(link: Link) = {
val linkUrl = link.getUrl.toString
if (!isOuter(linkUrl) && !isRelative(linkUrl))
- link.setUrl(queryToUrl(linkUrl))
+ link.setUrl(CharSubSequence.of(queryToUrl(linkUrl)))
}
})
)
linkVisitor.visit(node)
- HtmlRenderer.builder(ctx.docbase.markdownOptions).build().render(node)
+ node
}
+
+ def toMarkdownString(origin: Entity)(implicit ctx: Context): String =
+ toMarkdown(origin).show
+ }
+
+ implicit class MarkdownToHtml(val markdown: MarkdownNode) extends AnyVal {
+ def show(implicit ctx: Context): String =
+ HtmlRenderer.builder(ctx.docbase.markdownOptions).build().render(markdown)
+
+ def shortenAndShow(implicit ctx: Context): String =
+ (new MarkdownShortener).shorten(markdown).show
}
implicit class StringToWiki(val text: String) extends AnyVal {
@@ -65,7 +76,7 @@ object HtmlParsers {
}
implicit class BodyToHtml(val body: Body) extends AnyVal {
- def wikiToString(origin: Entity): String = {
+ def show(origin: Entity): String = {
val inlineToHtml = InlineToHtml(origin)
def bodyToHtml(body: Body): String =