in src/main/java/com/atlassian/uwc/converters/mediawiki/MathConverter.java [20:71]
protected String convertMath(String input) {
Matcher mathFinder = math.matcher(input);
StringBuffer sb = new StringBuffer();
boolean found = false;
while (mathFinder.find()) {
found = true;
String mathbits = mathFinder.group(1);
mathbits = escapePercents(mathbits);
int len = sb.length();
boolean newlinesBefore = (len==0) ||
((len==1) && (sb.substring(0,1).equals("\n")))
|| (sb.substring(len-2,len).equals("\n\n"));
String after = mathFinder.group(2);
len = after.length();
boolean newlinesAfter = (len==0) ||
((len==1) && (after.equals("\n")))
|| (after.equals("\n\n"));
String replacement;
if (newlinesBefore && newlinesAfter) {
// Looks line a mathblock
String anchor = "";
Matcher labelFinder = label.matcher(mathbits);
if (labelFinder.find()) {
anchor = labelFinder.group(1).trim();
replacement = labelFinder.replaceAll(" ");
}
if (!anchor.isEmpty()) {
anchor = ":anchor="+anchor;
}
replacement = "{mathblock"+anchor+"}\n" +
"\\begin{eqnarray}\n" +
mathbits +"\n" +
"\\end{eqnarray}\n" +
"{mathblock}";
} else {
replacement = "{mathinline}" + mathbits + "{mathinline}";
}
replacement = RegexUtil.handleEscapesInReplacement(replacement);
mathFinder.appendReplacement(sb, replacement);
}
if (found) {
mathFinder.appendTail(sb);
return sb.toString();
}
return input;
}