blob: 8747fbdc4e4d2cc72b3e808d1deffe53c76c248d [file] [log] [blame]
package com.atlassian.uwc.converters.mediawiki;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.atlassian.uwc.converters.BaseConverter;
import com.atlassian.uwc.converters.IllegalLinkNameConverter;
import com.atlassian.uwc.converters.tikiwiki.RegexUtil;
import com.atlassian.uwc.ui.Page;
public class RedirectConverter extends BaseConverter {
IllegalLinkNameConverter illegalConverter = new IllegalLinkNameConverter();
//{replace-with}{redirect:$1}
public void convert(Page page) {
String input = page.getOriginalText();
String converted = convertRedirect(input);
page.setConvertedText(converted);
}
Pattern redirect = Pattern.compile("#REDIRECT\\s*\\[\\[(.*?)\\]\\]");
protected String convertRedirect(String input) {
Matcher matcherFinder = redirect.matcher(input);
StringBuffer sb = new StringBuffer();
boolean found = false;
while (matcherFinder.find()) {
found = true;
String pagetitle = matcherFinder.group(1);
pagetitle = illegalConverter.convertIllegalName(pagetitle);
String replacement = "{redirect:" + pagetitle+ "}";
replacement = RegexUtil.handleEscapesInReplacement(replacement);
matcherFinder.appendReplacement(sb, replacement);
}
if (found) {
matcherFinder.appendTail(sb);
return sb.toString();
}
return input;
}
}