From df58ac0c9854cc33606e7379f1e87a00b0ef8a2d Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Fri, 18 Aug 2017 16:22:05 +0300 Subject: www: render help from markdown --- .../www/configuration/WwwAppConfiguration.java | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'juick-www/src/main/java/com/juick/www/configuration/WwwAppConfiguration.java') diff --git a/juick-www/src/main/java/com/juick/www/configuration/WwwAppConfiguration.java b/juick-www/src/main/java/com/juick/www/configuration/WwwAppConfiguration.java index 3198df2d..d79ae636 100644 --- a/juick-www/src/main/java/com/juick/www/configuration/WwwAppConfiguration.java +++ b/juick-www/src/main/java/com/juick/www/configuration/WwwAppConfiguration.java @@ -24,6 +24,10 @@ import com.juick.service.UserService; import com.juick.www.HelpService; import com.juick.www.WebApp; import org.apache.commons.io.IOUtils; +import org.commonmark.ext.autolink.AutolinkExtension; +import org.commonmark.node.Link; +import org.commonmark.parser.Parser; +import org.commonmark.renderer.html.HtmlRenderer; import org.springframework.cache.annotation.EnableCaching; import org.springframework.cache.caffeine.CaffeineCacheManager; import org.springframework.context.annotation.Bean; @@ -33,6 +37,7 @@ import org.springframework.context.annotation.PropertySource; import javax.inject.Inject; import java.io.IOException; import java.nio.charset.StandardCharsets; +import java.util.Collections; import java.util.HashMap; /** @@ -69,4 +74,24 @@ public class WwwAppConfiguration { return new HelpService("help"); } + @Bean + public Parser cmParser() { + return Parser.builder().extensions(Collections.singletonList(AutolinkExtension.create())).build(); + } + @Bean + public HtmlRenderer helpRenderer() { + return HtmlRenderer.builder() + .attributeProviderFactory(context -> (node, tagName, attributes) -> { + if (node instanceof Link) { + Link link = (Link) node; + if (link.getDestination().startsWith("/")) { + String destination = "/" + helpService().getHelpPath() + link.getDestination(); + link.setDestination(destination); + attributes.put("href", destination); + } + } + }) + .build(); + } + } -- cgit v1.2.3