diff --git a/src/main/scala/tobiasroeser/gitbucket/asciidoctor/AsciidoctorRenderer.scala b/src/main/scala/tobiasroeser/gitbucket/asciidoctor/AsciidoctorRenderer.scala index b5349fe..cd07e41 100644 --- a/src/main/scala/tobiasroeser/gitbucket/asciidoctor/AsciidoctorRenderer.scala +++ b/src/main/scala/tobiasroeser/gitbucket/asciidoctor/AsciidoctorRenderer.scala @@ -62,12 +62,13 @@ class AsciidoctorRenderer extends Renderer { case p => p.mkString("", "/", "/") } val relativeUrlPrefix = s"${helpers.url(repository)}/blob/${branch}/${path}" - prefixRelativeUrls(rendered, relativeUrlPrefix) + val relativeImageUrlPrefix = s"${helpers.url(repository)}/raw/${branch}/${path}" + prefixRelativeUrls(rendered, relativeUrlPrefix, relativeImageUrlPrefix) } private[this] val exceptionPrefixes = Seq("#", "/", "http://", "https://") - def prefixRelativeUrls(html: String, urlPrefix: String): String = { + def prefixRelativeUrls(html: String, urlPrefix: String, imageUrlPrefix: String): String = { val cleaner = new HtmlCleaner() val node = cleaner.clean(html) node.traverse(new TagNodeVisitor() { @@ -79,6 +80,12 @@ class AsciidoctorRenderer extends Renderer { tag.addAttribute("href", s"${urlPrefix}${href}") } } + case tag: TagNode if tag.getName == "img" => + Option(tag.getAttributeByName("src")) foreach { src => + if (exceptionPrefixes.forall(p => !src.startsWith(p))) { + tag.addAttribute("src", s"${imageUrlPrefix}${src}") + } + } case _ => } // continue traversal