package sagan.blog.support;
import sagan.blog.PostFormat;
import java.util.HashMap;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Service;
@Service
@Profile("!original")
public class FormatAwarePostContentRenderer extends PostContentRenderer {
private Map<PostFormat, MarkdownService> renderers = new HashMap<>();
@Autowired
public FormatAwarePostContentRenderer(@Qualifier("pegdown") MarkdownService markdownService) {
super(markdownService);
renderers.put(PostFormat.ASCIIDOC, new AsciidoctorMarkdownService());
}
public String render(String content, PostFormat format) {
MarkdownService renderer = renderers.get(format);
if (renderer == null) {
return super.render(content);
}
return renderer.renderToHtml(content);
}
}