in src/org/jetbrains/plugins/ipnb/IpnbJfxUtils.java [151:177]
private static String wrapMath(@NotNull final String source) {
final StringBuilder result = new StringBuilder();
boolean inMath = false;
int start = 0;
boolean single;
int end = StringUtil.indexOf(source, "$");
single = end + 1 >= source.length() || source.charAt(end + 1) != '$';
while (end >= 0) {
String substring = source.substring(start, end);
if (start != 0) {
result.append(escapeMath(inMath, single));
}
result.append(substring);
inMath = !inMath;
single = end + 1 >= source.length() || source.charAt(end + 1) != '$';
start = end + (single ? 1 : 2);
end = StringUtil.indexOf(source, "$", start);
}
if (start != 0) {
result.append(escapeMath(inMath, single));
}
String substring = source.substring(start);
result.append(substring);
return result.toString();
}