From f2368b03c03238dee6227e5debb331eaf16ee7d7 Mon Sep 17 00:00:00 2001 From: Naoki Takezoe Date: Thu, 23 Jul 2015 00:53:29 +0900 Subject: [PATCH] (refs #409)Fix header anchor name in Markdown --- src/main/scala/gitbucket/core/view/Markdown.scala | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/scala/gitbucket/core/view/Markdown.scala b/src/main/scala/gitbucket/core/view/Markdown.scala index 763d4ded0..3a80b8f36 100644 --- a/src/main/scala/gitbucket/core/view/Markdown.scala +++ b/src/main/scala/gitbucket/core/view/Markdown.scala @@ -167,8 +167,8 @@ class GitBucketHtmlSerializer( val child = node.getChildren.asScala.headOption val anchorName = child match { case Some(x: AnchorLinkNode) => x.getName - case Some(x: TextNode) => x.getText // TODO - case _ => GitBucketHtmlSerializer.generateAnchorName(printChildrenToString(node)) + case Some(x: TextNode) => x.getText + case _ => GitBucketHtmlSerializer.generateAnchorName(extractText(node)) // TODO } printer.print(s"""<$tag class="markdown-head">""") @@ -183,6 +183,15 @@ class GitBucketHtmlSerializer( printer.print(s"") } + private def extractText(node: Node): String = { + val sb = new StringBuilder() + node.getChildren.asScala.map { + case x: TextNode => sb.append(x.getText) + case x: Node => sb.append(extractText(x)) + } + sb.toString() + } + override def visit(node: HeaderNode): Unit = { printHeaderTag(node) }