blob: 6bbf99f0435277d65ae925134efc3bc3813d2c4c [file] [log] [blame]
package com.atlassian.uwc.converters.tikiwiki;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.log4j.Logger;
import com.atlassian.uwc.converters.BaseConverter;
import com.atlassian.uwc.ui.Page;
public class HeaderConverter extends BaseConverter {
Logger log = Logger.getLogger(this.getClass());
public void convert(Page page) {
log.debug("Converting Headers - starting");
String input = page.getOriginalText();
String converted = convertHeaders(input);
page.setConvertedText(converted);
log.debug("Converting Header - complete");
}
Pattern headerPattern = Pattern.compile("(?<=^|\n)(!+)(.*)");
protected String convertHeaders(String input) {
Matcher headerFinder = headerPattern.matcher(input);
StringBuffer sb = new StringBuffer();
boolean found = false;
while (headerFinder.find()) {
found = true;
String marks = headerFinder.group(1);
String contents = headerFinder.group(2);
int level = marks.length();
if (!contents.startsWith(" ")) contents = " " + contents;
String replacement = "h" + level + "." + contents;
headerFinder.appendReplacement(sb, Matcher.quoteReplacement(replacement));
}
if (found) {
headerFinder.appendTail(sb);
return sb.toString();
}
return input;
}
}