package com.aperture_software.glados_wiki.markdown;
import com.google.common.base.Function;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Created by jhyun on 14. 2. 7.
*/
public class WikiLinkToMarkdownFunction implements Function<String, String> {
private static Logger LOG = LoggerFactory.getLogger(WikiLinkToMarkdownFunction.class);
private static class MarkdownLinkGen implements Function<Matcher, String> {
private String linkText(final String s) {
return s.substring(2, s.length() - 2);
}
@Override
public String apply(Matcher input) {
String c = linkText(input.group());
return String.format("[%s](%s)", c, UrlEncoder.encode(c));
}
}
private EscapableRegexReplaceFunction rrf = new EscapableRegexReplaceFunction(Pattern.compile("\\[\\[(.+?)\\]\\]"), new MarkdownLinkGen(), true);
@Override
public String apply(String input) {
return rrf.apply(input);
}
}