class WikiController extends BaseController {

    @RequestMapping("/{path}/{filename}")
    public String subPages(@PathVariable String path, @PathVariable String filename,
                           @RequestParam(required = false) String entry,
                           Map<String, Object> map) throws Exception {
        String html = markdown2html(path + "/" + filename, ".md");
        //html = html.replace("${version}", "1.0.0");
        // toc
        String toc = markdown2html(path + "/" + filename, ".toc.md");
        if (toc != null) {
            map.put("toc", toc);
        }
        map.put("response", html);
        if (entry != null && entry.equals("client") && "client".equals(filename)) {
            return "wikiAccessClientTemplate";
        }

        return "wikiTemplate";
    }

    public String markdown2html(String filename, String suffix) throws Exception {<FILL_FUNCTION_BODY>}

}

        String templatePath = "static/wiki/" + filename + suffix;
        InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(templatePath);
        if (inputStream == null) {
            return null;
        }
        String markdown = new String(read(inputStream), Charset.forName("utf-8"));
        MutableDataSet options = new MutableDataSet();
        options.setFrom(ParserEmulationProfile.MARKDOWN);
        options.set(Parser.EXTENSIONS, Arrays.asList(new Extension[]{TablesExtension.create()}));
        Document document = Parser.builder(options).build().parse(markdown);
        String html = HtmlRenderer.builder(options).build().render(document);
        return html;
    
<methods>public non-sealed void <init>() ,public boolean clearTempResource(java.lang.String) ,public java.lang.String getTempResource(java.lang.String) ,public com.sohu.cache.entity.AppUser getUserInfo(javax.servlet.http.HttpServletRequest) ,public java.lang.String markdown2html(java.lang.String, java.lang.String) throws java.lang.Exception,public byte[] read(java.io.InputStream) throws java.io.IOException,public java.lang.Boolean saveTempResource(java.lang.String, java.lang.String) ,public void sendMessage(javax.servlet.http.HttpServletResponse, java.lang.String) <variables>protected com.sohu.cache.dao.AppAuditDao appAuditDao,protected com.sohu.cache.dao.AppAuditLogDao appAuditLogDao,protected com.sohu.cache.stats.app.AppDeployCenter appDeployCenter,protected com.sohu.cache.web.util.AppEmailUtil appEmailUtil,protected com.sohu.cache.dao.AppImportDao appImportDao,protected com.sohu.cache.web.service.AppService appService,protected com.sohu.cache.stats.app.AppStatsCenter appStatsCenter,com.sohu.cache.redis.AssistRedisService assistRedisService,protected com.sohu.cache.async.AsyncService asyncService,protected com.sohu.cache.dao.InstanceDao instanceDao,protected com.sohu.cache.stats.instance.InstanceDeployCenter instanceDeployCenter,protected final org.slf4j.Logger logger,protected com.sohu.cache.machine.MachineCenter machineCenter,protected com.sohu.cache.redis.RedisCenter redisCenter,protected com.sohu.cache.redis.RedisConfigTemplateService redisConfigTemplateService,protected com.sohu.cache.redis.RedisDeployCenter redisDeployCenter,protected com.sohu.cache.web.service.ResourceService resourceService,protected com.sohu.cache.web.service.UserLoginStatusService userLoginStatusService,protected com.sohu.cache.web.service.UserService userService