private static String wrapMath()

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();
  }